txscript: Use native encoding in json test data.

This modifies the valid and invalid JSON transaction test data to use
natively-encoded transactions instead of the legacy Bitcoin format.
This commit is contained in:
Dave Collins 2017-08-03 20:29:43 -05:00
parent 5baa16baa3
commit fdb25c2f43
No known key found for this signature in database
GPG Key ID: B8904D9D9C93D1F2
3 changed files with 54 additions and 53 deletions

View File

@ -12,29 +12,30 @@
["Valid signature but with extra junk appended to the end of the scriptPubKey"],
[[["6ca7ec7b1847f6bdbd737176050e6a08d66ccd55bb94ad24f4018024107a5827", 0, "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG VERIFY 1"]],
"010000000127587a10248001f424ad94bb55cd6cd6086a0e05767173bdbdf647187beca76c000000004948304502210092d7db36a37f386e9592ab60654fd9a251144eeb0406e12e699f80c8effe0d4a02204f6430f494fbe08caeaaf5b34dadbf6b2b1b9ed00f9dfbd8f3e1736792813b7101ffffffff0100f2052a010000001976a914fc50c5907d86fed474ba5ce8b12a66e0a4c139d888ac00000000", "P2SH"],
"010000000127587a10248001f424ad94bb55cd6cd6086a0e05767173bdbdf647187beca76c0000000000ffffffff0100f2052a0100000000001976a914fc50c5907d86fed474ba5ce8b12a66e0a4c139d888ac000000000000000001000000000000000000000000000000004948304502210092d7db36a37f386e9592ab60654fd9a251144eeb0406e12e699f80c8effe0d4a02204f6430f494fbe08caeaaf5b34dadbf6b2b1b9ed00f9dfbd8f3e1736792813b7101", "P2SH"],
["This is the nearly-standard transaction with CHECKSIGVERIFY 1 instead of CHECKSIG"],
["but with the signature duplicated in the scriptPubKey with a non-standard pushdata prefix"],
["See removeOpcodeByData, which will only remove if it uses the same pushdata prefix as is standard"],
["Remove the 0x4c in the public key script to prove correctness"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "DUP HASH160 0x14 0xe280cb6e66b96679aec288b1fbdbd4db08077a1b EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x48 0x3045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000006b483045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ffffffff010000000000000000015100000000", "P2SH"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01000000000000000000000151000000000000000001000000000000000000000000000000006b483045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "P2SH"],
["Same as above, but with the sig in the scriptSig also pushed with the same non-standard OP_PUSHDATA"],
["Remove the 0x4c in the public key script to prove correctness"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "DUP HASH160 0x14 0xe280cb6e66b96679aec288b1fbdbd4db08077a1b EQUALVERIFY CHECKSIGVERIFY 1 0x4c 0x48 0x3045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000006c4c483045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ffffffff010000000000000000015100000000", "P2SH"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01000000000000000000000151000000000000000001000000000000000000000000000000006c4c483045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "P2SH"],
["This is the nearly-standard transaction with CHECKSIGVERIFY 1 instead of CHECKSIG"],
["but with the signature duplicated in the scriptPubKey with a different hashtype suffix"],
["See removeOpcodeByData, which will only remove if the signature, including the hash type, matches"],
["Change the final 81 in the public key script to 01 to prove correctness"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "DUP HASH160 0x14 0xe280cb6e66b96679aec288b1fbdbd4db08077a1b EQUALVERIFY CHECKSIGVERIFY 1 0x48 0x3045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c81"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000006b483045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ffffffff010000000000000000015100000000", "P2SH"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff01000000000000000000000151000000000000000001000000000000000000000000000000006b483045022100d403cac2b75374b53e7ee906b182d4470e3f7a42195c912c89624b41a9f8d0cd022018f3da9a174f8635b4e54ef5961e0d986d59aebdac56cfacbaaed0c7168aef1c01210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "P2SH"],
["An invalid P2SH Transaction"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "HASH160 0x14 0x7e1fdc4efcf81756453416ad61b88e9b66f0398e EQUAL"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000009085768617420697320ffffffff010000000000000000015100000000", "P2SH"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff010000000000000000000001510000000000000000010000000000000000000000000000000009085768617420697320", "P2SH"],
["Tests for CheckTransaction()"],
["No inputs"],
@ -42,7 +43,7 @@
["No outputs"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "HASH160 0x14 0x207b9fa91f9acc57e371d9cc1daed0eb29ee913b EQUAL"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000006d483045022100f16703104aab4e4088317c862daec83440242411b039d14280e03dd33b487ab802201318a7be236672c5c56083eb7a5a195bc57a40af7923ff8545016cd3b571e2a601232103c40e5d339df3f30bf753e7e04450ae4ef76c9e45587d1d993bdc4cd06f0651c7acffffffff0000000000", "P2SH"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000001000000000000000000000000000000006d483045022100f16703104aab4e4088317c862daec83440242411b039d14280e03dd33b487ab802201318a7be236672c5c56083eb7a5a195bc57a40af7923ff8545016cd3b571e2a601232103c40e5d339df3f30bf753e7e04450ae4ef76c9e45587d1d993bdc4cd06f0651c7ac", "P2SH"],
["Negative output"],
["Removed because txscript doesn't do tx sanity checking."],
@ -70,102 +71,102 @@
["One input SIGHASH_ALL and one SIGHASH_ANYONECANPAY, but we set the _ANYONECANPAY sequence number, invalidating the SIGHASH_ALL signature"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG"],
["0000000000000000000000000000000000000000000000000000000000000200", 0, "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG"]],
"0100000002000100000000000000000000000000000000000000000000000000000000000000000000484730440220672f3e43db0fe4186453a821216fb67329430ee51e68ac1fce2df99b40fb3f2602205199eac8c92537603d0bd2c0f447a6930a84819c4b459a0407bc7a2efc9ed25101010000000002000000000000000000000000000000000000000000000000000000000000000000004847304402203adbbf331218a3413d3f9d00de5b4b6db98f5d390c9a6b246d5def621f860b10022068994ba0d4f562b88e189bd0059b57272b54de0b6cb8cdb78b83f6e8a76118ed8101000000010100000000000000015100000000", "P2SH"],
"0100000002000100000000000000000000000000000000000000000000000000000000000000000000000100000000020000000000000000000000000000000000000000000000000000000000000000000000010000000101000000000000000000015100000000000000000200000000000000000000000000000000484730440220672f3e43db0fe4186453a821216fb67329430ee51e68ac1fce2df99b40fb3f2602205199eac8c92537603d0bd2c0f447a6930a84819c4b459a0407bc7a2efc9ed25101000000000000000000000000000000004847304402203adbbf331218a3413d3f9d00de5b4b6db98f5d390c9a6b246d5def621f860b10022068994ba0d4f562b88e189bd0059b57272b54de0b6cb8cdb78b83f6e8a76118ed81", "P2SH"],
["CHECKMULTISIG with incorrect signature order"],
["Note the input is just required to make the tester happy"],
[[["b3da01dd4aae683c7aee4d5d8b52a540a508e1115f77cd7fa9a291243f501223", 0, "HASH160 0x14 0x44a3733738b2401b73ae4628940cc5ceea811bd0 EQUAL"]],
"01000000012312503f2491a2a97fcd775f11e108a540a5528b5d4dee7a3c68ae4add01dab300000000fd4501483045022100916a68d57bd368ec03f20336edf24bbaab0449164e4b49ed3521751ca164033d02204dbdcb5f43e144be870986e741154798c75c973982c2cfc63662d977df262079014830450221009f12199e27497a8cef1e0839605ed80b2febf610dbad1be40e71024d3cf71cc2022020a00a38f8a0251b4458c00429890f3472961f774fb459e1480354c6ec555c6e01473044022065619c3964ff89d985d10d922d3525fc0aef467f31444be82d018dd05552cd28022050f22c503b332261c10835440b9cdd7b647ab9571afde4bb187a6369c2fa76c1014c6952210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817982102c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee52102f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f953aeffffffff0180380100000000001976a914c9b99cddf847d10685a4fabaa0baf505f7c3dfab88ac00000000", "P2SH"],
"01000000012312503f2491a2a97fcd775f11e108a540a5528b5d4dee7a3c68ae4add01dab30000000000ffffffff01803801000000000000001976a914c9b99cddf847d10685a4fabaa0baf505f7c3dfab88ac00000000000000000100000000000000000000000000000000fd4501483045022100916a68d57bd368ec03f20336edf24bbaab0449164e4b49ed3521751ca164033d02204dbdcb5f43e144be870986e741154798c75c973982c2cfc63662d977df262079014830450221009f12199e27497a8cef1e0839605ed80b2febf610dbad1be40e71024d3cf71cc2022020a00a38f8a0251b4458c00429890f3472961f774fb459e1480354c6ec555c6e01473044022065619c3964ff89d985d10d922d3525fc0aef467f31444be82d018dd05552cd28022050f22c503b332261c10835440b9cdd7b647ab9571afde4bb187a6369c2fa76c1014c6952210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817982102c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee52102f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f953ae", "P2SH"],
["Empty stack when we try to run CHECKSIG"],
[[["ad503f72c18df5801ee64d76090afe4c607fb2b822e9b7b63c5826c50e22fc3b", 0, "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT"]],
"01000000013bfc220ec526583cb6b7e922b8b27f604cfe0a09764de61e80f58dc1723f50ad0000000000ffffffff0101000000000000002321027c3a97665bf283a102a587a62a30a0c102d4d3b141015e2cae6f64e2543113e5ac00000000", "P2SH"],
"01000000013bfc220ec526583cb6b7e922b8b27f604cfe0a09764de61e80f58dc1723f50ad0000000000ffffffff01010000000000000000002321027c3a97665bf283a102a587a62a30a0c102d4d3b141015e2cae6f64e2543113e5ac0000000000000000010000000000000000000000000000000000", "P2SH"],
["CODESEPARATOR is always invalid when passed over regardless of being executed"],
["CODESEPARATOR is invalid in an executed IF block"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "IF CODESEPARATOR ENDIF 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000151ffffffff010000000000000000016a00000000", "P2SH"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000016a000000000000000001000000000000000000000000000000000151", "P2SH"],
["CODESEPARATOR is invalid in an unexecuted IF block"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "IF CODESEPARATOR ENDIF 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000100ffffffff010000000000000000016a00000000", "P2SH"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000016a000000000000000001000000000000000000000000000000000100", "P2SH"],
["CHECKLOCKTIMEVERIFY tests"],
["By-height locks, with argument just beyond tx nLockTime"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000fe64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000fe64cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["By-time locks, with argument just beyond tx nLockTime (but within numerical boundaries)"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000001 NOP2 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000065cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000feffffff00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Argument missing"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000001b1010000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000010000000000000000000000000000000001b1", "P2SH,CHECKLOCKTIMEVERIFY"],
["Argument negative with by-blockheight nLockTime=0"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Argument negative with by-blocktime nLockTime=500,000,000"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "-1 NOP2 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000065cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000004005194b1010000000100000000000000000002000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000200000000000000010000000000000000000000000000000004005194b1", "P2SH,CHECKLOCKTIMEVERIFY"],
["Input locked"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff0100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1ffffffff0100000000000000000002000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000ffffffff010000000000000000000000020000000000000001000000000000000000000000000000000251b1", "P2SH,CHECKLOCKTIMEVERIFY"],
["Another input being unlocked isn't sufficient; the CHECKLOCKTIMEVERIFY-using input must be unlocked"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"] ,
["0000000000000000000000000000000000000000000000000000000000000200", 1, "1"]],
"010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff00020000000000000000000000000000000000000000000000000000000000000100000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000200010000000000000000000000000000000000000000000000000000000000000000000000ffffffff000200000000000000000000000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Argument/tx height/time mismatch, both versions"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000065cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b100000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000065cd1d0000000001000000000000000000000000000000000251b1", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000065cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff64cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Argument 2^32 with nLockTime=2^32-1"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967296 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffffffff00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Same, but with nLockTime=2^31-1"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "2147483648 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffff7f", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffffff7f00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["6 byte non-minimally-encoded arguments are invalid even if their contents are valid"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x06 0x000000000000 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Failure due to failing CHECKLOCKTIMEVERIFY in scriptSig"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000251b1", "P2SH,CHECKLOCKTIMEVERIFY"],
["Failure due to failing CHECKLOCKTIMEVERIFY in redeemScript"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "HASH160 0x14 0x69780eeb90f65bf4cec3c17aeb3d466b88e7be66 EQUAL"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000030251b1000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000100000000000000000000000000000000030251b1", "P2SH,CHECKLOCKTIMEVERIFY"],
["Make diffs cleaner by leaving a comment here without comma at the end"]
]

View File

@ -8,68 +8,68 @@
["Coinbase of size 2"],
["Note the input is just required to make the tester happy"],
[[["0000000000000000000000000000000000000000000000000000000000000000", -1, "1"]],
"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff025151ffffffff010000000000000000015100000000", "P2SH"],
"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff00ffffffff0100000000000000000000015100000000000000000100000000000000000000000000000000025151", "P2SH"],
["Coinbase of size 100"],
["Note the input is just required to make the tester happy"],
[[["0000000000000000000000000000000000000000000000000000000000000000", -1, "1"]],
"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff6451515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151ffffffff010000000000000000015100000000", "P2SH"],
"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff00ffffffff01000000000000000000000151000000000000000001000000000000000000000000000000006451515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151", "P2SH"],
["Empty pubkey"],
[[["229257c295e7f555421c1bfec8538dd30a4b5c37c1c8810bbe83cafa7811652c", 0, "0x00 CHECKSIG NOT"]],
"01000000012c651178faca83be0b81c8c1375c4b0ad38d53c8fe1b1c4255f5e795c25792220000000049483045022100d6044562284ac76c985018fc4a90127847708c9edb280996c507b28babdc4b2a02203d74eca3f1a4d1eea7ff77b528fde6d5dc324ec2dbfdb964ba885f643b9704cd01ffffffff010100000000000000232102c2410f8891ae918cab4ffc4bb4a3b0881be67c7a1e7faa8b5acf9ab8932ec30cac00000000", "P2SH"],
"01000000012c651178faca83be0b81c8c1375c4b0ad38d53c8fe1b1c4255f5e795c25792220000000000ffffffff0101000000000000000000232102c2410f8891ae918cab4ffc4bb4a3b0881be67c7a1e7faa8b5acf9ab8932ec30cac0000000000000000010000000000000000000000000000000049483045022100d6044562284ac76c985018fc4a90127847708c9edb280996c507b28babdc4b2a02203d74eca3f1a4d1eea7ff77b528fde6d5dc324ec2dbfdb964ba885f643b9704cd01", "P2SH"],
["Empty signature"],
[[["9ca93cfd8e3806b9d9e2ba1cf64e3cc6946ee0119670b1796a09928d14ea25f7", 0, "0x21 0x028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02 CHECKSIG NOT"]],
"0100000001f725ea148d92096a79b1709611e06e94c63c4ef61cbae2d9b906388efd3ca99c000000000100ffffffff0101000000000000002321028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac00000000", "P2SH"],
"0100000001f725ea148d92096a79b1709611e06e94c63c4ef61cbae2d9b906388efd3ca99c0000000000ffffffff01010000000000000000002321028a1d66975dbdf97897e3a4aef450ebeb5b5293e4a0b4a6d3a2daaa0b2b110e02ac000000000000000001000000000000000000000000000000000100", "P2SH"],
[[["ebbcf4bfce13292bd791d6a65a2a858d59adbf737e387e40370d4e64cc70efb0", 0, "2 0x21 0x033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af04194 0x21 0x03a88b326f8767f4f192ce252afe33c94d25ab1d24f27f159b3cb3aa691ffe1423 2 CHECKMULTISIG NOT"]],
"0100000001b0ef70cc644e0d37407e387e73bfad598d852a5aa6d691d72b2913cebff4bceb000000004a00473044022068cd4851fc7f9a892ab910df7a24e616f293bcb5c5fbdfbc304a194b26b60fba022078e6da13d8cb881a22939b952c24f88b97afd06b4c47a47d7f804c9a352a6d6d0100ffffffff0101000000000000002321033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af04194ac00000000", "P2SH"],
"0100000001b0ef70cc644e0d37407e387e73bfad598d852a5aa6d691d72b2913cebff4bceb0000000000ffffffff01010000000000000000002321033bcaa0a602f0d44cc9d5637c6e515b0471db514c020883830b7cefd73af04194ac000000000000000001000000000000000000000000000000004a00473044022068cd4851fc7f9a892ab910df7a24e616f293bcb5c5fbdfbc304a194b26b60fba022078e6da13d8cb881a22939b952c24f88b97afd06b4c47a47d7f804c9a352a6d6d0100", "P2SH"],
[[["ba4cd7ae2ad4d4d13ebfc8ab1d93a63e4a6563f25089a18bf0fc68f282aa88c1", 0, "2 0x21 0x037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe1 0x21 0x02edc823cd634f2c4033d94f5755207cb6b60c4b1f1f056ad7471c47de5f2e4d50 2 CHECKMULTISIG NOT"]],
"0100000001c188aa82f268fcf08ba18950f263654a3ea6931dabc8bf3ed1d4d42aaed74cba000000004b0000483045022100940378576e069aca261a6b26fb38344e4497ca6751bb10905c76bb689f4222b002204833806b014c26fd801727b792b1260003c55710f87c5adbd7a9cb57446dbc9801ffffffff0101000000000000002321037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe1ac00000000", "P2SH"],
"0100000001c188aa82f268fcf08ba18950f263654a3ea6931dabc8bf3ed1d4d42aaed74cba0000000000ffffffff01010000000000000000002321037c615d761e71d38903609bf4f46847266edc2fb37532047d747ba47eaae5ffe1ac000000000000000001000000000000000000000000000000004b0000483045022100940378576e069aca261a6b26fb38344e4497ca6751bb10905c76bb689f4222b002204833806b014c26fd801727b792b1260003c55710f87c5adbd7a9cb57446dbc9801", "P2SH"],
["CHECKLOCKTIMEVERIFY tests"],
["By-height locks, with argument == 0 and == tx nLockTime"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff64cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ff64cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ff64cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["By-time locks, with argument just beyond tx nLockTime (but within numerical boundaries)"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000065cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "4294967295 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffffffff00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "500000000 NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000ffffffff", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000ffffffff00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Any non-maxint nSequence is fine"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000feffffff0100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["The argument can be calculated rather than created directly by a PUSHDATA"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "499999999 1ADD NOP2 1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000065cd1d", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000065cd1d00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Perhaps even by an ADD producing a 5-byte result that is out of bounds for other opcodes"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1 2147483646 ADD NOP2 1"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000feffffff", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000feffffff00000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["5 byte non-minimally-encoded arguments are valid"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "0x05 0x0000000000 NOP2 1"]],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"010000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000010000000000000000000000000000000000", "P2SH,CHECKLOCKTIMEVERIFY"],
["Valid CHECKLOCKTIMEVERIFY in scriptSig"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "1"]],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000251b1000000000100000000000000000001000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"01000000010001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000010000000000000001000000000000000000000000000000000251b1", "P2SH,CHECKLOCKTIMEVERIFY"],
["Valid CHECKLOCKTIMEVERIFY in redeemScript"],
[[["0000000000000000000000000000000000000000000000000000000000000100", 0, "HASH160 0x14 0x69780eeb90f65bf4cec3c17aeb3d466b88e7be66 EQUAL"]],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000030251b1000000000100000000000000000001000000", "P2SH,CHECKLOCKTIMEVERIFY"],
"0100000001000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000001000000000000000100000000000000000000000000000000030251b1", "P2SH,CHECKLOCKTIMEVERIFY"],
["Make diffs cleaner by leaving a comment here without comma at the end"]
]

View File

@ -377,7 +377,7 @@ testloop:
continue
}
tx, err := dcrutil.NewTxFromBytesLegacy(serializedTx)
tx, err := dcrutil.NewTxFromBytes(serializedTx)
if err != nil {
t.Errorf("bad test (arg 2 not msgtx %v) %d: %v", err,
i, test)
@ -520,7 +520,7 @@ testloop:
continue
}
tx, err := dcrutil.NewTxFromBytesLegacy(serializedTx)
tx, err := dcrutil.NewTxFromBytes(serializedTx)
if err != nil {
t.Errorf("bad test (arg 2 not msgtx %v) %d: %v", err,
i, test)