Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
211 changes: 211 additions & 0 deletions src/test/data/script_tests.json
Original file line number Diff line number Diff line change
Expand Up @@ -2527,6 +2527,217 @@
["0x050000000001", "CHECKSEQUENCEVERIFY", "CHECKSEQUENCEVERIFY", "UNSATISFIED_LOCKTIME",
"CSV fails if stack top bit 1 << 31 is not set, and tx version < 2"],

["OP_CAT tests"],
[
[
"aa",
"bb",
"7e4c02aabb87",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x15048ed3a65748549c27b671936987093cf73a4c9cb18522a74fb9553060ca99",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT CATs aa and bb together and checks if EQUAL to aabb"
],
[
[
"eeffeeff",
"aa",
"bbcc",
"7e7e76754c06eeffeeffaabbcc87",
"c1d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x1a671656333e4d55ac202f478bcf50ca883670817849fbdc67b0560dfbd5d8e4",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT CATs aa and bbcc and eeffeff together and checks if EQUAL to eeffeeffaabbcc"
],
[
[
"c24f2c1e363e09a5dd56f0",
"89a0385490a11b6dc6740f3513",
"7e4c18c24f2c1e363e09a5dd56f089a0385490a11b6dc6740f351387",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x25b1769ec1939759dd5a97f5f02186e986280ae2bd0588ad13f28c8ce5044fa6",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT (OP_CAT) tests CAT on different sized random stack elements. Script is CAT PUSHDATA1 0x18 c24f2c1e363e09a5dd56f089a0385490a11b6dc6740f3513 EQUAL"
],
[
[
"51",
"78a11a1260c1101260",
"78a11a1260",
"c1101260",
"7e88",
"c1d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x198bff297a2f14672d6b917c850a2a6ab09791f9d86dd464928df55135321ffa",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT CATs 78a11a1260 and c1101260 together and checks it is EQUALVERIFY to stack element 78a11a1260c1101260"
],
[
[
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93",
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93",
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT Tests CAT on two hash outputs"
],
[
[
"1a1a",
"767e767e767e767e767e767e767e",
"c1d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x4e1fe4e2cbee3ca89db2341d0dbf6d23ee63d4e4b58283faff2ffc65486d4fc7",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT Runs DUP CAT seven times on 1a1a (no error)"
],
[
[
"1a1a1a1a1a1a1a",
"767e767e767e767e767e767e767e",
"c1d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x4e1fe4e2cbee3ca89db2341d0dbf6d23ee63d4e4b58283faff2ffc65486d4fc7",
"P2SH,WITNESS,TAPROOT",
"INVALID_STACK_OPERATION",
"TAPSCRIPT Runs DUP CAT seven times on 1a1a1a1a1a1a1a triggering a stack size error as result is larger than max stack element size"
],
[
[
"1ffe1234567890",
"00",
"aa76a77e767e6baa767e6b6c",
"c1d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x51a40bfbf65d02aa94d16e349abaed15d8acb748c5e5fd355c2e620976cf04c1",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT Tests CAT with other opcodes and the alt stack. Script is HASH256 DUP SHA1 CAT DUP CAT TOALTSTACK HASH256 DUP CAT TOALTSTACK FROMALTSTACK"
],
[
[
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"INVALID_STACK_OPERATION",
"TAPSCRIPT Tests CAT fails on empty stack"
],
[
[
"09ca7009ca7009ca7009ca7009ca70",
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"INVALID_STACK_OPERATION",
"TAPSCRIPT Tests CAT fails on a stack of only one element"
],
[
[
"",
"09ca7009ca7009ca7009ca7009ca70",
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT Tests CAT succeeds when one of the two values to concatenate is of size zero"
],
[
[
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93",
"0102030405060708",
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"OK",
"TAPSCRIPT Tests edge case where concatenated value is exactly max stack element size (520 bytes)"
],
[
[
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b930102030405060708",
"01",
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"INVALID_STACK_OPERATION",
"TAPSCRIPT Tests edge case where concatenated value is one byte larger than max stack element size (520 bytes)"
],
[
[
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b930102030405060708",
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b930102030405060708",
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"INVALID_STACK_OPERATION",
"TAPSCRIPT Tests case where each element to concatenate is exactly max stack element size (520 bytes)"
],
[
[
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b930102030405060708",
"f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93f821125522f9490bcd108cdd0effbb002d45c6e66e6b48aeb51c865743796b93010203040506070809",
"7e",
"c0d6889cb081036e0faefa3a35157ad71086b123b2b144b649798b494c300a961d",
0.00000001
],
"",
"0x51 0x20 0x932a55d505e59555b48961377eb731a1b83efde522f05e493365b9514a43283f",
"P2SH,WITNESS,TAPROOT",
"PUSH_SIZE",
"TAPSCRIPT Tests edge case where one of the elements to concatenate is one byte larger than max stack element size (520 bytes)"
],


["MINIMALIF tests"],
["MINIMALIF is not applied to non-segwit scripts"],
["1", "IF 1 ENDIF", "P2SH,WITNESS,MINIMALIF", "OK"],
Expand Down