From bdb0dd4a17fdf47d1998da91b72e1553faa0bf41 Mon Sep 17 00:00:00 2001
From: Daniel Cousens <github@dcousens.com>
Date: Thu, 25 Feb 2016 13:41:35 +1100
Subject: [PATCH] HDNode/tests: add testing for invalid network version from
 networks list

---
 src/hdnode.js             | 6 ++++--
 test/fixtures/hdnode.json | 5 +++--
 test/hdnode.js            | 4 ++--
 3 files changed, 9 insertions(+), 6 deletions(-)

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))
       })
     })