aboutsummaryrefslogtreecommitdiff
path: root/src/test/data/script_invalid.json
blob: f341a12dfd00857f15749af96a344c9aa02d61c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
[
["", ""],
["", "NOP"],
["NOP", ""],
["NOP","NOP"],

["0x4c01","0x01 NOP", "PUSHDATA1 with not enough bytes"],
["0x4d0200ff","0x01 NOP", "PUSHDATA2 with not enough bytes"],
["0x4e03000000ffff","0x01 NOP", "PUSHDATA4 with not enough bytes"],

["1", "IF 0x50 ENDIF 1", "0x50 is reserved"],
["0x52", "0x5f ADD 0x60 EQUAL", "0x51 through 0x60 push 1 through 16 onto stack"],
["0","NOP"],
["1", "IF VER ELSE 1 ENDIF", "VER non-functional"],
["0", "IF VERIF ELSE 1 ENDIF", "VERIF illegal everywhere"],
["0", "IF VERNOTIF ELSE 1 ENDIF", "VERNOT illegal everywhere"],

["1 IF", "1 ENDIF", "IF/ENDIF can't span scriptSig/scriptPubKey"],
["1 IF 0 ENDIF", "1 ENDIF"],
["1 ELSE 0 ENDIF", "1"],
["0 NOTIF", "123"],

["0", "DUP IF ENDIF"],
["0", "IF 1 ENDIF"],
["0", "DUP IF ELSE ENDIF"],
["0", "IF 1 ELSE ENDIF"],
["0", "NOTIF ELSE 1 ENDIF"],

["0 1", "IF IF 1 ELSE 0 ENDIF ENDIF"],
["0 0", "IF IF 1 ELSE 0 ENDIF ENDIF"],
["1 0", "IF IF 1 ELSE 0 ENDIF ELSE IF 0 ELSE 1 ENDIF ENDIF"],
["0 1", "IF IF 1 ELSE 0 ENDIF ELSE IF 0 ELSE 1 ENDIF ENDIF"],

["0 0", "NOTIF IF 1 ELSE 0 ENDIF ENDIF"],
["0 1", "NOTIF IF 1 ELSE 0 ENDIF ENDIF"],
["1 1", "NOTIF IF 1 ELSE 0 ENDIF ELSE IF 0 ELSE 1 ENDIF ENDIF"],
["0 0", "NOTIF IF 1 ELSE 0 ENDIF ELSE IF 0 ELSE 1 ENDIF ENDIF"],

["1", "RETURN"],
["1", "DUP IF RETURN ENDIF"],

["0", "VERIFY 1"],
["1", "VERIFY"],
["1", "VERIFY 0"],

["1 TOALTSTACK", "FROMALTSTACK 1", "alt stack not shared between sig/pubkey"],

["IFDUP", "DEPTH 0 EQUAL"],
["DROP", "DEPTH 0 EQUAL"],
["DUP", "DEPTH 0 EQUAL"],
["1", "DUP 1 ADD 2 EQUALVERIFY 0 EQUAL"],
["NOP", "NIP"],
["NOP", "1 NIP"],
["NOP", "1 0 NIP"],
["NOP", "OVER 1"],
["1", "OVER"],
["0 1", "OVER DEPTH 3 EQUALVERIFY"],
["19 20 21", "PICK 19 EQUALVERIFY DEPTH 2 EQUAL"],
["NOP", "0 PICK"],
["1", "-1 PICK"],
["19 20 21", "0 PICK 20 EQUALVERIFY DEPTH 3 EQUAL"],
["19 20 21", "1 PICK 21 EQUALVERIFY DEPTH 3 EQUAL"],
["19 20 21", "2 PICK 22 EQUALVERIFY DEPTH 3 EQUAL"],
["NOP", "0 ROLL"],
["1", "-1 ROLL"],
["19 20 21", "0 ROLL 20 EQUALVERIFY DEPTH 2 EQUAL"],
["19 20 21", "1 ROLL 21 EQUALVERIFY DEPTH 2 EQUAL"],
["19 20 21", "2 ROLL 22 EQUALVERIFY DEPTH 2 EQUAL"],
["NOP", "ROT 1"],
["NOP", "1 ROT 1"],
["NOP", "1 2 ROT 1"],
["NOP", "0 1 2 ROT"],
["NOP", "SWAP 1"],
["1", "SWAP 1"],
["0 1", "SWAP 1 EQUALVERIFY"],
["NOP", "TUCK 1"],
["1", "TUCK 1"],
["1 0", "TUCK DEPTH 3 EQUALVERIFY SWAP 2DROP"],
["NOP", "2DUP 1"],
["1", "2DUP 1"],
["NOP", "3DUP 1"],
["1", "3DUP 1"],
["1 2", "3DUP 1"],
["NOP", "2OVER 1"],
["1", "2 3 2OVER 1"],
["NOP", "2SWAP 1"],
["1", "2 3 2SWAP 1"],

["'a' 'b'", "CAT", "CAT disabled"],
["'a' 'b' 0", "IF CAT ELSE 1 ENDIF", "CAT disabled"],
["'abc' 1 1", "SUBSTR", "SUBSTR disabled"],
["'abc' 1 1 0", "IF SUBSTR ELSE 1 ENDIF", "SUBSTR disabled"],
["'abc' 2 0", "IF LEFT ELSE 1 ENDIF", "LEFT disabled"],
["'abc' 2 0", "IF RIGHT ELSE 1 ENDIF", "RIGHT disabled"],

["NOP", "SIZE 1"],

["'abc'", "IF INVERT ELSE 1 ENDIF", "INVERT disabled"],
["1 2 0 IF AND ELSE 1 ENDIF", "NOP", "AND disabled"],
["1 2 0 IF OR ELSE 1 ENDIF", "NOP", "OR disabled"],
["1 2 0 IF XOR ELSE 1 ENDIF", "NOP", "XOR disabled"],
["2 0 IF 2MUL ELSE 1 ENDIF", "NOP", "2MUL disabled"],
["2 0 IF 2DIV ELSE 1 ENDIF", "NOP", "2DIV disabled"],
["2 2 0 IF MUL ELSE 1 ENDIF", "NOP", "MUL disabled"],
["2 2 0 IF DIV ELSE 1 ENDIF", "NOP", "DIV disabled"],
["2 2 0 IF MOD ELSE 1 ENDIF", "NOP", "MOD disabled"],
["2 2 0 IF LSHIFT ELSE 1 ENDIF", "NOP", "LSHIFT disabled"],
["2 2 0 IF RSHIFT ELSE 1 ENDIF", "NOP", "RSHIFT disabled"],

["0 1","EQUAL"],
["1 1 ADD", "0 EQUAL"],
["11 1 ADD 12 SUB", "11 EQUAL"],

["2147483648 0 ADD", "NOP", "arithmetic operands must be in range [-2^31...2^31] "],
["-2147483648 0 ADD", "NOP", "arithmetic operands must be in range [-2^31...2^31] "],
["2147483647 DUP ADD", "4294967294 NUMEQUAL", "NUMEQUAL must be in numeric range"],
["'abcdef' NOT", "0 EQUAL", "NOT is an arithmetic operand"],

["2 DUP MUL", "4 EQUAL", "disabled"],
["2 DUP DIV", "1 EQUAL", "disabled"],
["2 2MUL", "4 EQUAL", "disabled"],
["2 2DIV", "1 EQUAL", "disabled"],
["7 3 MOD", "1 EQUAL", "disabled"],
["2 2 LSHIFT", "8 EQUAL", "disabled"],
["2 1 RSHIFT", "1 EQUAL", "disabled"],

["1","NOP1 NOP2 NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10 2 EQUAL"],
["'NOP_1_to_10' NOP1 NOP2 NOP3 NOP4 NOP5 NOP6 NOP7 NOP8 NOP9 NOP10","'NOP_1_to_11' EQUAL"],

["0x50","1", "opcode 0x50 is reserved"],
["1", "IF 0xba ELSE 1 ENDIF", "opcodes above NOP10 invalid"],
["1", "IF 0xc0 ELSE 1 ENDIF"],
["1", "IF 0xd1 ELSE 1 ENDIF"],
["1", "IF 0xee ELSE 1 ENDIF"],
["1", "IF 0xfd ELSE 1 ENDIF"],
["1", "IF 0xff ELSE 1 ENDIF"],

["NOP", "RIPEMD160"],
["NOP", "SHA1"],
["NOP", "SHA256"],
["NOP", "HASH160"],
["NOP", "HASH256"],


["NOP1","NOP10"]
]