tests/txb: add P2WSH(multisig), incomplete fixture
This commit is contained in:
parent
0157f18510
commit
5057d8d1ba
3 changed files with 68 additions and 9 deletions
|
@ -82,7 +82,7 @@ function expandInput (scriptSig, witnessStack) {
|
|||
script = redeemScript
|
||||
}
|
||||
|
||||
var classifyWitness = bscript.classifyWitness(witnessStack)
|
||||
var classifyWitness = bscript.classifyWitness(witnessStack, true)
|
||||
if (classifyWitness === scriptTypes.P2WSH) {
|
||||
witnessScript = witnessStack[witnessStack.length - 1]
|
||||
witnessScriptType = bscript.classifyOutput(witnessScript)
|
||||
|
@ -399,7 +399,6 @@ function buildStack (type, signatures, pubKeys, allowIncomplete) {
|
|||
}
|
||||
|
||||
if (!allowIncomplete) throw new Error('Not enough signatures provided')
|
||||
|
||||
return []
|
||||
}
|
||||
|
||||
|
@ -460,7 +459,7 @@ function buildInput (input, allowIncomplete) {
|
|||
return {
|
||||
type: scriptType,
|
||||
script: bscript.compile(sig),
|
||||
witness: witness
|
||||
witness: bscript.toStack(witness)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
65
test/fixtures/transaction_builder.json
vendored
65
test/fixtures/transaction_builder.json
vendored
|
@ -1327,11 +1327,68 @@
|
|||
}
|
||||
],
|
||||
"locktime": 0
|
||||
},
|
||||
{
|
||||
"description": "P2SH(P2WSH(multisig 2-of-2)), incomplete",
|
||||
"network": "testnet",
|
||||
"txHex": "010000000001012915794541ffa77ca795ec7c23ee989a63ccd1a71fab73e1c27ed20c4b6c69a4010000002322002024376a0a9abab599d0e028248d48ebe817bc899efcffa1cd2984d67289daf5afffffffff01b8820100000000001976a914aa4d7985c57e011a8b3dd8e0e5a73aaef41629c588ac040047304402203b334650f1f13574a1c2edc76421867f7252950968bf0293c8b3ed086ab89e3d0220565cafab0a5044617e94756b948241525b2483a52504e1064d29f641fb18129e010047522102bbbd6eb01efcbe4bd9664b886f26f69de5afcb2e479d72596c8bf21929e352e22102d9c3f7180ef13ec5267723c9c2ffab56a4215241f837502ea8977c8532b9ea1952ae00000000",
|
||||
"incomplete": true,
|
||||
"inputs": [
|
||||
{
|
||||
"txId": "a4696c4b0cd27ec2e173ab1fa7d1cc639a98ee237cec95a77ca7ff4145791529",
|
||||
"vout": 1,
|
||||
"signs": [
|
||||
{
|
||||
"keyPair": "cRAwuVuVSBZMPu7hdrYvMCZ8eevzmkExjFbaBLhqnDdrezxN3nTS",
|
||||
"witnessScript": "OP_2 02bbbd6eb01efcbe4bd9664b886f26f69de5afcb2e479d72596c8bf21929e352e2 02d9c3f7180ef13ec5267723c9c2ffab56a4215241f837502ea8977c8532b9ea19 OP_2 OP_CHECKMULTISIG",
|
||||
"redeemScript": "OP_0 24376a0a9abab599d0e028248d48ebe817bc899efcffa1cd2984d67289daf5af",
|
||||
"value": 100000
|
||||
}
|
||||
],
|
||||
"prevTxScript": "OP_HASH160 b64f1a3eacc1c8515592a6f10457e8ff90e4db6a OP_EQUAL"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"script": "OP_DUP OP_HASH160 aa4d7985c57e011a8b3dd8e0e5a73aaef41629c5 OP_EQUALVERIFY OP_CHECKSIG",
|
||||
"value": 99000
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "P2SH(P2WSH(multisig 2-of-2))",
|
||||
"network": "testnet",
|
||||
"txHex": "010000000001012915794541ffa77ca795ec7c23ee989a63ccd1a71fab73e1c27ed20c4b6c69a4010000002322002024376a0a9abab599d0e028248d48ebe817bc899efcffa1cd2984d67289daf5afffffffff01b8820100000000001976a914aa4d7985c57e011a8b3dd8e0e5a73aaef41629c588ac040047304402203b334650f1f13574a1c2edc76421867f7252950968bf0293c8b3ed086ab89e3d0220565cafab0a5044617e94756b948241525b2483a52504e1064d29f641fb18129e0148304502210096e859827fb629b6547658c613f7c8298de151513d74b224560aa8608d521d600220736fb5564322237716ec940de44c67c428198adf5dedfda183c17aa77cd28d640147522102bbbd6eb01efcbe4bd9664b886f26f69de5afcb2e479d72596c8bf21929e352e22102d9c3f7180ef13ec5267723c9c2ffab56a4215241f837502ea8977c8532b9ea1952ae00000000",
|
||||
"incomplete": true,
|
||||
"inputs": [
|
||||
{
|
||||
"txId": "a4696c4b0cd27ec2e173ab1fa7d1cc639a98ee237cec95a77ca7ff4145791529",
|
||||
"vout": 1,
|
||||
"signs": [
|
||||
{
|
||||
"keyPair": "cRAwuVuVSBZMPu7hdrYvMCZ8eevzmkExjFbaBLhqnDdrezxN3nTS",
|
||||
"witnessScript": "OP_2 02bbbd6eb01efcbe4bd9664b886f26f69de5afcb2e479d72596c8bf21929e352e2 02d9c3f7180ef13ec5267723c9c2ffab56a4215241f837502ea8977c8532b9ea19 OP_2 OP_CHECKMULTISIG",
|
||||
"redeemScript": "OP_0 24376a0a9abab599d0e028248d48ebe817bc899efcffa1cd2984d67289daf5af",
|
||||
"value": 100000
|
||||
},
|
||||
{
|
||||
"keyPair": "cTUFsNeVd8TKU4yREN8nMdViNnHyNvCCYVRmRUmkMLgomiMWTiii",
|
||||
"witnessScript": "OP_2 02bbbd6eb01efcbe4bd9664b886f26f69de5afcb2e479d72596c8bf21929e352e2 02d9c3f7180ef13ec5267723c9c2ffab56a4215241f837502ea8977c8532b9ea19 OP_2 OP_CHECKMULTISIG",
|
||||
"redeemScript": "OP_0 24376a0a9abab599d0e028248d48ebe817bc899efcffa1cd2984d67289daf5af",
|
||||
"value": 100000
|
||||
}
|
||||
],
|
||||
"prevTxScript": "OP_HASH160 b64f1a3eacc1c8515592a6f10457e8ff90e4db6a OP_EQUAL"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"script": "OP_DUP OP_HASH160 aa4d7985c57e011a8b3dd8e0e5a73aaef41629c5 OP_EQUALVERIFY OP_CHECKSIG",
|
||||
"value": 99000
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
]
|
||||
,
|
||||
],
|
||||
"fromTransaction": [
|
||||
{
|
||||
"description": "Transaction w/ scriptHash(multisig 2-of-2) -> OP_RETURN | 1 OP_0, no signatures",
|
||||
|
|
|
@ -91,7 +91,9 @@ describe('TransactionBuilder', function () {
|
|||
|
||||
var tx = Transaction.fromHex(f.txHex)
|
||||
var txb = TransactionBuilder.fromTransaction(tx, network)
|
||||
assert.strictEqual(txb.build().toHex(), f.txHex)
|
||||
var txAfter = f.incomplete ? txb.buildIncomplete() : txb.build()
|
||||
|
||||
assert.strictEqual(txAfter.toHex(), f.txHex)
|
||||
assert.strictEqual(txb.network, network)
|
||||
})
|
||||
})
|
||||
|
@ -305,7 +307,8 @@ describe('TransactionBuilder', function () {
|
|||
fixtures.valid.build.forEach(function (f) {
|
||||
it('builds "' + f.description + '"', function () {
|
||||
var txb = construct(f)
|
||||
var tx = txb.build()
|
||||
var tx = f.incomplete ? txb.buildIncomplete() : txb.build()
|
||||
|
||||
assert.strictEqual(tx.toHex(), f.txHex)
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue