@ -527,8 +527,139 @@ nSequences are max.
@@ -527,8 +527,139 @@ nSequences are max.
"P2SH,STRICTENC" ,
"Basic PUSHDATA1 signedness check" ] ,
[ "all PUSHDATA forms are equivalent" ] ,
[ "0x4c 0x4b 0x111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" , "0x4b 0x111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 EQUAL" , "" , "PUSHDATA1 of 75 bytes equals direct push of it" ] ,
[ "0x4d 0xFF00 0x111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" , "0x4c 0xFF 0x111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 EQUAL" , "" , "PUSHDATA2 of 255 bytes equals PUSHDATA1 of it" ] ,
[ "0x00" , "SIZE 0 EQUAL" , "P2SH,STRICTENC" , "Basic OP_0 execution" ] ,
[ "Numeric pushes" ] ,
[ "0x01 0x81" , "0x4f EQUAL" , "" , "OP1_NEGATE pushes 0x81" ] ,
[ "0x01 0x01" , "0x51 EQUAL" , "" , "OP_1 pushes 0x01" ] ,
[ "0x01 0x02" , "0x52 EQUAL" , "" , "OP_2 pushes 0x02" ] ,
[ "0x01 0x03" , "0x53 EQUAL" , "" , "OP_3 pushes 0x03" ] ,
[ "0x01 0x04" , "0x54 EQUAL" , "" , "OP_4 pushes 0x04" ] ,
[ "0x01 0x05" , "0x55 EQUAL" , "" , "OP_5 pushes 0x05" ] ,
[ "0x01 0x06" , "0x56 EQUAL" , "" , "OP_6 pushes 0x06" ] ,
[ "0x01 0x07" , "0x57 EQUAL" , "" , "OP_7 pushes 0x07" ] ,
[ "0x01 0x08" , "0x58 EQUAL" , "" , "OP_8 pushes 0x08" ] ,
[ "0x01 0x09" , "0x59 EQUAL" , "" , "OP_9 pushes 0x09" ] ,
[ "0x01 0x0a" , "0x5a EQUAL" , "" , "OP_10 pushes 0x0a" ] ,
[ "0x01 0x0b" , "0x5b EQUAL" , "" , "OP_11 pushes 0x0b" ] ,
[ "0x01 0x0c" , "0x5c EQUAL" , "" , "OP_12 pushes 0x0c" ] ,
[ "0x01 0x0d" , "0x5d EQUAL" , "" , "OP_13 pushes 0x0d" ] ,
[ "0x01 0x0e" , "0x5e EQUAL" , "" , "OP_14 pushes 0x0e" ] ,
[ "0x01 0x0f" , "0x5f EQUAL" , "" , "OP_15 pushes 0x0f" ] ,
[ "0x01 0x10" , "0x60 EQUAL" , "" , "OP_16 pushes 0x10" ] ,
[ "Equivalency of different numeric encodings" ] ,
[ "0x02 0x8000" , "128 NUMEQUAL" , "" , "0x8000 equals 128" ] ,
[ "0x01 0x00" , "0 NUMEQUAL" , "" , "0x00 numequals 0" ] ,
[ "0x01 0x80" , "0 NUMEQUAL" , "" , "0x80 (negative zero) numequals 0" ] ,
[ "0x02 0x0080" , "0 NUMEQUAL" , "" , "0x0080 numequals 0" ] ,
[ "0x02 0x0500" , "5 NUMEQUAL" , "" , "0x0500 numequals 5" ] ,
[ "0x03 0xff7f80" , "0x02 0xffff NUMEQUAL" , "" , "" ] ,
[ "0x03 0xff7f00" , "0x02 0xff7f NUMEQUAL" , "" , "" ] ,
[ "0x04 0xffff7f80" , "0x03 0xffffff NUMEQUAL" , "" , "" ] ,
[ "0x04 0xffff7f00" , "0x03 0xffff7f NUMEQUAL" , "" , "" ] ,
[ "Unevaluated non-minimal pushes are ignored" ] ,
[ "0 IF 0x4c 0x00 ENDIF 1" , "" , "MINIMALDATA" , "non-minimal PUSHDATA1 ignored" ] ,
[ "0 IF 0x4d 0x0000 ENDIF 1" , "" , "MINIMALDATA" , "non-minimal PUSHDATA2 ignored" ] ,
[ "0 IF 0x4c 0x00000000 ENDIF 1" , "" , "MINIMALDATA" , "non-minimal PUSHDATA4 ignored" ] ,
[ "0 IF 0x01 0x81 ENDIF 1" , "" , "MINIMALDATA" , "1NEGATE equiv" ] ,
[ "0 IF 0x01 0x01 ENDIF 1" , "" , "MINIMALDATA" , "OP_1 equiv" ] ,
[ "0 IF 0x01 0x02 ENDIF 1" , "" , "MINIMALDATA" , "OP_2 equiv" ] ,
[ "0 IF 0x01 0x03 ENDIF 1" , "" , "MINIMALDATA" , "OP_3 equiv" ] ,
[ "0 IF 0x01 0x04 ENDIF 1" , "" , "MINIMALDATA" , "OP_4 equiv" ] ,
[ "0 IF 0x01 0x05 ENDIF 1" , "" , "MINIMALDATA" , "OP_5 equiv" ] ,
[ "0 IF 0x01 0x06 ENDIF 1" , "" , "MINIMALDATA" , "OP_6 equiv" ] ,
[ "0 IF 0x01 0x07 ENDIF 1" , "" , "MINIMALDATA" , "OP_7 equiv" ] ,
[ "0 IF 0x01 0x08 ENDIF 1" , "" , "MINIMALDATA" , "OP_8 equiv" ] ,
[ "0 IF 0x01 0x09 ENDIF 1" , "" , "MINIMALDATA" , "OP_9 equiv" ] ,
[ "0 IF 0x01 0x0a ENDIF 1" , "" , "MINIMALDATA" , "OP_10 equiv" ] ,
[ "0 IF 0x01 0x0b ENDIF 1" , "" , "MINIMALDATA" , "OP_11 equiv" ] ,
[ "0 IF 0x01 0x0c ENDIF 1" , "" , "MINIMALDATA" , "OP_12 equiv" ] ,
[ "0 IF 0x01 0x0d ENDIF 1" , "" , "MINIMALDATA" , "OP_13 equiv" ] ,
[ "0 IF 0x01 0x0e ENDIF 1" , "" , "MINIMALDATA" , "OP_14 equiv" ] ,
[ "0 IF 0x01 0x0f ENDIF 1" , "" , "MINIMALDATA" , "OP_15 equiv" ] ,
[ "0 IF 0x01 0x10 ENDIF 1" , "" , "MINIMALDATA" , "OP_16 equiv" ] ,
[ "Numeric minimaldata rules are only applied when a stack item is numerically evaluated; the push itself is allowed" ] ,
[ "0x01 0x00" , "1" , "MINIMALDATA" ] ,
[ "0x01 0x80" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0180" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0100" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0200" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0300" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0400" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0500" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0600" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0700" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0800" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0900" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0a00" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0b00" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0c00" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0d00" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0e00" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x0f00" , "1" , "MINIMALDATA" ] ,
[ "0x02 0x1000" , "1" , "MINIMALDATA" ] ,
[ "Valid version of the 'Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule' script_invalid test" ] ,
[ "1 0x02 0x0000" , "PICK DROP" , "" ] ,
[ "1 0x02 0x0000" , "ROLL DROP 1" , "" ] ,
[ "0x02 0x0000" , "1ADD DROP 1" , "" ] ,
[ "0x02 0x0000" , "1SUB DROP 1" , "" ] ,
[ "0x02 0x0000" , "NEGATE DROP 1" , "" ] ,
[ "0x02 0x0000" , "ABS DROP 1" , "" ] ,
[ "0x02 0x0000" , "NOT DROP 1" , "" ] ,
[ "0x02 0x0000" , "0NOTEQUAL DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "ADD DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "ADD DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "SUB DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "SUB DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "BOOLAND DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "BOOLAND DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "BOOLOR DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "BOOLOR DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "NUMEQUAL DROP 1" , "" ] ,
[ "0x02 0x0000 1" , "NUMEQUAL DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "NUMEQUALVERIFY 1" , "" ] ,
[ "0x02 0x0000 0" , "NUMEQUALVERIFY 1" , "" ] ,
[ "0 0x02 0x0000" , "NUMNOTEQUAL DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "NUMNOTEQUAL DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "LESSTHAN DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "LESSTHAN DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "GREATERTHAN DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "GREATERTHAN DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "LESSTHANOREQUAL DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "LESSTHANOREQUAL DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "GREATERTHANOREQUAL DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "GREATERTHANOREQUAL DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "MIN DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "MIN DROP 1" , "" ] ,
[ "0 0x02 0x0000" , "MAX DROP 1" , "" ] ,
[ "0x02 0x0000 0" , "MAX DROP 1" , "" ] ,
[ "0x02 0x0000 0 0" , "WITHIN DROP 1" , "" ] ,
[ "0 0x02 0x0000 0" , "WITHIN DROP 1" , "" ] ,
[ "0 0 0x02 0x0000" , "WITHIN DROP 1" , "" ] ,
[ "0 0 0x02 0x0000" , "CHECKMULTISIG DROP 1" , "" ] ,
[ "0 0x02 0x0000 0" , "CHECKMULTISIG DROP 1" , "" ] ,
[ "0 0x02 0x0000 0 1" , "CHECKMULTISIG DROP 1" , "" ] ,
[ "0 0 0x02 0x0000" , "CHECKMULTISIGVERIFY 1" , "" ] ,
[ "0 0x02 0x0000 0" , "CHECKMULTISIGVERIFY 1" , "" ] ,
[
"0x47 0x3044022007415aa37ce7eaa6146001ac8bdefca0ddcba0e37c5dc08c4ac99392124ebac802207d382307fd53f65778b07b9c63b6e196edeadf0be719130c5db21ff1e700d67501" ,
"0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKSIG" ,
@ -638,17 +769,29 @@ nSequences are max.
@@ -638,17 +769,29 @@ nSequences are max.
"P2PK NOT with invalid sig and undefined hashtype but no STRICTENC"
] ,
[
"0x01 0x0 1 0x47 0x3044022046ce33d1771b0127dd4c4cef8fdc3218ebdfa60e3793ed700292d8ebd93fb1f402201029d47a414db83e96e31443c2d8b552f971469c4800f5eff7df2f0648521aed01 0x47 0x304402205c53911ad55b054920043962bbda98cf6e57e2db1cd5611138251490baabaa8702201dc80dfceae6007e7772dc13ff6e7ca66a983cb017fe5d46d30118462d83bcf801 0x47 0x304402201937e44a4ec12364f9d32f9d25e7ecbc68aee9ef90069af80efef4c05f6ace9602206c515101c00c75710b32ff7ff8dbaf7c9a0be6e86ed14a0755b47626604f31fd01" ,
"1 0x47 0x3044022046ce33d1771b0127dd4c4cef8fdc3218ebdfa60e3793ed700292d8ebd93fb1f402201029d47a414db83e96e31443c2d8b552f971469c4800f5eff7df2f0648521aed01 0x47 0x304402205c53911ad55b054920043962bbda98cf6e57e2db1cd5611138251490baabaa8702201dc80dfceae6007e7772dc13ff6e7ca66a983cb017fe5d46d30118462d83bcf801 0x47 0x304402201937e44a4ec12364f9d32f9d25e7ecbc68aee9ef90069af80efef4c05f6ace9602206c515101c00c75710b32ff7ff8dbaf7c9a0be6e86ed14a0755b47626604f31fd01" ,
"3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG" ,
"" ,
"3-of-3 with nonzero dummy but no NULLDUMMY"
] ,
[
"0x01 0x0 1 0x47 0x30440220195038dbc6b2ae1199f86a6777824f7c5149789d85f655a3534a4422b8fba38c02204df9db87d2eb9fe06edc66870d9ac4c9ce673459f9d43cee0347ce4ffb02ee5a01 0x47 0x3044022010a45f30c6fa97a186eba9e6b595ab87d3dfcbf05dcaf1f1b8e3e7bf39515bb802203474e78d3d372e5f5c0f8c257ce8300c4bb8f37c51d4a894e11a91b5817da6ed01 0x47 0x30440220039cffd8e39850f95112662b1220b14b3c0d3d8a2772e13c947bfbf96345a64e02204154bfa77e2c0134d5434353bed82141e5da1cc479954aa288d5f0671480a04b01" ,
"1 0x47 0x30440220195038dbc6b2ae1199f86a6777824f7c5149789d85f655a3534a4422b8fba38c02204df9db87d2eb9fe06edc66870d9ac4c9ce673459f9d43cee0347ce4ffb02ee5a01 0x47 0x3044022010a45f30c6fa97a186eba9e6b595ab87d3dfcbf05dcaf1f1b8e3e7bf39515bb802203474e78d3d372e5f5c0f8c257ce8300c4bb8f37c51d4a894e11a91b5817da6ed01 0x47 0x30440220039cffd8e39850f95112662b1220b14b3c0d3d8a2772e13c947bfbf96345a64e02204154bfa77e2c0134d5434353bed82141e5da1cc479954aa288d5f0671480a04b01" ,
"3 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x03363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640 3 CHECKMULTISIG NOT" ,
"" ,
"3-of-3 NOT with invalid sig and nonzero dummy but no NULLDUMMY"
] ,
[
"0 0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01 DUP" ,
"2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 2 CHECKMULTISIG" ,
"" ,
"2-of-2 with two identical keys and sigs pushed using OP_DUP but no SIGPUSHONLY"
] ,
[
"0 0x47 0x304402203acf75dd59bbef171aeeedae4f1020b824195820db82575c2b323b8899f95de9022067df297d3a5fad049ba0bb81255d0e495643cbcf9abae9e396988618bc0c6dfe01 0x47 0x304402205f8b859230c1cab7d4e8de38ff244d2ebe046b64e8d3f4219b01e483c203490a022071bdc488e31b557f7d9e5c8a8bec90dc92289ca70fa317685f4f140e38b30c4601" ,
"2 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 2 CHECKMULTISIG" ,
"SIGPUSHONLY" ,
"2-of-2 with two identical keys and sigs pushed"
] ,
[ "The End" ]
]