用于BitCore中的分层键的node.js电子钱包导入格式(WIF)

我试图从extendedprivatekey生成WIF,但我得到无效的WIF。

WIF应该如何看: https : //bitcoin.org/en/developer-guide#wallet-import-format-wif

我已经按照上面的指示链接,并得到这个代码:

var crypto = require('crypto'); var bitcore = require('bitcore'); var HierarchicalKey = bitcore.HierarchicalKey; var Address = bitcore.Address; var networks = bitcore.networks; var coinUtil = bitcore.util; var knownBytes = coinUtil.sha256('testing'); var hkey = HierarchicalKey.seed(knownBytes,'testnet'); var key = new Buffer(hkey.derive('m/0\'/0/0').extendedPrivateKey); var hash = new Buffer ([0xef].concat(key).concat([1])); var hashses = doubleSHA256(hash); var checksum = hashses.slice(0, 4); var data = Buffer.concat([hash, checksum]); var ress = bitcore.base58.encode(data); console.log(ress); function sha256(data) { return new Buffer(crypto.createHash('sha256').update(data).digest('binary'), 'binary'); }; function doubleSHA256(data) { return sha256(sha256(data)); }; 

我怀疑有一个地方转换错误。

编辑:我自己想通了。 稍后将发布解决scheme。

我find了这个埋在WalletKey.js代码中的答案:

 var bitcore = require('bitcore'); var HierarchicalKey = bitcore.HierarchicalKey; var Address = bitcore.Address; var networks = bitcore.networks; var coinUtil = bitcore.util; var knownBytes = coinUtil.sha256('testing'); var hkey = HierarchicalKey.seed(knownBytes,'testnet'); var derived = hkey.derive('m/0\'/0/0'); var priv = new bitcore.PrivateKey(networks.testnet.privKeyVersion, derived.eckey.private, derived.eckey.compressed); var wif = priv.toString();