From 15c63eb14ab879721c97157daef86ecfe2f7685b Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Sun, 28 Feb 2016 20:06:02 -0800 Subject: [PATCH] use utils.indexOf. --- lib/bcoin/mtx.js | 21 ++++----------------- lib/bcoin/utils.js | 6 ++++-- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/lib/bcoin/mtx.js b/lib/bcoin/mtx.js index 2b6ab1ab..bae049f5 100644 --- a/lib/bcoin/mtx.js +++ b/lib/bcoin/mtx.js @@ -270,12 +270,7 @@ MTX.prototype.scriptInput = function scriptInput(index, addr) { vector[1] = addr.publicKey; } else if (bcoin.script.isMultisig(prev)) { // Multisig - for (i = 0; i < prev.length; i++) { - if (utils.isEqual(prev[i], addr.publicKey)) - break; - } - - if (i === prev.length) + if (utils.indexOf(prev, addr.publicKey) === -1) return false; // Already has a script template (at least) @@ -294,12 +289,7 @@ MTX.prototype.scriptInput = function scriptInput(index, addr) { for (i = 0; i < n; i++) vector[i + 1] = dummy; } else { - for (i = 0; i < prev.length; i++) { - if (utils.isEqual(prev[i], addr.publicKey)) - break; - } - - if (i === prev.length) + if (utils.indexOf(prev, addr.publicKey) === -1) return false; // Already has a script template (at least) @@ -499,15 +489,12 @@ MTX.prototype.signInput = function signInput(index, addr, type) { // Find the key index so we can place // the signature in the same index. - for (ki = 0; ki < keys.length; ki++) { - if (utils.isEqual(addr.publicKey, keys[ki])) - break; - } + ki = utils.indexOf(keys, addr.publicKey); // Our public key is not in the prev_out // script. We tried to sign a transaction // that is not redeemable by us. - if (ki === keys.length) + if (ki === -1) return false; // Offset key index by one to turn it into diff --git a/lib/bcoin/utils.js b/lib/bcoin/utils.js index 6d7bca13..2f596bf2 100644 --- a/lib/bcoin/utils.js +++ b/lib/bcoin/utils.js @@ -1671,10 +1671,12 @@ utils.checkMerkleBranch = function checkMerkleBranch(hash, branch, index) { utils.indexOf = function indexOf(arr, buf) { var i; - assert(Array.isArray(arr)); - assert(Buffer.isBuffer(buf)); + utils.assert(Array.isArray(arr)); + utils.assert(Buffer.isBuffer(buf)); for (i = 0; i < arr.length; i++) { + if (!Buffer.isBuffer(arr[i])) + continue; if (utils.isEqual(arr[i], buf)) return i; }