diff --git a/src/bufferutils.js b/src/bufferutils.js index 9f1c85e..773e502 100644 --- a/src/bufferutils.js +++ b/src/bufferutils.js @@ -168,6 +168,16 @@ function varIntBuffer (i) { return buffer } +function equal (a, b) { + if (a.length !== b.length) return false + + for (var i = 0; i < a.length; ++i) { + if (a[i] !== b[i]) return false + } + + return true +} + function reverse (buffer) { var buffer2 = new Buffer(buffer) Array.prototype.reverse.call(buffer2) @@ -175,6 +185,7 @@ function reverse (buffer) { } module.exports = { + equal: equal, pushDataSize: pushDataSize, readPushDataInt: readPushDataInt, readUInt64LE: readUInt64LE, diff --git a/src/transaction_builder.js b/src/transaction_builder.js index cafcfc8..e2b7e28 100644 --- a/src/transaction_builder.js +++ b/src/transaction_builder.js @@ -399,7 +399,7 @@ TransactionBuilder.prototype.sign = function (index, keyPair, redeemScript, hash // enforce in order signing of public keys assert(input.pubKeys.some(function (pubKey, i) { - if (kpPubKey.compare(pubKey) !== 0) return false + if (!bufferutils.equal(kpPubKey, pubKey)) return false assert(!input.signatures[i], 'Signature already exists') @@ -407,7 +407,7 @@ TransactionBuilder.prototype.sign = function (index, keyPair, redeemScript, hash input.signatures[i] = signature return true - }), 'key pair cannot sign for this input') + }, this), 'key pair cannot sign for this input') } module.exports = TransactionBuilder