hd: improve arg parsing.
This commit is contained in:
parent
e6cd60f919
commit
aa327131e8
@ -177,22 +177,25 @@ HDPrivateKey.prototype.destroy = function destroy(pub) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Derive a child key.
|
* Derive a child key.
|
||||||
* @param {Number|String} - Child index or path.
|
* @param {Number} index - Derivation index.
|
||||||
* @param {Boolean?} hardened - Whether the derivation should be hardened.
|
* @param {Boolean?} hardened - Whether the derivation should be hardened.
|
||||||
* @returns {HDPrivateKey}
|
* @returns {HDPrivateKey}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
HDPrivateKey.prototype.derive = function derive(index, hardened) {
|
HDPrivateKey.prototype.derive = function derive(index, hardened) {
|
||||||
assert(util.isU32(index));
|
assert(typeof index === 'number');
|
||||||
|
|
||||||
|
if ((index >>> 0) !== index)
|
||||||
|
throw new Error('Index out of range.');
|
||||||
|
|
||||||
|
if (this.depth >= 0xff)
|
||||||
|
throw new Error('Depth too high.');
|
||||||
|
|
||||||
if (hardened) {
|
if (hardened) {
|
||||||
index |= common.HARDENED;
|
index |= common.HARDENED;
|
||||||
index >>>= 0;
|
index >>>= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.depth >= 0xff)
|
|
||||||
throw new Error('Depth too high.');
|
|
||||||
|
|
||||||
const id = this.getID(index);
|
const id = this.getID(index);
|
||||||
const cache = common.cache.get(id);
|
const cache = common.cache.get(id);
|
||||||
|
|
||||||
|
|||||||
@ -143,7 +143,7 @@ HDPublicKey.prototype.destroy = function destroy() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Derive a child key.
|
* Derive a child key.
|
||||||
* @param {Number|String} - Child index or path.
|
* @param {Number} index - Derivation index.
|
||||||
* @param {Boolean?} hardened - Whether the derivation
|
* @param {Boolean?} hardened - Whether the derivation
|
||||||
* should be hardened (throws if true).
|
* should be hardened (throws if true).
|
||||||
* @returns {HDPrivateKey}
|
* @returns {HDPrivateKey}
|
||||||
@ -151,7 +151,10 @@ HDPublicKey.prototype.destroy = function destroy() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
HDPublicKey.prototype.derive = function derive(index, hardened) {
|
HDPublicKey.prototype.derive = function derive(index, hardened) {
|
||||||
assert(util.isU32(index));
|
assert(typeof index === 'number');
|
||||||
|
|
||||||
|
if ((index >>> 0) !== index)
|
||||||
|
throw new Error('Index out of range.');
|
||||||
|
|
||||||
if ((index & common.HARDENED) || hardened)
|
if ((index & common.HARDENED) || hardened)
|
||||||
throw new Error('Cannot derive hardened.');
|
throw new Error('Cannot derive hardened.');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user