Skip to content

Commit c729d32

Browse files
committed
tests: add failing staged transaction building example bitcoinjs#901
1 parent f4a83f8 commit c729d32

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

test/fixtures/transaction_builder.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,6 +1386,41 @@
13861386
"value": 99000
13871387
}
13881388
]
1389+
},
1390+
{
1391+
"description": "P2WSH(multisig 2-of-3) -> P2PKH",
1392+
"network": "testnet",
1393+
"txHex": "01000000000101ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01000000232200201b48bf145648b9492ecd6d76754ea3def4b90e22e4ef7aee9ca291b2de455701ffffffff01f07e0e00000000001976a914aa4d7985c57e011a8b3dd8e0e5a73aaef41629c588ac0400473044022036c9ecb03cb04c09be1f52766725dcfe9a815973bd2f34ce19a345f2d925a45502207b90737852d2508db104ad17612de473687e67928c045555a1ed8d495c0570d901483045022100aec0e58e4e597b35ca5a727702a0da3d4f2ef4759914da7fc80aecb3c479a6d902201ec27ea8dcca4b73ee81e4b627f52f9e627c3497f61e4beeb98f86e02979640a0169522103c411cf39aca4395c81c35921dc832a0d1585d652ab1b52ccc619ff9fbbc5787721020636d944458a4663b75a912c37dc1cd59b11f9a00106783a65ba230d929b96b02102d1448cbf19528a1a27e5958ba73d930b5b3facdbe5c30c7094951a287fcc914953ae00000000",
1394+
"stages": [
1395+
"01000000000101ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01000000232200201b48bf145648b9492ecd6d76754ea3def4b90e22e4ef7aee9ca291b2de455701ffffffff01f07e0e00000000001976a914aa4d7985c57e011a8b3dd8e0e5a73aaef41629c588ac0500473044022036c9ecb03cb04c09be1f52766725dcfe9a815973bd2f34ce19a345f2d925a45502207b90737852d2508db104ad17612de473687e67928c045555a1ed8d495c0570d901000069522103c411cf39aca4395c81c35921dc832a0d1585d652ab1b52ccc619ff9fbbc5787721020636d944458a4663b75a912c37dc1cd59b11f9a00106783a65ba230d929b96b02102d1448cbf19528a1a27e5958ba73d930b5b3facdbe5c30c7094951a287fcc914953ae00000000"
1396+
],
1397+
"inputs": [
1398+
{
1399+
"txId": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
1400+
"vout": 1,
1401+
"signs": [
1402+
{
1403+
"keyPair": "cUxccFVBdJRq6HnyxiFMd8Z15GLThXaNLcnPBgoXLEv9iX6wuV2b",
1404+
"witnessScript": "OP_2 03c411cf39aca4395c81c35921dc832a0d1585d652ab1b52ccc619ff9fbbc57877 020636d944458a4663b75a912c37dc1cd59b11f9a00106783a65ba230d929b96b0 02d1448cbf19528a1a27e5958ba73d930b5b3facdbe5c30c7094951a287fcc9149 OP_3 OP_CHECKMULTISIG",
1405+
"redeemScript": "OP_0 1b48bf145648b9492ecd6d76754ea3def4b90e22e4ef7aee9ca291b2de455701",
1406+
"value": 1000000,
1407+
"stage": true
1408+
},
1409+
{
1410+
"keyPair": "cVSNe9ZdZRsRvEBL8YRR7YiZmH4cLsf5FthgERWkZezJVrGseaXy",
1411+
"witnessScript": "OP_2 03c411cf39aca4395c81c35921dc832a0d1585d652ab1b52ccc619ff9fbbc57877 020636d944458a4663b75a912c37dc1cd59b11f9a00106783a65ba230d929b96b0 02d1448cbf19528a1a27e5958ba73d930b5b3facdbe5c30c7094951a287fcc9149 OP_3 OP_CHECKMULTISIG",
1412+
"redeemScript": "OP_0 1b48bf145648b9492ecd6d76754ea3def4b90e22e4ef7aee9ca291b2de455701",
1413+
"value": 1000000
1414+
}
1415+
]
1416+
}
1417+
],
1418+
"outputs": [
1419+
{
1420+
"script": "OP_DUP OP_HASH160 aa4d7985c57e011a8b3dd8e0e5a73aaef41629c5 OP_EQUALVERIFY OP_CHECKSIG",
1421+
"value": 950000
1422+
}
1423+
]
13891424
}
13901425
],
13911426
"fromTransaction": [

test/transaction_builder.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ function construct (f, dontSign) {
5151

5252
if (dontSign) return txb
5353

54+
var stages = f.stages && f.stages.concat()
5455
f.inputs.forEach(function (input, index) {
5556
if (!input.signs) return
5657
input.signs.forEach(function (sign) {
@@ -68,6 +69,12 @@ function construct (f, dontSign) {
6869
witnessScript = bscript.fromASM(sign.witnessScript)
6970
}
7071
txb.sign(index, keyPair, redeemScript, sign.hashType, value, witnessScript)
72+
73+
if (sign.stage) {
74+
var tx = txb.buildIncomplete()
75+
assert.strictEqual(tx.toHex(), stages.shift())
76+
txb = TransactionBuilder.fromTransaction(tx, network)
77+
}
7178
})
7279
})
7380

0 commit comments

Comments
 (0)