diff --git a/src/hdnode.js b/src/hdnode.js index 784acf5..0efd61c 100644 --- a/src/hdnode.js +++ b/src/hdnode.js @@ -64,7 +64,9 @@ HDNode.fromBase58 = function (string, networks) { network = networks.filter(function (network) { return version === network.bip32.private || version === network.bip32.public - }).pop() || {} + }).pop() + + if (!network) throw new Error('Invalid network version') // otherwise, assume a network object (or default to bitcoin) } else { @@ -72,7 +74,7 @@ HDNode.fromBase58 = function (string, networks) { } if (version !== network.bip32.private && - version !== network.bip32.public) throw new Error('Invalid network') + version !== network.bip32.public) throw new Error('Invalid network version') // 1 byte: depth: 0x00 for master nodes, 0x01 for level-1 descendants, ... var depth = buffer[4] diff --git a/test/fixtures/hdnode.json b/test/fixtures/hdnode.json index 21ca41d..59e0647 100644 --- a/test/fixtures/hdnode.json +++ b/test/fixtures/hdnode.json @@ -199,11 +199,12 @@ "string": "xprvQQQQQQQQQQQQQQQQCviVfJSKyQ1mDYahRjijr5idH2WwLsEd4Hsb2Tyh8RfQMuPh7f7RtyzTtdrbdqqsunu5Mm3wDvUAKRHSC34sJ7in334" }, { - "exception": "Invalid network", + "exception": "Invalid network version", "string": "1111111111111adADjFaSNPxwXqLjHLj4mBfYxuewDPbw9hEj1uaXCzMxRPXDFF3cUoezTFYom4sEmEVSQmENPPR315cFk9YUFVek73wE9" }, { - "exception": "Invalid network", + "exception": "Invalid network version", + "network": "bitcoin", "string": "Ltpv73XYpw28ZyVe2zEVyiFnxUZxoKLGQNdZ8NxUi1WcqjNmMBgtLbh3KimGSnPHCoLv1RmvxHs4dnKmo1oXQ8dXuDu8uroxrbVxZPA1gXboYvx" } ], diff --git a/test/hdnode.js b/test/hdnode.js index c5a55fb..e901850 100644 --- a/test/hdnode.js +++ b/test/hdnode.js @@ -210,9 +210,9 @@ describe('HDNode', function () { fixtures.invalid.fromBase58.forEach(function (f) { it('throws on ' + f.string, function () { assert.throws(function () { - var network = NETWORKS[f.network] + var networks = f.network ? NETWORKS[f.network] : NETWORKS_LIST - HDNode.fromBase58(f.string, network) + HDNode.fromBase58(f.string, networks) }, new RegExp(f.exception)) }) })