Browse Source

Merge pull request #142 from dcousens/asserts

Adds assertion error messages for HDWallet
hk-custom-address
Wei Lu 11 years ago
parent
commit
701af74ade
  1. 10
      src/hdwallet.js

10
src/hdwallet.js

@ -62,7 +62,7 @@ HDWallet.fromHex = function(input) {
}
HDWallet.fromBuffer = function(input) {
assert(input.length === HDWallet.LENGTH)
assert.strictEqual(input.length, HDWallet.LENGTH, 'Invalid buffer length')
var hd = new HDWallet()
@ -91,13 +91,13 @@ HDWallet.fromBuffer = function(input) {
// 4 bytes: the fingerprint of the parent's key (0x00000000 if master key)
hd.parentFingerprint = input.readUInt32BE(5)
if (hd.depth === 0) {
assert(hd.parentFingerprint === 0x00000000)
assert.strictEqual(hd.parentFingerprint, 0x00000000, 'Invalid parent fingerprint')
}
// 4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
// This is encoded in MSB order. (0x00000000 if master key)
hd.index = input.readUInt32BE(9)
assert(hd.depth > 0 || hd.index === 0)
assert(hd.depth > 0 || hd.index === 0, 'Invalid index')
// 32 bytes: the chain code
hd.chaincode = input.slice(13, 45)
@ -151,7 +151,7 @@ HDWallet.prototype.toBuffer = function(priv) {
// 33 bytes: the public key or private key data
if (priv) {
assert(this.priv, 'Cannot serialize to private without private key')
assert(this.priv, 'Missing private key')
// 0x00 + k for private keys
buffer.writeUInt8(0, 45)
@ -186,7 +186,7 @@ HDWallet.prototype.derive = function(i) {
var I
if (usePriv) {
assert(this.priv, 'Private derive on public key')
assert(this.priv, 'Missing private key')
// If 1, private derivation is used:
// let I = HMAC-SHA512(Key = cpar, Data = 0x00 || kpar || i) [Note:]

Loading…
Cancel
Save