Browse Source

HDNode: add neuter functionality

hk-custom-address
Daniel Cousens 11 years ago
parent
commit
9d92b6a1a8
  1. 9
      src/hdnode.js
  2. 15
      test/hdnode.js

9
src/hdnode.js

@ -143,6 +143,15 @@ HDNode.prototype.getAddress = function() {
return this.pubKey.getAddress(this.network)
}
HDNode.prototype.neutered = function() {
var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
neutered.depth = this.depth
neutered.index = this.index
neutered.parentFingerprint = this.parentFingerprint
return neutered
}
HDNode.prototype.toBase58 = function(isPrivate) {
return base58check.encode(this.toBuffer(isPrivate))
}

15
test/hdnode.js

@ -226,6 +226,21 @@ describe('HDNode', function() {
})
})
describe('neutered', function() {
var f = fixtures.valid[0]
it('strips all private information', function() {
var hd = HDNode.fromBase58(f.master.base58)
var hdn = hd.neutered()
assert.equal(hdn.privKey, undefined)
assert.equal(hdn.pubKey.toHex(), hd.pubKey.toHex())
assert.equal(hdn.chainCode, hd.chainCode)
assert.equal(hdn.depth, hd.depth)
assert.equal(hdn.index, hd.index)
})
})
describe('derive', function() {
function verifyVector(hd, v, depth) {
assert.equal(hd.privKey.toWIF(), v.wif)

Loading…
Cancel
Save