Fix error on public key for hdpublickey
This commit is contained in:
parent
89d78019d8
commit
a07d90dfbf
@ -318,18 +318,19 @@ HDPublicKey.prototype._buildFromBuffers = function (arg) {
|
|||||||
throw new errors.InvalidB58Checksum(concat, checksum);
|
throw new errors.InvalidB58Checksum(concat, checksum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var network = Network.get(BufferUtil.integerFromBuffer(arg.version));
|
||||||
|
|
||||||
var xpubkey;
|
var xpubkey;
|
||||||
xpubkey = Base58Check.encode(BufferUtil.concat(sequence));
|
xpubkey = Base58Check.encode(BufferUtil.concat(sequence));
|
||||||
arg.xpubkey = new Buffer(xpubkey);
|
arg.xpubkey = new Buffer(xpubkey);
|
||||||
|
|
||||||
var publicKey = PublicKey.fromString(arg.publicKey);
|
var publicKey = new PublicKey(arg.publicKey, {network: network});
|
||||||
var size = HDPublicKey.ParentFingerPrintSize;
|
var size = HDPublicKey.ParentFingerPrintSize;
|
||||||
var fingerPrint = Hash.sha256ripemd160(publicKey.toBuffer()).slice(0, size);
|
var fingerPrint = Hash.sha256ripemd160(publicKey.toBuffer()).slice(0, size);
|
||||||
|
|
||||||
JSUtil.defineImmutable(this, {
|
JSUtil.defineImmutable(this, {
|
||||||
xpubkey: xpubkey,
|
xpubkey: xpubkey,
|
||||||
network: Network.get(BufferUtil.integerFromBuffer(arg.version)),
|
network: network,
|
||||||
depth: BufferUtil.integerFromSingleByteBuffer(arg.depth),
|
depth: BufferUtil.integerFromSingleByteBuffer(arg.depth),
|
||||||
publicKey: publicKey,
|
publicKey: publicKey,
|
||||||
fingerPrint: fingerPrint
|
fingerPrint: fingerPrint
|
||||||
|
|||||||
@ -70,8 +70,7 @@ var PublicKey = function PublicKey(data, extra) {
|
|||||||
PublicKey.prototype._classifyArgs = function(data, extra) {
|
PublicKey.prototype._classifyArgs = function(data, extra) {
|
||||||
/* jshint maxcomplexity: 10 */
|
/* jshint maxcomplexity: 10 */
|
||||||
var info = {
|
var info = {
|
||||||
compressed: _.isUndefined(extra.compressed) || extra.compressed,
|
compressed: _.isUndefined(extra.compressed) || extra.compressed
|
||||||
network: _.isUndefined(extra.network) ? undefined : Network.get(extra.network)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// detect type of data
|
// detect type of data
|
||||||
@ -88,6 +87,9 @@ PublicKey.prototype._classifyArgs = function(data, extra) {
|
|||||||
} else {
|
} else {
|
||||||
throw new TypeError('First argument is an unrecognized data format.');
|
throw new TypeError('First argument is an unrecognized data format.');
|
||||||
}
|
}
|
||||||
|
if (!info.network) {
|
||||||
|
info.network = _.isUndefined(extra.network) ? undefined : Network.get(extra.network);
|
||||||
|
}
|
||||||
return info;
|
return info;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -13,9 +13,11 @@ var BufferUtil = bitcore.util.buffer;
|
|||||||
var HDPrivateKey = bitcore.HDPrivateKey;
|
var HDPrivateKey = bitcore.HDPrivateKey;
|
||||||
var HDPublicKey = bitcore.HDPublicKey;
|
var HDPublicKey = bitcore.HDPublicKey;
|
||||||
var Base58Check = bitcore.encoding.Base58Check;
|
var Base58Check = bitcore.encoding.Base58Check;
|
||||||
|
var Networks = bitcore.Networks;
|
||||||
|
|
||||||
var xprivkey = 'xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi';
|
var xprivkey = 'xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi';
|
||||||
var xpubkey = 'xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8';
|
var xpubkey = 'xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8';
|
||||||
|
var xpubkeyTestnet = 'tpubD6NzVbkrYhZ4WZaiWHz59q5EQ61bd6dUYfU4ggRWAtNAyyYRNWT6ktJ7UHJEXURvTfTfskFQmK7Ff4FRkiRN5wQH8nkGAb6aKB4Yyeqsw5m';
|
||||||
var json = '{"network":"livenet","depth":0,"fingerPrint":876747070,"parentFingerPrint":0,"childIndex":0,"chainCode":"873dff81c02f525623fd1fe5167eac3a55a049de3d314bb42ee227ffed37d508","publicKey":"0339a36013301597daef41fbe593a02cc513d0b55527ec2df1050e2e8ff49c85c2","checksum":-1421395167,"xpubkey":"xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8"}';
|
var json = '{"network":"livenet","depth":0,"fingerPrint":876747070,"parentFingerPrint":0,"childIndex":0,"chainCode":"873dff81c02f525623fd1fe5167eac3a55a049de3d314bb42ee227ffed37d508","publicKey":"0339a36013301597daef41fbe593a02cc513d0b55527ec2df1050e2e8ff49c85c2","checksum":-1421395167,"xpubkey":"xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8"}';
|
||||||
var derived_0_1_200000 = 'xpub6BqyndF6rkBNTV6LXwiY8Pco8aqctqq7tGEUdA8fmGDTnDJphn2fmxr3eM8Lm3m8TrNUsLbEjHvpa3adBU18YpEx4tp2Zp6nqax3mQkudhX';
|
var derived_0_1_200000 = 'xpub6BqyndF6rkBNTV6LXwiY8Pco8aqctqq7tGEUdA8fmGDTnDJphn2fmxr3eM8Lm3m8TrNUsLbEjHvpa3adBU18YpEx4tp2Zp6nqax3mQkudhX';
|
||||||
|
|
||||||
@ -31,7 +33,7 @@ describe('HDPublicKey interface', function() {
|
|||||||
got = e instanceof errorType;
|
got = e instanceof errorType;
|
||||||
}
|
}
|
||||||
if (!error instanceof errorType) {
|
if (!error instanceof errorType) {
|
||||||
console.log('Adsasd', typeof error);
|
console.log('Error', typeof error);
|
||||||
}
|
}
|
||||||
// expect(got).to.equal(true);
|
// expect(got).to.equal(true);
|
||||||
};
|
};
|
||||||
@ -147,6 +149,14 @@ describe('HDPublicKey interface', function() {
|
|||||||
pubKey.toString().should.equal(pubKey.xpubkey);
|
pubKey.toString().should.equal(pubKey.xpubkey);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('publicKey property matches network', function() {
|
||||||
|
var livenet = new HDPublicKey(xpubkey);
|
||||||
|
var testnet = new HDPublicKey(xpubkeyTestnet);
|
||||||
|
|
||||||
|
livenet.publicKey.network.should.equal(Networks.livenet);
|
||||||
|
testnet.publicKey.network.should.equal(Networks.testnet);
|
||||||
|
});
|
||||||
|
|
||||||
it('inspect() displays correctly', function() {
|
it('inspect() displays correctly', function() {
|
||||||
var pubKey = new HDPublicKey(xpubkey);
|
var pubKey = new HDPublicKey(xpubkey);
|
||||||
pubKey.inspect().should.equal('<HDPublicKey: ' + pubKey.xpubkey + '>');
|
pubKey.inspect().should.equal('<HDPublicKey: ' + pubKey.xpubkey + '>');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user