Browse Source

multisig.input.encodestack - replace OP_0 (permitted by partialSignature) with EMPTY_BUFFER

hk-custom-address
Thomas Kerin 8 years ago
committed by Daniel Cousens
parent
commit
da49e389c4
  1. 7
      src/templates/multisig/input.js
  2. 6
      src/transaction_builder.js

7
src/templates/multisig/input.js

@ -39,7 +39,12 @@ function encodeStack (signatures, scriptPubKey) {
}
}
return [].concat(EMPTY_BUFFER, signatures)
return [].concat(EMPTY_BUFFER, signatures.map(function (sig) {
if (sig === OPS.OP_0) {
return EMPTY_BUFFER
}
return sig
}))
}
function encode (signatures, scriptPubKey) {

6
src/transaction_builder.js

@ -389,14 +389,14 @@ function buildStack (type, signatures, pubKeys, allowIncomplete) {
} else if (type === scriptTypes.MULTISIG) {
if (signatures.length > 0) {
signatures = signatures.map(function (signature) {
return signature || Buffer.from('', 'hex')
return signature || ops.OP_0
})
if (!allowIncomplete) {
// remove blank signatures
signatures = signatures.filter(function (x) { return x.length !== 0 })
signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
}
return [].concat(Buffer.from('', 'hex'), signatures)
return bscript.multisig.input.encodeStack(signatures)
}
} else {
throw new Error('Not yet supported')

Loading…
Cancel
Save