diff --git a/TransactionBuilder.js b/TransactionBuilder.js index 14e84e511..0c75239a9 100644 --- a/TransactionBuilder.js +++ b/TransactionBuilder.js @@ -770,20 +770,25 @@ TransactionBuilder.fromObj = function(data) { }; -TransactionBuilder._checkMergeability = function(b) { +TransactionBuilder.prototype._checkMergeability = function(b) { + var self=this; + // Builder should have the same params ['valueInSat', 'valueOutSat', 'feeSat', 'remainderSat', 'signhash', 'spendUnconfirmed'] .forEach(function (k) { - if (this[k] !== b[k]) - throw new Error('mismatch at TransactionBuilder match: ' + k); + + if (self[k].toString() !== b[k].toString()) { + throw new Error('mismatch at TransactionBuilder match: ' + + k + ': ' + self[k] + ' vs. ' + b[k]); + } }); - if (this.hashToScriptMap) { + if (self.hashToScriptMap) { var err = 0; if(! b.hashToScriptMap) err=1; - Object.keys(this.hashToScriptMap).forEach(function(k) { + Object.keys(self.hashToScriptMap).forEach(function(k) { if (!b.hashToScriptMap[k]) err=1; - if (this.hashToScriptMap[k] !== b.hashToScriptMap[k]) err=1; + if (self.hashToScriptMap[k] !== b.hashToScriptMap[k]) err=1; }); if (err) throw new Error('mismatch at TransactionBuilder hashToScriptMap'); @@ -791,7 +796,7 @@ TransactionBuilder._checkMergeability = function(b) { var err = 0, i=0;; - this.selectedUtxos.forEach(function(u) { + self.selectedUtxos.forEach(function(u) { if (!err) { var v=b.selectedUtxos[i++]; if (!v) err=1; @@ -807,13 +812,13 @@ TransactionBuilder._checkMergeability = function(b) { err = 0; i=0;; - this.inputMap.forEach(function(u) { + self.inputMap.forEach(function(u) { if (!err) { var v=b.inputMap[i++]; if (!v) err=1; // confirmations could differ ['address', 'scriptType', 'scriptPubKey', 'i'].forEach(function(k) { - if (u[k] !== v[k]) + if (u[k].toString() !== v[k].toString()) err=k; }); } @@ -840,45 +845,44 @@ TransactionBuilder.prototype._mergeInputSig = function(s0buf, s1buf) { if (l0 && l1 && l0 !== l1) throw new Error('TX sig types mismatch in merge'); - if (l0) { - // Look for differences. - for (var i=0; i