From e2cf7fbd624f12e0cdf57f6fb25eaaa15adc0bd3 Mon Sep 17 00:00:00 2001 From: instagibbs Date: Thu, 13 Oct 2016 14:24:03 -0400 Subject: [PATCH] Tests for new opcodes --- src/test/data/script_tests.json | 156 +++++++++++++++++++++++++++----- 1 file changed, 131 insertions(+), 25 deletions(-) diff --git a/src/test/data/script_tests.json b/src/test/data/script_tests.json index 5c054ed3e8..74476a3478 100644 --- a/src/test/data/script_tests.json +++ b/src/test/data/script_tests.json @@ -708,6 +708,30 @@ [" ", "DEPTH", "P2SH,STRICTENC", "EVAL_FALSE"], [" ", "DEPTH", "P2SH,STRICTENC", "EVAL_FALSE"], +["0x46 0x304402204133026f43aa0726d9dd29fa05559da9edb0d8d2b3726381e35b544383a95436022028fc6523e52dfef11ad20cd67a756145a32ef37183b4765776055d9a22f78ce7", "0x03 0x776174 0x21 0x02bad332769f3de8858cbde38740d02d360bd0b493ad2dc4b40ddee2d976583ba2 CHECKSIGFROMSTACK", ""], + +["0x08 0x0102030405060708", "-1 RIGHT 0x00 EQUAL", ""], + +["0x08 0x0102030405060708", "-1 LEFT 0x00 EQUAL", ""], + +["0x08 0xffffffffffffffff 0x07 0x00000000000000", "AND 0x08 0x0000000000000001 EQUAL", ""], +["0x08 0xffffffffffffffff 0x06 0x020000000000", "AND 0x08 0x0200000000000002 EQUAL", ""], + +["0x08 0x0f0f0f0f0f0f0f0f 0x07 0xf0f0f0f0f0f0f0", "OR 0x08 0xffffffffffffffff EQUAL", ""], +["0x08 0xffffffffffffffff 0x06 0x000000000000", "OR 0x08 0xffffffffffffffff EQUAL", ""], + +["0x08 0x01ffffffffffffff", "-1 7 SUBSTR 0x07 0xffffffffffffff EQUAL", ""], +["0x08 0x01ffffffffffffff", "1 -7 SUBSTR 0x07 0xffffffffffffff EQUAL", ""], +["0x08 0x01ffffffffffffff", "9 1 SUBSTR 0x07 0xffffffffffffff EQUAL", ""], +["0x08 0x01ffffffffffffff", "0 9 SUBSTR 0x07 0xffffffffffffff EQUAL", ""], + +["0x08 0x0000000000000000", "INVERT 0x08 0x0000000000000000 EQUAL", ""], +["", "INVERT 0x08 0x0000000000000000 EQUAL", ""], + +["0x08 0x0000000000000000 0x08 0xffffffffffffffff", "CAT DEPTH 1 EQUALVERIFY 0x10 0xffffffffffffffff0000000000000000 EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffffff", "DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT", "STRICTENC"], +["0x09 0xffffffffffffffffff 0x08 0xffffffffffffffff", "DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT CAT DEPTH 1 EQUALVERIFY 0x4d 0x0802 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], + ["", "", "P2SH,STRICTENC","EVAL_FALSE"], ["", "NOP", "P2SH,STRICTENC","EVAL_FALSE"], ["", "NOP DEPTH", "P2SH,STRICTENC", "EVAL_FALSE"], @@ -718,6 +742,113 @@ ["DEPTH", "", "P2SH,STRICTENC", "EVAL_FALSE"], +["0x08 0x0102030405060708", "-1 7 SUBSTR_LAZY 0x07 0x01020304050607 EQUAL", ""], +["0x08 0x0102030405060708", "1 -7 SUBSTR_LAZY 0x00 EQUAL", ""], +["0x08 0x0102030405060708", "9 1 SUBSTR_LAZY 0x00 EQUAL", ""], +["0x08 0x0102030405060708", "0 9 SUBSTR_LAZY 0x08 0x0102030405060708 EQUAL", ""], + +["", "0x08 0xffffffffffffffff 0 0 DETERMINISTICRANDOM 0 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 2 DETERMINISTICRANDOM 0 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 3 DETERMINISTICRANDOM 0 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 5 DETERMINISTICRANDOM 0x01 0x03 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 7 DETERMINISTICRANDOM 0 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 11 DETERMINISTICRANDOM 0x01 0x02 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 13 DETERMINISTICRANDOM 0x01 0x01 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 17 DETERMINISTICRANDOM 0x01 0x0B EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 19 DETERMINISTICRANDOM 0x01 0x0C EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 23 DETERMINISTICRANDOM 0x01 0x04 EQUAL", ""], +["", "0x08 0xFFFFFFFFFFFFFFF0 0 29 DETERMINISTICRANDOM 0x01 0x0E EQUAL", ""], + +["1", "4 LSHIFT 16 EQUAL", ""], + +["0x08 0x0102030405060708", "0 LSHIFT 0x08 0x0102030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "4 LSHIFT 0x09 0x1020304050607080 EQUAL", ""], +["0x08 0x0102030405060708", "8 LSHIFT 0x09 0x000102030405060708 EQUAL", ""], + +["0x08 0x0102030405060708", "0 RSHIFT 0x08 0x0102030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "8 RSHIFT 0x07 0x02030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "16 RSHIFT 0x06 0x030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "24 RSHIFT 0x05 0x0405060708 EQUAL", ""], +["0x08 0x0102030405060708", "32 RSHIFT 0x04 0x05060708 EQUAL", ""], +["0x08 0x0102030405060708", "40 RSHIFT 0x03 0x060708 EQUAL", ""], +["0x08 0x0102030405060708", "48 RSHIFT 0x02 0x0708 EQUAL", ""], +["0x08 0x0102030405060708", "56 RSHIFT 0x01 0x08 EQUAL", ""], +["0x08 0x0102030405060708", "64 RSHIFT 0x00 EQUAL", ""], + +["0x08 0xffffffffffffffff", "0 RSHIFT 0x08 0xffffffffffffffff EQUAL", ""], +["0x08 0xffffffffffffffff", "4 RSHIFT 0x08 0xffffffffffffff0f EQUAL", ""], +["0x08 0xffffffffffffffff", "8 RSHIFT 0x07 0xffffffffffffff EQUAL", ""], +["0x08 0xffffffffffffffff", "12 RSHIFT 0x07 0xffffffffffff0f EQUAL", ""], +["0x08 0xffffffffffffffff", "16 RSHIFT 0x06 0xffffffffffff EQUAL", ""], +["0x08 0xffffffffffffffff", "20 RSHIFT 0x06 0xffffffffff0f EQUAL", ""], +["0x08 0xffffffffffffffff", "24 RSHIFT 0x05 0xffffffffff EQUAL", ""], +["0x08 0xffffffffffffffff", "28 RSHIFT 0x05 0xffffffff0f EQUAL", ""], +["0x08 0xffffffffffffffff", "32 RSHIFT 0x04 0xffffffff EQUAL", ""], +["0x08 0xffffffffffffffff", "36 RSHIFT 0x04 0xffffff0f EQUAL", ""], +["0x08 0xffffffffffffffff", "40 RSHIFT 0x03 0xffffff EQUAL", ""], +["0x08 0xffffffffffffffff", "44 RSHIFT 0x03 0xffff0f EQUAL", ""], +["0x08 0xffffffffffffffff", "48 RSHIFT 0x02 0xffff EQUAL", ""], +["0x08 0xffffffffffffffff", "52 RSHIFT 0x02 0xff0f EQUAL", ""], +["0x08 0xffffffffffffffff", "56 RSHIFT 0x01 0xff EQUAL", ""], +["0x08 0xffffffffffffffff", "60 RSHIFT 0x01 0x0f EQUAL", ""], +["0x08 0xffffffffffffffff", "64 RSHIFT 0x00 EQUAL", ""], + +["0x08 0xffffffffffffff0f", "4 RSHIFT 0x08 0xffffffffffffff EQUAL", ""], +["0x01 0x0f", "4 RSHIFT 0x00 EQUAL", ""], + +["0x08 0x0102030405060708", "0 RIGHT 0x08 0x0102030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "1 RIGHT 0x07 0x02030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "2 RIGHT 0x06 0x030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "3 RIGHT 0x05 0x0405060708 EQUAL", ""], +["0x08 0x0102030405060708", "4 RIGHT 0x04 0x05060708 EQUAL", ""], +["0x08 0x0102030405060708", "5 RIGHT 0x03 0x060708 EQUAL", ""], +["0x08 0x0102030405060708", "6 RIGHT 0x02 0x0708 EQUAL", ""], +["0x08 0x0102030405060708", "7 RIGHT 0x01 0x08 EQUAL", ""], +["0x08 0x0102030405060708", "8 RIGHT 0x00 EQUAL", ""], + +["0x08 0x0102030405060708", "8 LEFT 0x08 0x0102030405060708 EQUAL", ""], +["0x08 0x0102030405060708", "7 LEFT 0x07 0x01020304050607 EQUAL", ""], +["0x08 0x0102030405060708", "6 LEFT 0x06 0x010203040506 EQUAL", ""], +["0x08 0x0102030405060708", "5 LEFT 0x05 0x0102030405 EQUAL", ""], +["0x08 0x0102030405060708", "4 LEFT 0x04 0x01020304 EQUAL", ""], +["0x08 0x0102030405060708", "3 LEFT 0x03 0x010203 EQUAL", ""], +["0x08 0x0102030405060708", "2 LEFT 0x02 0x0102 EQUAL", ""], +["0x08 0x0102030405060708", "1 LEFT 0x01 0x01 EQUAL", ""], +["0x08 0x0102030405060708", "0 LEFT 0x00 EQUAL", ""], + +["0x08 0xffffffffffffffff 0x08 0x0000000000000001", "AND 0x08 0x0000000000000001 EQUAL", ""], +["0x08 0xffffffffffffffff 0x08 0x0200000000000002", "AND 0x08 0x0200000000000002 EQUAL", ""], + +["0x08 0x0f0f0f0f0f0f0f0f 0x08 0xf0f0f0f0f0f0f0f0", "OR 0x08 0xffffffffffffffff EQUAL", ""], +["0x08 0xffffffffffffffff 0x08 0x0000000000000000", "OR 0x08 0xffffffffffffffff EQUAL", ""], + +["0x08 0x01ffffffffffffff", "0 8 SUBSTR 0x08 0x01ffffffffffffff EQUAL", ""], +["0x08 0x01ffffffffffffff", "1 7 SUBSTR 0x07 0xffffffffffffff EQUAL", ""], + +["0x08 0x0000000000000000", "INVERT 0x08 0xffffffffffffff EQUAL", ""], + +["0x08 0xffffffffffffffff 0x08 0x0000000000000000", "CAT DEPTH 1 EQUALVERIFY 0x10 0xffffffffffffffff0000000000000000 EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP CAT DEPTH 1 EQUALVERIFY 0x10 0xffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP CAT DUP CAT DEPTH 1 EQUALVERIFY 0x20 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP CAT DUP CAT DUP CAT DEPTH 1 EQUALVERIFY 0x40 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP CAT DUP CAT DUP CAT DUP CAT DEPTH 1 EQUALVERIFY 0x4c 0x80 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DEPTH 1 EQUALVERIFY 0x4d 0x0001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], + +["0x08 0xffffffffffffffff", "DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DEPTH 1 EQUALVERIFY 0x4d 0x0002 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP DUP CAT DEPTH 2 EQUALVERIFY 0x10 0xffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP DUP CAT DUP CAT DEPTH 2 EQUALVERIFY 0x20 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP DUP CAT DUP CAT DUP CAT DEPTH 2 EQUALVERIFY 0x40 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP DUP CAT DUP CAT DUP CAT DUP CAT DEPTH 2 EQUALVERIFY 0x4c 0x80 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DEPTH 2 EQUALVERIFY 0x4d 0x0001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DEPTH 2 EQUALVERIFY 0x4d 0x0002 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff", "DUP DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT CAT DEPTH 1 EQUALVERIFY 0x4d 0x0802 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], +["0x08 0xffffffffffffffff 0x08 0xffffffffffffffff", "DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT CAT DEPTH 1 EQUALVERIFY 0x4d 0x0802 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff EQUAL", "STRICTENC"], + +["0 0","XOR 0 EQUAL", "STRICTENC"], +["0x51 0x51","XOR 0x01 0x00 EQUAL", "STRICTENC"], +["0x01 0x00 0x51","XOR 0x51 EQUAL", "STRICTENC"], +["0x14 0x2595860bbba83109178f70419941302a3c2bf6eb 0x14 0x517051988cbe5bbcc1348b835694117138517800","XOR 0x14 0x74e5d79337166ab5d6bbfbc2cfd5215b047a8eeb EQUAL", "STRICTENC"], + ["0x4c01","0x01 NOP", "P2SH,STRICTENC","BAD_OPCODE", "PUSHDATA1 with not enough bytes"], ["0x4d0200ff","0x01 NOP", "P2SH,STRICTENC","BAD_OPCODE", "PUSHDATA2 with not enough bytes"], ["0x4e03000000ffff","0x01 NOP", "P2SH,STRICTENC","BAD_OPCODE", "PUSHDATA4 with not enough bytes"], @@ -817,27 +948,8 @@ ["NOP", "2SWAP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], ["1", "2 3 2SWAP 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], -["'a' 'b'", "CAT", "P2SH,STRICTENC", "DISABLED_OPCODE", "CAT disabled"], -["'a' 'b' 0", "IF CAT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "CAT disabled"], -["'abc' 1 1", "SUBSTR", "P2SH,STRICTENC", "DISABLED_OPCODE", "SUBSTR disabled"], -["'abc' 1 1 0", "IF SUBSTR ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "SUBSTR disabled"], -["'abc' 2 0", "IF LEFT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "LEFT disabled"], -["'abc' 2 0", "IF RIGHT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "RIGHT disabled"], - ["NOP", "SIZE 1", "P2SH,STRICTENC", "INVALID_STACK_OPERATION"], -["'abc'", "IF INVERT ELSE 1 ENDIF", "P2SH,STRICTENC", "DISABLED_OPCODE", "INVERT disabled"], -["1 2 0 IF AND ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "AND disabled"], -["1 2 0 IF OR ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "OR disabled"], -["1 2 0 IF XOR ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "XOR disabled"], -["2 0 IF 2MUL ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "2MUL disabled"], -["2 0 IF 2DIV ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "2DIV disabled"], -["2 2 0 IF MUL ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "MUL disabled"], -["2 2 0 IF DIV ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "DIV disabled"], -["2 2 0 IF MOD ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "MOD disabled"], -["2 2 0 IF LSHIFT ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "LSHIFT disabled"], -["2 2 0 IF RSHIFT ELSE 1 ENDIF", "NOP", "P2SH,STRICTENC", "DISABLED_OPCODE", "RSHIFT disabled"], - ["", "EQUAL NOT", "P2SH,STRICTENC", "INVALID_STACK_OPERATION", "EQUAL must error when there are no stack items"], ["0", "EQUAL NOT", "P2SH,STRICTENC", "INVALID_STACK_OPERATION", "EQUAL must error when there are not 2 stack items"], ["0 1","EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], @@ -854,8 +966,6 @@ ["2 2MUL", "4 EQUAL", "P2SH,STRICTENC", "DISABLED_OPCODE", "disabled"], ["2 2DIV", "1 EQUAL", "P2SH,STRICTENC", "DISABLED_OPCODE", "disabled"], ["7 3 MOD", "1 EQUAL", "P2SH,STRICTENC", "DISABLED_OPCODE", "disabled"], -["2 2 LSHIFT", "8 EQUAL", "P2SH,STRICTENC", "DISABLED_OPCODE", "disabled"], -["2 1 RSHIFT", "1 EQUAL", "P2SH,STRICTENC", "DISABLED_OPCODE", "disabled"], ["1", "NOP1 CHECKLOCKTIMEVERIFY CHECKSEQUENCEVERIFY NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10 2 EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], ["'NOP_1_to_10' NOP1 CHECKLOCKTIMEVERIFY CHECKSEQUENCEVERIFY NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10","'NOP_1_to_11' EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], @@ -864,7 +974,6 @@ ["1", "NOP1", "P2SH,DISCOURAGE_UPGRADABLE_NOPS", "DISCOURAGE_UPGRADABLE_NOPS"], ["1", "CHECKLOCKTIMEVERIFY", "P2SH,DISCOURAGE_UPGRADABLE_NOPS", "DISCOURAGE_UPGRADABLE_NOPS"], ["1", "CHECKSEQUENCEVERIFY", "P2SH,DISCOURAGE_UPGRADABLE_NOPS", "DISCOURAGE_UPGRADABLE_NOPS"], -["1", "NOP4", "P2SH,DISCOURAGE_UPGRADABLE_NOPS", "DISCOURAGE_UPGRADABLE_NOPS"], ["1", "NOP5", "P2SH,DISCOURAGE_UPGRADABLE_NOPS", "DISCOURAGE_UPGRADABLE_NOPS"], ["1", "NOP6", "P2SH,DISCOURAGE_UPGRADABLE_NOPS", "DISCOURAGE_UPGRADABLE_NOPS"], ["1", "NOP7", "P2SH,DISCOURAGE_UPGRADABLE_NOPS", "DISCOURAGE_UPGRADABLE_NOPS"], @@ -884,9 +993,6 @@ ["1", "IF 0xbd ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], ["1", "IF 0xbe ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], ["1", "IF 0xbf ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], -["1", "IF 0xc0 ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], -["1", "IF 0xc1 ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], -["1", "IF 0xc2 ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], ["1", "IF 0xc3 ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], ["1", "IF 0xc4 ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"], ["1", "IF 0xc5 ELSE 1 ENDIF", "P2SH,STRICTENC", "BAD_OPCODE"],