tests/integration/payments: enable failing P2SH(P2WSH(P2WPKH)) tests

This commit is contained in:
Daniel Cousens 2018-07-20 17:30:18 +10:00
parent faf3645361
commit de0259a820
2 changed files with 12 additions and 6 deletions

View file

@ -232,6 +232,11 @@ function prepareInput (input, ourPubKey, redeemScript, witnessValue, witnessScri
expanded.signatures = input.signatures expanded.signatures = input.signatures
} }
let signScript = witnessScript
if (expanded.type === SCRIPT_TYPES.P2WPKH) {
signScript = payments.p2pkh({ pubkey: expanded.pubkeys[0] }).output
}
return { return {
redeemScript, redeemScript,
redeemScriptType: SCRIPT_TYPES.P2WSH, redeemScriptType: SCRIPT_TYPES.P2WSH,
@ -243,7 +248,7 @@ function prepareInput (input, ourPubKey, redeemScript, witnessValue, witnessScri
prevOutScript: p2sh.output, prevOutScript: p2sh.output,
hasWitness: true, hasWitness: true,
signScript: witnessScript, signScript,
signType: expanded.type, signType: expanded.type,
pubkeys: expanded.pubkeys, pubkeys: expanded.pubkeys,
@ -303,6 +308,11 @@ function prepareInput (input, ourPubKey, redeemScript, witnessValue, witnessScri
expanded.signatures = input.signatures expanded.signatures = input.signatures
} }
let signScript = witnessScript
if (expanded.type === SCRIPT_TYPES.P2WPKH) {
signScript = payments.p2pkh({ pubkey: expanded.pubkeys[0] }).output
}
return { return {
witnessScript, witnessScript,
witnessScriptType: expanded.type, witnessScriptType: expanded.type,
@ -311,7 +321,7 @@ function prepareInput (input, ourPubKey, redeemScript, witnessValue, witnessScri
prevOutScript: p2wsh.output, prevOutScript: p2wsh.output,
hasWitness: true, hasWitness: true,
signScript: witnessScript, signScript,
signType: expanded.type, signType: expanded.type,
pubkeys: expanded.pubkeys, pubkeys: expanded.pubkeys,

View file

@ -55,15 +55,11 @@ function buildAndSign (depends, prevOutput, redeemScript, witnessScript, done) {
}) })
it('can (as P2WSH(' + k + ')) broadcast as an output, and be spent as an input', (done) => { it('can (as P2WSH(' + k + ')) broadcast as an output, and be spent as an input', (done) => {
if (k === 'p2wpkh') return done() // skip P2WSH(P2WPKH)
const p2wsh = bitcoin.payments.p2wsh({ redeem: { output }, network: NETWORK }) const p2wsh = bitcoin.payments.p2wsh({ redeem: { output }, network: NETWORK })
buildAndSign(depends, p2wsh.output, null, p2wsh.redeem.output, done) buildAndSign(depends, p2wsh.output, null, p2wsh.redeem.output, done)
}) })
it('can (as P2SH(P2WSH(' + k + '))) broadcast as an output, and be spent as an input', (done) => { it('can (as P2SH(P2WSH(' + k + '))) broadcast as an output, and be spent as an input', (done) => {
if (k === 'p2wpkh') return done() // skip P2SH(P2WSH(P2WPKH))
const p2wsh = bitcoin.payments.p2wsh({ redeem: { output }, network: NETWORK }) const p2wsh = bitcoin.payments.p2wsh({ redeem: { output }, network: NETWORK })
const p2sh = bitcoin.payments.p2sh({ redeem: { output: p2wsh.output }, network: NETWORK }) const p2sh = bitcoin.payments.p2sh({ redeem: { output: p2wsh.output }, network: NETWORK })