|
@ -633,6 +633,8 @@ TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashTy |
|
|
// TODO: remove keyPair.network matching in 4.0.0
|
|
|
// TODO: remove keyPair.network matching in 4.0.0
|
|
|
if (keyPair.network && keyPair.network !== this.network) throw new TypeError('Inconsistent network') |
|
|
if (keyPair.network && keyPair.network !== this.network) throw new TypeError('Inconsistent network') |
|
|
if (!this.__inputs[vin]) throw new Error('No input at index: ' + vin) |
|
|
if (!this.__inputs[vin]) throw new Error('No input at index: ' + vin) |
|
|
|
|
|
if (this.__needsOutputs()) throw new Error('Transaction needs outputs') |
|
|
|
|
|
|
|
|
hashType = hashType || Transaction.SIGHASH_ALL |
|
|
hashType = hashType || Transaction.SIGHASH_ALL |
|
|
|
|
|
|
|
|
const input = this.__inputs[vin] |
|
|
const input = this.__inputs[vin] |
|
@ -694,8 +696,7 @@ function signatureHashType (buffer) { |
|
|
|
|
|
|
|
|
TransactionBuilder.prototype.__canModifyInputs = function () { |
|
|
TransactionBuilder.prototype.__canModifyInputs = function () { |
|
|
return this.__inputs.every(function (input) { |
|
|
return this.__inputs.every(function (input) { |
|
|
// any signatures?
|
|
|
if (!input.signatures) return true |
|
|
if (input.signatures === undefined) return true |
|
|
|
|
|
|
|
|
|
|
|
return input.signatures.every(function (signature) { |
|
|
return input.signatures.every(function (signature) { |
|
|
if (!signature) return true |
|
|
if (!signature) return true |
|
@ -708,6 +709,11 @@ TransactionBuilder.prototype.__canModifyInputs = function () { |
|
|
}) |
|
|
}) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TODO: handle incomplete SIGHASH_NONE flow
|
|
|
|
|
|
TransactionBuilder.prototype.__needsOutputs = function () { |
|
|
|
|
|
return this.__tx.outs.length === 0 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TransactionBuilder.prototype.__canModifyOutputs = function () { |
|
|
TransactionBuilder.prototype.__canModifyOutputs = function () { |
|
|
const nInputs = this.__tx.ins.length |
|
|
const nInputs = this.__tx.ins.length |
|
|
const nOutputs = this.__tx.outs.length |
|
|
const nOutputs = this.__tx.outs.length |
|
|