sol-dbg 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +105 -0
  3. package/dist/artifacts/helpers.d.ts +14 -0
  4. package/dist/artifacts/helpers.d.ts.map +1 -0
  5. package/dist/artifacts/helpers.js +111 -0
  6. package/dist/artifacts/helpers.js.map +1 -0
  7. package/dist/artifacts/index.d.ts +3 -0
  8. package/dist/artifacts/index.d.ts.map +1 -0
  9. package/dist/artifacts/index.js +19 -0
  10. package/dist/artifacts/index.js.map +1 -0
  11. package/dist/artifacts/solc.d.ts +44 -0
  12. package/dist/artifacts/solc.d.ts.map +1 -0
  13. package/dist/artifacts/solc.js +3 -0
  14. package/dist/artifacts/solc.js.map +1 -0
  15. package/dist/debug/abi.d.ts +30 -0
  16. package/dist/debug/abi.d.ts.map +1 -0
  17. package/dist/debug/abi.js +183 -0
  18. package/dist/debug/abi.js.map +1 -0
  19. package/dist/debug/artifact_manager.d.ts +68 -0
  20. package/dist/debug/artifact_manager.d.ts.map +1 -0
  21. package/dist/debug/artifact_manager.js +182 -0
  22. package/dist/debug/artifact_manager.js.map +1 -0
  23. package/dist/debug/decoding/calldata.d.ts +6 -0
  24. package/dist/debug/decoding/calldata.d.ts.map +1 -0
  25. package/dist/debug/decoding/calldata.js +228 -0
  26. package/dist/debug/decoding/calldata.js.map +1 -0
  27. package/dist/debug/decoding/general.d.ts +9 -0
  28. package/dist/debug/decoding/general.d.ts.map +1 -0
  29. package/dist/debug/decoding/general.js +114 -0
  30. package/dist/debug/decoding/general.js.map +1 -0
  31. package/dist/debug/decoding/index.d.ts +6 -0
  32. package/dist/debug/decoding/index.d.ts.map +1 -0
  33. package/dist/debug/decoding/index.js +22 -0
  34. package/dist/debug/decoding/index.js.map +1 -0
  35. package/dist/debug/decoding/memory.d.ts +4 -0
  36. package/dist/debug/decoding/memory.d.ts.map +1 -0
  37. package/dist/debug/decoding/memory.js +216 -0
  38. package/dist/debug/decoding/memory.js.map +1 -0
  39. package/dist/debug/decoding/stack.d.ts +9 -0
  40. package/dist/debug/decoding/stack.d.ts.map +1 -0
  41. package/dist/debug/decoding/stack.js +85 -0
  42. package/dist/debug/decoding/stack.js.map +1 -0
  43. package/dist/debug/decoding/storage.d.ts +4 -0
  44. package/dist/debug/decoding/storage.d.ts.map +1 -0
  45. package/dist/debug/decoding/storage.js +333 -0
  46. package/dist/debug/decoding/storage.js.map +1 -0
  47. package/dist/debug/index.d.ts +7 -0
  48. package/dist/debug/index.d.ts.map +1 -0
  49. package/dist/debug/index.js +23 -0
  50. package/dist/debug/index.js.map +1 -0
  51. package/dist/debug/opcodes.d.ts +302 -0
  52. package/dist/debug/opcodes.d.ts.map +1 -0
  53. package/dist/debug/opcodes.js +2909 -0
  54. package/dist/debug/opcodes.js.map +1 -0
  55. package/dist/debug/sol_debugger.d.ts +247 -0
  56. package/dist/debug/sol_debugger.d.ts.map +1 -0
  57. package/dist/debug/sol_debugger.js +443 -0
  58. package/dist/debug/sol_debugger.js.map +1 -0
  59. package/dist/debug/types.d.ts +33 -0
  60. package/dist/debug/types.d.ts.map +1 -0
  61. package/dist/debug/types.js +3 -0
  62. package/dist/debug/types.js.map +1 -0
  63. package/dist/index.d.ts +4 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +20 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/utils/immutable_map.d.ts +13 -0
  68. package/dist/utils/immutable_map.d.ts.map +1 -0
  69. package/dist/utils/immutable_map.js +56 -0
  70. package/dist/utils/immutable_map.js.map +1 -0
  71. package/dist/utils/index.d.ts +4 -0
  72. package/dist/utils/index.d.ts.map +1 -0
  73. package/dist/utils/index.js +20 -0
  74. package/dist/utils/index.js.map +1 -0
  75. package/dist/utils/misc.d.ts +48 -0
  76. package/dist/utils/misc.d.ts.map +1 -0
  77. package/dist/utils/misc.js +221 -0
  78. package/dist/utils/misc.js.map +1 -0
  79. package/dist/utils/srcmap.d.ts +8 -0
  80. package/dist/utils/srcmap.d.ts.map +1 -0
  81. package/dist/utils/srcmap.js +28 -0
  82. package/dist/utils/srcmap.js.map +1 -0
  83. package/package.json +61 -0
@@ -0,0 +1,2909 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createsContract = exports.changesMemory = exports.increasesDepth = exports.changesDepth = exports.getOpInfo = exports.MnemonicToOpcodeMap = exports.OpcodeInfo = exports.OPCODES = exports.InstructionControlFlow = void 0;
4
+ const solc_typed_ast_1 = require("solc-typed-ast");
5
+ var InstructionControlFlow;
6
+ (function (InstructionControlFlow) {
7
+ InstructionControlFlow[InstructionControlFlow["NextInstruction"] = 0] = "NextInstruction";
8
+ InstructionControlFlow[InstructionControlFlow["JumpToTopOfStack"] = 1] = "JumpToTopOfStack";
9
+ InstructionControlFlow[InstructionControlFlow["ConditionalJumpToTopOfStack"] = 2] = "ConditionalJumpToTopOfStack";
10
+ InstructionControlFlow[InstructionControlFlow["ExternalCall"] = 3] = "ExternalCall";
11
+ InstructionControlFlow[InstructionControlFlow["Return"] = 4] = "Return";
12
+ InstructionControlFlow[InstructionControlFlow["Revert"] = 5] = "Revert";
13
+ InstructionControlFlow[InstructionControlFlow["Stop"] = 6] = "Stop";
14
+ InstructionControlFlow[InstructionControlFlow["StopInvalid"] = 7] = "StopInvalid";
15
+ })(InstructionControlFlow = exports.InstructionControlFlow || (exports.InstructionControlFlow = {}));
16
+ var OPCODES;
17
+ (function (OPCODES) {
18
+ OPCODES[OPCODES["STOP"] = 0] = "STOP";
19
+ OPCODES[OPCODES["ADD"] = 1] = "ADD";
20
+ OPCODES[OPCODES["MUL"] = 2] = "MUL";
21
+ OPCODES[OPCODES["SUB"] = 3] = "SUB";
22
+ OPCODES[OPCODES["DIV"] = 4] = "DIV";
23
+ OPCODES[OPCODES["SDIV"] = 5] = "SDIV";
24
+ OPCODES[OPCODES["MOD"] = 6] = "MOD";
25
+ OPCODES[OPCODES["SMOD"] = 7] = "SMOD";
26
+ OPCODES[OPCODES["ADDMOD"] = 8] = "ADDMOD";
27
+ OPCODES[OPCODES["MULMOD"] = 9] = "MULMOD";
28
+ OPCODES[OPCODES["EXP"] = 10] = "EXP";
29
+ OPCODES[OPCODES["SIGNEXTEND"] = 11] = "SIGNEXTEND";
30
+ OPCODES[OPCODES["Invalid_c"] = 12] = "Invalid_c";
31
+ OPCODES[OPCODES["Invalid_d"] = 13] = "Invalid_d";
32
+ OPCODES[OPCODES["Invalid_e"] = 14] = "Invalid_e";
33
+ OPCODES[OPCODES["Invalid_f"] = 15] = "Invalid_f";
34
+ OPCODES[OPCODES["LT"] = 16] = "LT";
35
+ OPCODES[OPCODES["GT"] = 17] = "GT";
36
+ OPCODES[OPCODES["SLT"] = 18] = "SLT";
37
+ OPCODES[OPCODES["SGT"] = 19] = "SGT";
38
+ OPCODES[OPCODES["EQ"] = 20] = "EQ";
39
+ OPCODES[OPCODES["ISZERO"] = 21] = "ISZERO";
40
+ OPCODES[OPCODES["AND"] = 22] = "AND";
41
+ OPCODES[OPCODES["OR"] = 23] = "OR";
42
+ OPCODES[OPCODES["XOR"] = 24] = "XOR";
43
+ OPCODES[OPCODES["NOT"] = 25] = "NOT";
44
+ OPCODES[OPCODES["BYTE"] = 26] = "BYTE";
45
+ OPCODES[OPCODES["SHL"] = 27] = "SHL";
46
+ OPCODES[OPCODES["SHR"] = 28] = "SHR";
47
+ OPCODES[OPCODES["SAR"] = 29] = "SAR";
48
+ OPCODES[OPCODES["Invalid_1e"] = 30] = "Invalid_1e";
49
+ OPCODES[OPCODES["Invalid_1f"] = 31] = "Invalid_1f";
50
+ OPCODES[OPCODES["SHA3"] = 32] = "SHA3";
51
+ OPCODES[OPCODES["Invalid_21"] = 33] = "Invalid_21";
52
+ OPCODES[OPCODES["Invalid_22"] = 34] = "Invalid_22";
53
+ OPCODES[OPCODES["Invalid_23"] = 35] = "Invalid_23";
54
+ OPCODES[OPCODES["Invalid_24"] = 36] = "Invalid_24";
55
+ OPCODES[OPCODES["Invalid_25"] = 37] = "Invalid_25";
56
+ OPCODES[OPCODES["Invalid_26"] = 38] = "Invalid_26";
57
+ OPCODES[OPCODES["Invalid_27"] = 39] = "Invalid_27";
58
+ OPCODES[OPCODES["Invalid_28"] = 40] = "Invalid_28";
59
+ OPCODES[OPCODES["Invalid_29"] = 41] = "Invalid_29";
60
+ OPCODES[OPCODES["Invalid_2a"] = 42] = "Invalid_2a";
61
+ OPCODES[OPCODES["Invalid_2b"] = 43] = "Invalid_2b";
62
+ OPCODES[OPCODES["Invalid_2c"] = 44] = "Invalid_2c";
63
+ OPCODES[OPCODES["Invalid_2d"] = 45] = "Invalid_2d";
64
+ OPCODES[OPCODES["Invalid_2e"] = 46] = "Invalid_2e";
65
+ OPCODES[OPCODES["Invalid_2f"] = 47] = "Invalid_2f";
66
+ OPCODES[OPCODES["ADDRESS"] = 48] = "ADDRESS";
67
+ OPCODES[OPCODES["BALANCE"] = 49] = "BALANCE";
68
+ OPCODES[OPCODES["ORIGIN"] = 50] = "ORIGIN";
69
+ OPCODES[OPCODES["CALLER"] = 51] = "CALLER";
70
+ OPCODES[OPCODES["CALLVALUE"] = 52] = "CALLVALUE";
71
+ OPCODES[OPCODES["CALLDATALOAD"] = 53] = "CALLDATALOAD";
72
+ OPCODES[OPCODES["CALLDATASIZE"] = 54] = "CALLDATASIZE";
73
+ OPCODES[OPCODES["CALLDATACOPY"] = 55] = "CALLDATACOPY";
74
+ OPCODES[OPCODES["CODESIZE"] = 56] = "CODESIZE";
75
+ OPCODES[OPCODES["CODECOPY"] = 57] = "CODECOPY";
76
+ OPCODES[OPCODES["GASPRICE"] = 58] = "GASPRICE";
77
+ OPCODES[OPCODES["EXTCODESIZE"] = 59] = "EXTCODESIZE";
78
+ OPCODES[OPCODES["EXTCODECOPY"] = 60] = "EXTCODECOPY";
79
+ OPCODES[OPCODES["RETURNDATASIZE"] = 61] = "RETURNDATASIZE";
80
+ OPCODES[OPCODES["RETURNDATACOPY"] = 62] = "RETURNDATACOPY";
81
+ OPCODES[OPCODES["EXTCODEHASH"] = 63] = "EXTCODEHASH";
82
+ OPCODES[OPCODES["BLOCKHASH"] = 64] = "BLOCKHASH";
83
+ OPCODES[OPCODES["COINBASE"] = 65] = "COINBASE";
84
+ OPCODES[OPCODES["TIMESTAMP"] = 66] = "TIMESTAMP";
85
+ OPCODES[OPCODES["NUMBER"] = 67] = "NUMBER";
86
+ OPCODES[OPCODES["DIFFICULTY"] = 68] = "DIFFICULTY";
87
+ OPCODES[OPCODES["GASLIMIT"] = 69] = "GASLIMIT";
88
+ OPCODES[OPCODES["CHAINID"] = 70] = "CHAINID";
89
+ OPCODES[OPCODES["SELFBALANCE"] = 71] = "SELFBALANCE";
90
+ OPCODES[OPCODES["BASEFEE"] = 72] = "BASEFEE";
91
+ OPCODES[OPCODES["Invalid_49"] = 73] = "Invalid_49";
92
+ OPCODES[OPCODES["Invalid_4a"] = 74] = "Invalid_4a";
93
+ OPCODES[OPCODES["Invalid_4b"] = 75] = "Invalid_4b";
94
+ OPCODES[OPCODES["Invalid_4c"] = 76] = "Invalid_4c";
95
+ OPCODES[OPCODES["Invalid_4d"] = 77] = "Invalid_4d";
96
+ OPCODES[OPCODES["Invalid_4e"] = 78] = "Invalid_4e";
97
+ OPCODES[OPCODES["Invalid_4f"] = 79] = "Invalid_4f";
98
+ OPCODES[OPCODES["POP"] = 80] = "POP";
99
+ OPCODES[OPCODES["MLOAD"] = 81] = "MLOAD";
100
+ OPCODES[OPCODES["MSTORE"] = 82] = "MSTORE";
101
+ OPCODES[OPCODES["MSTORE8"] = 83] = "MSTORE8";
102
+ OPCODES[OPCODES["SLOAD"] = 84] = "SLOAD";
103
+ OPCODES[OPCODES["SSTORE"] = 85] = "SSTORE";
104
+ OPCODES[OPCODES["JUMP"] = 86] = "JUMP";
105
+ OPCODES[OPCODES["JUMPI"] = 87] = "JUMPI";
106
+ OPCODES[OPCODES["PC"] = 88] = "PC";
107
+ OPCODES[OPCODES["MSIZE"] = 89] = "MSIZE";
108
+ OPCODES[OPCODES["GAS"] = 90] = "GAS";
109
+ OPCODES[OPCODES["JUMPDEST"] = 91] = "JUMPDEST";
110
+ OPCODES[OPCODES["Invalid_5c"] = 92] = "Invalid_5c";
111
+ OPCODES[OPCODES["Invalid_5d"] = 93] = "Invalid_5d";
112
+ OPCODES[OPCODES["Invalid_5e"] = 94] = "Invalid_5e";
113
+ OPCODES[OPCODES["Invalid_5f"] = 95] = "Invalid_5f";
114
+ OPCODES[OPCODES["PUSH1"] = 96] = "PUSH1";
115
+ OPCODES[OPCODES["PUSH2"] = 97] = "PUSH2";
116
+ OPCODES[OPCODES["PUSH3"] = 98] = "PUSH3";
117
+ OPCODES[OPCODES["PUSH4"] = 99] = "PUSH4";
118
+ OPCODES[OPCODES["PUSH5"] = 100] = "PUSH5";
119
+ OPCODES[OPCODES["PUSH6"] = 101] = "PUSH6";
120
+ OPCODES[OPCODES["PUSH7"] = 102] = "PUSH7";
121
+ OPCODES[OPCODES["PUSH8"] = 103] = "PUSH8";
122
+ OPCODES[OPCODES["PUSH9"] = 104] = "PUSH9";
123
+ OPCODES[OPCODES["PUSH10"] = 105] = "PUSH10";
124
+ OPCODES[OPCODES["PUSH11"] = 106] = "PUSH11";
125
+ OPCODES[OPCODES["PUSH12"] = 107] = "PUSH12";
126
+ OPCODES[OPCODES["PUSH13"] = 108] = "PUSH13";
127
+ OPCODES[OPCODES["PUSH14"] = 109] = "PUSH14";
128
+ OPCODES[OPCODES["PUSH15"] = 110] = "PUSH15";
129
+ OPCODES[OPCODES["PUSH16"] = 111] = "PUSH16";
130
+ OPCODES[OPCODES["PUSH17"] = 112] = "PUSH17";
131
+ OPCODES[OPCODES["PUSH18"] = 113] = "PUSH18";
132
+ OPCODES[OPCODES["PUSH19"] = 114] = "PUSH19";
133
+ OPCODES[OPCODES["PUSH20"] = 115] = "PUSH20";
134
+ OPCODES[OPCODES["PUSH21"] = 116] = "PUSH21";
135
+ OPCODES[OPCODES["PUSH22"] = 117] = "PUSH22";
136
+ OPCODES[OPCODES["PUSH23"] = 118] = "PUSH23";
137
+ OPCODES[OPCODES["PUSH24"] = 119] = "PUSH24";
138
+ OPCODES[OPCODES["PUSH25"] = 120] = "PUSH25";
139
+ OPCODES[OPCODES["PUSH26"] = 121] = "PUSH26";
140
+ OPCODES[OPCODES["PUSH27"] = 122] = "PUSH27";
141
+ OPCODES[OPCODES["PUSH28"] = 123] = "PUSH28";
142
+ OPCODES[OPCODES["PUSH29"] = 124] = "PUSH29";
143
+ OPCODES[OPCODES["PUSH30"] = 125] = "PUSH30";
144
+ OPCODES[OPCODES["PUSH31"] = 126] = "PUSH31";
145
+ OPCODES[OPCODES["PUSH32"] = 127] = "PUSH32";
146
+ OPCODES[OPCODES["DUP1"] = 128] = "DUP1";
147
+ OPCODES[OPCODES["DUP2"] = 129] = "DUP2";
148
+ OPCODES[OPCODES["DUP3"] = 130] = "DUP3";
149
+ OPCODES[OPCODES["DUP4"] = 131] = "DUP4";
150
+ OPCODES[OPCODES["DUP5"] = 132] = "DUP5";
151
+ OPCODES[OPCODES["DUP6"] = 133] = "DUP6";
152
+ OPCODES[OPCODES["DUP7"] = 134] = "DUP7";
153
+ OPCODES[OPCODES["DUP8"] = 135] = "DUP8";
154
+ OPCODES[OPCODES["DUP9"] = 136] = "DUP9";
155
+ OPCODES[OPCODES["DUP10"] = 137] = "DUP10";
156
+ OPCODES[OPCODES["DUP11"] = 138] = "DUP11";
157
+ OPCODES[OPCODES["DUP12"] = 139] = "DUP12";
158
+ OPCODES[OPCODES["DUP13"] = 140] = "DUP13";
159
+ OPCODES[OPCODES["DUP14"] = 141] = "DUP14";
160
+ OPCODES[OPCODES["DUP15"] = 142] = "DUP15";
161
+ OPCODES[OPCODES["DUP16"] = 143] = "DUP16";
162
+ OPCODES[OPCODES["SWAP1"] = 144] = "SWAP1";
163
+ OPCODES[OPCODES["SWAP2"] = 145] = "SWAP2";
164
+ OPCODES[OPCODES["SWAP3"] = 146] = "SWAP3";
165
+ OPCODES[OPCODES["SWAP4"] = 147] = "SWAP4";
166
+ OPCODES[OPCODES["SWAP5"] = 148] = "SWAP5";
167
+ OPCODES[OPCODES["SWAP6"] = 149] = "SWAP6";
168
+ OPCODES[OPCODES["SWAP7"] = 150] = "SWAP7";
169
+ OPCODES[OPCODES["SWAP8"] = 151] = "SWAP8";
170
+ OPCODES[OPCODES["SWAP9"] = 152] = "SWAP9";
171
+ OPCODES[OPCODES["SWAP10"] = 153] = "SWAP10";
172
+ OPCODES[OPCODES["SWAP11"] = 154] = "SWAP11";
173
+ OPCODES[OPCODES["SWAP12"] = 155] = "SWAP12";
174
+ OPCODES[OPCODES["SWAP13"] = 156] = "SWAP13";
175
+ OPCODES[OPCODES["SWAP14"] = 157] = "SWAP14";
176
+ OPCODES[OPCODES["SWAP15"] = 158] = "SWAP15";
177
+ OPCODES[OPCODES["SWAP16"] = 159] = "SWAP16";
178
+ OPCODES[OPCODES["LOG0"] = 160] = "LOG0";
179
+ OPCODES[OPCODES["LOG1"] = 161] = "LOG1";
180
+ OPCODES[OPCODES["LOG2"] = 162] = "LOG2";
181
+ OPCODES[OPCODES["LOG3"] = 163] = "LOG3";
182
+ OPCODES[OPCODES["LOG4"] = 164] = "LOG4";
183
+ OPCODES[OPCODES["Invalid_a5"] = 165] = "Invalid_a5";
184
+ OPCODES[OPCODES["Invalid_a6"] = 166] = "Invalid_a6";
185
+ OPCODES[OPCODES["Invalid_a7"] = 167] = "Invalid_a7";
186
+ OPCODES[OPCODES["Invalid_a8"] = 168] = "Invalid_a8";
187
+ OPCODES[OPCODES["Invalid_a9"] = 169] = "Invalid_a9";
188
+ OPCODES[OPCODES["Invalid_aa"] = 170] = "Invalid_aa";
189
+ OPCODES[OPCODES["Invalid_ab"] = 171] = "Invalid_ab";
190
+ OPCODES[OPCODES["Invalid_ac"] = 172] = "Invalid_ac";
191
+ OPCODES[OPCODES["Invalid_ad"] = 173] = "Invalid_ad";
192
+ OPCODES[OPCODES["Invalid_ae"] = 174] = "Invalid_ae";
193
+ OPCODES[OPCODES["Invalid_af"] = 175] = "Invalid_af";
194
+ OPCODES[OPCODES["Invalid_b0"] = 176] = "Invalid_b0";
195
+ OPCODES[OPCODES["Invalid_b1"] = 177] = "Invalid_b1";
196
+ OPCODES[OPCODES["Invalid_b2"] = 178] = "Invalid_b2";
197
+ OPCODES[OPCODES["Invalid_b3"] = 179] = "Invalid_b3";
198
+ OPCODES[OPCODES["Invalid_b4"] = 180] = "Invalid_b4";
199
+ OPCODES[OPCODES["Invalid_b5"] = 181] = "Invalid_b5";
200
+ OPCODES[OPCODES["Invalid_b6"] = 182] = "Invalid_b6";
201
+ OPCODES[OPCODES["Invalid_b7"] = 183] = "Invalid_b7";
202
+ OPCODES[OPCODES["Invalid_b8"] = 184] = "Invalid_b8";
203
+ OPCODES[OPCODES["Invalid_b9"] = 185] = "Invalid_b9";
204
+ OPCODES[OPCODES["Invalid_ba"] = 186] = "Invalid_ba";
205
+ OPCODES[OPCODES["Invalid_bb"] = 187] = "Invalid_bb";
206
+ OPCODES[OPCODES["Invalid_bc"] = 188] = "Invalid_bc";
207
+ OPCODES[OPCODES["Invalid_bd"] = 189] = "Invalid_bd";
208
+ OPCODES[OPCODES["Invalid_be"] = 190] = "Invalid_be";
209
+ OPCODES[OPCODES["Invalid_bf"] = 191] = "Invalid_bf";
210
+ OPCODES[OPCODES["Invalid_c0"] = 192] = "Invalid_c0";
211
+ OPCODES[OPCODES["Invalid_c1"] = 193] = "Invalid_c1";
212
+ OPCODES[OPCODES["Invalid_c2"] = 194] = "Invalid_c2";
213
+ OPCODES[OPCODES["Invalid_c3"] = 195] = "Invalid_c3";
214
+ OPCODES[OPCODES["Invalid_c4"] = 196] = "Invalid_c4";
215
+ OPCODES[OPCODES["Invalid_c5"] = 197] = "Invalid_c5";
216
+ OPCODES[OPCODES["Invalid_c6"] = 198] = "Invalid_c6";
217
+ OPCODES[OPCODES["Invalid_c7"] = 199] = "Invalid_c7";
218
+ OPCODES[OPCODES["Invalid_c8"] = 200] = "Invalid_c8";
219
+ OPCODES[OPCODES["Invalid_c9"] = 201] = "Invalid_c9";
220
+ OPCODES[OPCODES["Invalid_ca"] = 202] = "Invalid_ca";
221
+ OPCODES[OPCODES["Invalid_cb"] = 203] = "Invalid_cb";
222
+ OPCODES[OPCODES["Invalid_cc"] = 204] = "Invalid_cc";
223
+ OPCODES[OPCODES["Invalid_cd"] = 205] = "Invalid_cd";
224
+ OPCODES[OPCODES["Invalid_ce"] = 206] = "Invalid_ce";
225
+ OPCODES[OPCODES["Invalid_cf"] = 207] = "Invalid_cf";
226
+ OPCODES[OPCODES["Invalid_d0"] = 208] = "Invalid_d0";
227
+ OPCODES[OPCODES["Invalid_d1"] = 209] = "Invalid_d1";
228
+ OPCODES[OPCODES["Invalid_d2"] = 210] = "Invalid_d2";
229
+ OPCODES[OPCODES["Invalid_d3"] = 211] = "Invalid_d3";
230
+ OPCODES[OPCODES["Invalid_d4"] = 212] = "Invalid_d4";
231
+ OPCODES[OPCODES["Invalid_d5"] = 213] = "Invalid_d5";
232
+ OPCODES[OPCODES["Invalid_d6"] = 214] = "Invalid_d6";
233
+ OPCODES[OPCODES["Invalid_d7"] = 215] = "Invalid_d7";
234
+ OPCODES[OPCODES["Invalid_d8"] = 216] = "Invalid_d8";
235
+ OPCODES[OPCODES["Invalid_d9"] = 217] = "Invalid_d9";
236
+ OPCODES[OPCODES["Invalid_da"] = 218] = "Invalid_da";
237
+ OPCODES[OPCODES["Invalid_db"] = 219] = "Invalid_db";
238
+ OPCODES[OPCODES["Invalid_dc"] = 220] = "Invalid_dc";
239
+ OPCODES[OPCODES["Invalid_dd"] = 221] = "Invalid_dd";
240
+ OPCODES[OPCODES["Invalid_de"] = 222] = "Invalid_de";
241
+ OPCODES[OPCODES["Invalid_df"] = 223] = "Invalid_df";
242
+ OPCODES[OPCODES["Invalid_e0"] = 224] = "Invalid_e0";
243
+ OPCODES[OPCODES["Invalid_e1"] = 225] = "Invalid_e1";
244
+ OPCODES[OPCODES["Invalid_e2"] = 226] = "Invalid_e2";
245
+ OPCODES[OPCODES["Invalid_e3"] = 227] = "Invalid_e3";
246
+ OPCODES[OPCODES["Invalid_e4"] = 228] = "Invalid_e4";
247
+ OPCODES[OPCODES["Invalid_e5"] = 229] = "Invalid_e5";
248
+ OPCODES[OPCODES["Invalid_e6"] = 230] = "Invalid_e6";
249
+ OPCODES[OPCODES["Invalid_e7"] = 231] = "Invalid_e7";
250
+ OPCODES[OPCODES["Invalid_e8"] = 232] = "Invalid_e8";
251
+ OPCODES[OPCODES["Invalid_e9"] = 233] = "Invalid_e9";
252
+ OPCODES[OPCODES["Invalid_ea"] = 234] = "Invalid_ea";
253
+ OPCODES[OPCODES["Invalid_eb"] = 235] = "Invalid_eb";
254
+ OPCODES[OPCODES["Invalid_ec"] = 236] = "Invalid_ec";
255
+ OPCODES[OPCODES["Invalid_ed"] = 237] = "Invalid_ed";
256
+ OPCODES[OPCODES["Invalid_ee"] = 238] = "Invalid_ee";
257
+ OPCODES[OPCODES["Invalid_ef"] = 239] = "Invalid_ef";
258
+ OPCODES[OPCODES["CREATE"] = 240] = "CREATE";
259
+ OPCODES[OPCODES["CALL"] = 241] = "CALL";
260
+ OPCODES[OPCODES["CALLCODE"] = 242] = "CALLCODE";
261
+ OPCODES[OPCODES["RETURN"] = 243] = "RETURN";
262
+ OPCODES[OPCODES["DELEGATECALL"] = 244] = "DELEGATECALL";
263
+ OPCODES[OPCODES["CREATE2"] = 245] = "CREATE2";
264
+ OPCODES[OPCODES["Invalid_f6"] = 246] = "Invalid_f6";
265
+ OPCODES[OPCODES["Invalid_f7"] = 247] = "Invalid_f7";
266
+ OPCODES[OPCODES["Invalid_f8"] = 248] = "Invalid_f8";
267
+ OPCODES[OPCODES["Invalid_f9"] = 249] = "Invalid_f9";
268
+ OPCODES[OPCODES["STATICCALL"] = 250] = "STATICCALL";
269
+ OPCODES[OPCODES["Invalid_fb"] = 251] = "Invalid_fb";
270
+ OPCODES[OPCODES["Invalid_fc"] = 252] = "Invalid_fc";
271
+ OPCODES[OPCODES["REVERT"] = 253] = "REVERT";
272
+ OPCODES[OPCODES["Invalid_fe"] = 254] = "Invalid_fe";
273
+ OPCODES[OPCODES["SELFDESTRUCT"] = 255] = "SELFDESTRUCT";
274
+ })(OPCODES = exports.OPCODES || (exports.OPCODES = {}));
275
+ exports.OpcodeInfo = [
276
+ {
277
+ opcode: 0x00,
278
+ mnemonic: "STOP",
279
+ length: 1,
280
+ immediates: [],
281
+ nPop: 0,
282
+ nPush: 0,
283
+ valid: true,
284
+ controlFlow: InstructionControlFlow.Stop
285
+ },
286
+ {
287
+ opcode: 0x01,
288
+ mnemonic: "ADD",
289
+ length: 1,
290
+ immediates: [],
291
+ nPop: 2,
292
+ nPush: 1,
293
+ valid: true,
294
+ controlFlow: InstructionControlFlow.NextInstruction
295
+ },
296
+ {
297
+ opcode: 0x02,
298
+ mnemonic: "MUL",
299
+ length: 1,
300
+ immediates: [],
301
+ nPop: 2,
302
+ nPush: 1,
303
+ valid: true,
304
+ controlFlow: InstructionControlFlow.NextInstruction
305
+ },
306
+ {
307
+ opcode: 0x03,
308
+ mnemonic: "SUB",
309
+ length: 1,
310
+ immediates: [],
311
+ nPop: 2,
312
+ nPush: 1,
313
+ valid: true,
314
+ controlFlow: InstructionControlFlow.NextInstruction
315
+ },
316
+ {
317
+ opcode: 0x04,
318
+ mnemonic: "DIV",
319
+ length: 1,
320
+ immediates: [],
321
+ nPop: 2,
322
+ nPush: 1,
323
+ valid: true,
324
+ controlFlow: InstructionControlFlow.NextInstruction
325
+ },
326
+ {
327
+ opcode: 0x05,
328
+ mnemonic: "SDIV",
329
+ length: 1,
330
+ immediates: [],
331
+ nPop: 2,
332
+ nPush: 1,
333
+ valid: true,
334
+ controlFlow: InstructionControlFlow.NextInstruction
335
+ },
336
+ {
337
+ opcode: 0x06,
338
+ mnemonic: "MOD",
339
+ length: 1,
340
+ immediates: [],
341
+ nPop: 2,
342
+ nPush: 1,
343
+ valid: true,
344
+ controlFlow: InstructionControlFlow.NextInstruction
345
+ },
346
+ {
347
+ opcode: 0x07,
348
+ mnemonic: "SMOD",
349
+ length: 1,
350
+ immediates: [],
351
+ nPop: 2,
352
+ nPush: 1,
353
+ valid: true,
354
+ controlFlow: InstructionControlFlow.NextInstruction
355
+ },
356
+ {
357
+ opcode: 0x08,
358
+ mnemonic: "ADDMOD",
359
+ length: 1,
360
+ immediates: [],
361
+ nPop: 3,
362
+ nPush: 1,
363
+ valid: true,
364
+ controlFlow: InstructionControlFlow.NextInstruction
365
+ },
366
+ {
367
+ opcode: 0x09,
368
+ mnemonic: "MULMOD",
369
+ length: 1,
370
+ immediates: [],
371
+ nPop: 3,
372
+ nPush: 1,
373
+ valid: true,
374
+ controlFlow: InstructionControlFlow.NextInstruction
375
+ },
376
+ {
377
+ opcode: 0x0a,
378
+ mnemonic: "EXP",
379
+ length: 1,
380
+ immediates: [],
381
+ nPop: 2,
382
+ nPush: 1,
383
+ valid: true,
384
+ controlFlow: InstructionControlFlow.NextInstruction
385
+ },
386
+ {
387
+ opcode: 0x0b,
388
+ mnemonic: "SIGNEXTEND",
389
+ length: 1,
390
+ immediates: [],
391
+ nPop: 2,
392
+ nPush: 1,
393
+ valid: true,
394
+ controlFlow: InstructionControlFlow.NextInstruction
395
+ },
396
+ {
397
+ opcode: 0x0c,
398
+ mnemonic: "Invalid",
399
+ length: 1,
400
+ immediates: [],
401
+ nPop: 0,
402
+ nPush: 0,
403
+ valid: false,
404
+ controlFlow: InstructionControlFlow.StopInvalid
405
+ },
406
+ {
407
+ opcode: 0x0d,
408
+ mnemonic: "Invalid",
409
+ length: 1,
410
+ immediates: [],
411
+ nPop: 0,
412
+ nPush: 0,
413
+ valid: false,
414
+ controlFlow: InstructionControlFlow.StopInvalid
415
+ },
416
+ {
417
+ opcode: 0x0e,
418
+ mnemonic: "Invalid",
419
+ length: 1,
420
+ immediates: [],
421
+ nPop: 0,
422
+ nPush: 0,
423
+ valid: false,
424
+ controlFlow: InstructionControlFlow.StopInvalid
425
+ },
426
+ {
427
+ opcode: 0x0f,
428
+ mnemonic: "Invalid",
429
+ length: 1,
430
+ immediates: [],
431
+ nPop: 0,
432
+ nPush: 0,
433
+ valid: false,
434
+ controlFlow: InstructionControlFlow.StopInvalid
435
+ },
436
+ {
437
+ opcode: 0x10,
438
+ mnemonic: "LT",
439
+ length: 1,
440
+ immediates: [],
441
+ nPop: 2,
442
+ nPush: 1,
443
+ valid: true,
444
+ controlFlow: InstructionControlFlow.NextInstruction
445
+ },
446
+ {
447
+ opcode: 0x11,
448
+ mnemonic: "GT",
449
+ length: 1,
450
+ immediates: [],
451
+ nPop: 2,
452
+ nPush: 1,
453
+ valid: true,
454
+ controlFlow: InstructionControlFlow.NextInstruction
455
+ },
456
+ {
457
+ opcode: 0x12,
458
+ mnemonic: "SLT",
459
+ length: 1,
460
+ immediates: [],
461
+ nPop: 2,
462
+ nPush: 1,
463
+ valid: true,
464
+ controlFlow: InstructionControlFlow.NextInstruction
465
+ },
466
+ {
467
+ opcode: 0x13,
468
+ mnemonic: "SGT",
469
+ length: 1,
470
+ immediates: [],
471
+ nPop: 2,
472
+ nPush: 1,
473
+ valid: true,
474
+ controlFlow: InstructionControlFlow.NextInstruction
475
+ },
476
+ {
477
+ opcode: 0x14,
478
+ mnemonic: "EQ",
479
+ length: 1,
480
+ immediates: [],
481
+ nPop: 2,
482
+ nPush: 1,
483
+ valid: true,
484
+ controlFlow: InstructionControlFlow.NextInstruction
485
+ },
486
+ {
487
+ opcode: 0x15,
488
+ mnemonic: "ISZERO",
489
+ length: 1,
490
+ immediates: [],
491
+ nPop: 1,
492
+ nPush: 1,
493
+ valid: true,
494
+ controlFlow: InstructionControlFlow.NextInstruction
495
+ },
496
+ {
497
+ opcode: 0x16,
498
+ mnemonic: "AND",
499
+ length: 1,
500
+ immediates: [],
501
+ nPop: 2,
502
+ nPush: 1,
503
+ valid: true,
504
+ controlFlow: InstructionControlFlow.NextInstruction
505
+ },
506
+ {
507
+ opcode: 0x17,
508
+ mnemonic: "OR",
509
+ length: 1,
510
+ immediates: [],
511
+ nPop: 2,
512
+ nPush: 1,
513
+ valid: true,
514
+ controlFlow: InstructionControlFlow.NextInstruction
515
+ },
516
+ {
517
+ opcode: 0x18,
518
+ mnemonic: "XOR",
519
+ length: 1,
520
+ immediates: [],
521
+ nPop: 2,
522
+ nPush: 1,
523
+ valid: true,
524
+ controlFlow: InstructionControlFlow.NextInstruction
525
+ },
526
+ {
527
+ opcode: 0x19,
528
+ mnemonic: "NOT",
529
+ length: 1,
530
+ immediates: [],
531
+ nPop: 1,
532
+ nPush: 1,
533
+ valid: true,
534
+ controlFlow: InstructionControlFlow.NextInstruction
535
+ },
536
+ {
537
+ opcode: 0x1a,
538
+ mnemonic: "BYTE",
539
+ length: 1,
540
+ immediates: [],
541
+ nPop: 2,
542
+ nPush: 1,
543
+ valid: true,
544
+ controlFlow: InstructionControlFlow.NextInstruction
545
+ },
546
+ {
547
+ opcode: 0x1b,
548
+ mnemonic: "SHL",
549
+ length: 1,
550
+ immediates: [],
551
+ nPop: 2,
552
+ nPush: 1,
553
+ valid: true,
554
+ controlFlow: InstructionControlFlow.NextInstruction
555
+ },
556
+ {
557
+ opcode: 0x1c,
558
+ mnemonic: "SHR",
559
+ length: 1,
560
+ immediates: [],
561
+ nPop: 2,
562
+ nPush: 1,
563
+ valid: true,
564
+ controlFlow: InstructionControlFlow.NextInstruction
565
+ },
566
+ {
567
+ opcode: 0x1d,
568
+ mnemonic: "SAR",
569
+ length: 1,
570
+ immediates: [],
571
+ nPop: 2,
572
+ nPush: 1,
573
+ valid: true,
574
+ controlFlow: InstructionControlFlow.NextInstruction
575
+ },
576
+ {
577
+ opcode: 0x1e,
578
+ mnemonic: "Invalid",
579
+ length: 1,
580
+ immediates: [],
581
+ nPop: 0,
582
+ nPush: 0,
583
+ valid: false,
584
+ controlFlow: InstructionControlFlow.StopInvalid
585
+ },
586
+ {
587
+ opcode: 0x1f,
588
+ mnemonic: "Invalid",
589
+ length: 1,
590
+ immediates: [],
591
+ nPop: 0,
592
+ nPush: 0,
593
+ valid: false,
594
+ controlFlow: InstructionControlFlow.StopInvalid
595
+ },
596
+ {
597
+ opcode: 0x20,
598
+ mnemonic: "SHA3",
599
+ length: 1,
600
+ immediates: [],
601
+ nPop: 2,
602
+ nPush: 1,
603
+ valid: true,
604
+ controlFlow: InstructionControlFlow.NextInstruction
605
+ },
606
+ {
607
+ opcode: 0x21,
608
+ mnemonic: "Invalid",
609
+ length: 1,
610
+ immediates: [],
611
+ nPop: 0,
612
+ nPush: 0,
613
+ valid: false,
614
+ controlFlow: InstructionControlFlow.StopInvalid
615
+ },
616
+ {
617
+ opcode: 0x22,
618
+ mnemonic: "Invalid",
619
+ length: 1,
620
+ immediates: [],
621
+ nPop: 0,
622
+ nPush: 0,
623
+ valid: false,
624
+ controlFlow: InstructionControlFlow.StopInvalid
625
+ },
626
+ {
627
+ opcode: 0x23,
628
+ mnemonic: "Invalid",
629
+ length: 1,
630
+ immediates: [],
631
+ nPop: 0,
632
+ nPush: 0,
633
+ valid: false,
634
+ controlFlow: InstructionControlFlow.StopInvalid
635
+ },
636
+ {
637
+ opcode: 0x24,
638
+ mnemonic: "Invalid",
639
+ length: 1,
640
+ immediates: [],
641
+ nPop: 0,
642
+ nPush: 0,
643
+ valid: false,
644
+ controlFlow: InstructionControlFlow.StopInvalid
645
+ },
646
+ {
647
+ opcode: 0x25,
648
+ mnemonic: "Invalid",
649
+ length: 1,
650
+ immediates: [],
651
+ nPop: 0,
652
+ nPush: 0,
653
+ valid: false,
654
+ controlFlow: InstructionControlFlow.StopInvalid
655
+ },
656
+ {
657
+ opcode: 0x26,
658
+ mnemonic: "Invalid",
659
+ length: 1,
660
+ immediates: [],
661
+ nPop: 0,
662
+ nPush: 0,
663
+ valid: false,
664
+ controlFlow: InstructionControlFlow.StopInvalid
665
+ },
666
+ {
667
+ opcode: 0x27,
668
+ mnemonic: "Invalid",
669
+ length: 1,
670
+ immediates: [],
671
+ nPop: 0,
672
+ nPush: 0,
673
+ valid: false,
674
+ controlFlow: InstructionControlFlow.StopInvalid
675
+ },
676
+ {
677
+ opcode: 0x28,
678
+ mnemonic: "Invalid",
679
+ length: 1,
680
+ immediates: [],
681
+ nPop: 0,
682
+ nPush: 0,
683
+ valid: false,
684
+ controlFlow: InstructionControlFlow.StopInvalid
685
+ },
686
+ {
687
+ opcode: 0x29,
688
+ mnemonic: "Invalid",
689
+ length: 1,
690
+ immediates: [],
691
+ nPop: 0,
692
+ nPush: 0,
693
+ valid: false,
694
+ controlFlow: InstructionControlFlow.StopInvalid
695
+ },
696
+ {
697
+ opcode: 0x2a,
698
+ mnemonic: "Invalid",
699
+ length: 1,
700
+ immediates: [],
701
+ nPop: 0,
702
+ nPush: 0,
703
+ valid: false,
704
+ controlFlow: InstructionControlFlow.StopInvalid
705
+ },
706
+ {
707
+ opcode: 0x2b,
708
+ mnemonic: "Invalid",
709
+ length: 1,
710
+ immediates: [],
711
+ nPop: 0,
712
+ nPush: 0,
713
+ valid: false,
714
+ controlFlow: InstructionControlFlow.StopInvalid
715
+ },
716
+ {
717
+ opcode: 0x2c,
718
+ mnemonic: "Invalid",
719
+ length: 1,
720
+ immediates: [],
721
+ nPop: 0,
722
+ nPush: 0,
723
+ valid: false,
724
+ controlFlow: InstructionControlFlow.StopInvalid
725
+ },
726
+ {
727
+ opcode: 0x2d,
728
+ mnemonic: "Invalid",
729
+ length: 1,
730
+ immediates: [],
731
+ nPop: 0,
732
+ nPush: 0,
733
+ valid: false,
734
+ controlFlow: InstructionControlFlow.StopInvalid
735
+ },
736
+ {
737
+ opcode: 0x2e,
738
+ mnemonic: "Invalid",
739
+ length: 1,
740
+ immediates: [],
741
+ nPop: 0,
742
+ nPush: 0,
743
+ valid: false,
744
+ controlFlow: InstructionControlFlow.StopInvalid
745
+ },
746
+ {
747
+ opcode: 0x2f,
748
+ mnemonic: "Invalid",
749
+ length: 1,
750
+ immediates: [],
751
+ nPop: 0,
752
+ nPush: 0,
753
+ valid: false,
754
+ controlFlow: InstructionControlFlow.StopInvalid
755
+ },
756
+ {
757
+ opcode: 0x30,
758
+ mnemonic: "ADDRESS",
759
+ length: 1,
760
+ immediates: [],
761
+ nPop: 0,
762
+ nPush: 1,
763
+ valid: true,
764
+ controlFlow: InstructionControlFlow.NextInstruction
765
+ },
766
+ {
767
+ opcode: 0x31,
768
+ mnemonic: "BALANCE",
769
+ length: 1,
770
+ immediates: [],
771
+ nPop: 1,
772
+ nPush: 1,
773
+ valid: true,
774
+ controlFlow: InstructionControlFlow.NextInstruction
775
+ },
776
+ {
777
+ opcode: 0x32,
778
+ mnemonic: "ORIGIN",
779
+ length: 1,
780
+ immediates: [],
781
+ nPop: 0,
782
+ nPush: 1,
783
+ valid: true,
784
+ controlFlow: InstructionControlFlow.NextInstruction
785
+ },
786
+ {
787
+ opcode: 0x33,
788
+ mnemonic: "CALLER",
789
+ length: 1,
790
+ immediates: [],
791
+ nPop: 0,
792
+ nPush: 1,
793
+ valid: true,
794
+ controlFlow: InstructionControlFlow.NextInstruction
795
+ },
796
+ {
797
+ opcode: 0x34,
798
+ mnemonic: "CALLVALUE",
799
+ length: 1,
800
+ immediates: [],
801
+ nPop: 0,
802
+ nPush: 1,
803
+ valid: true,
804
+ controlFlow: InstructionControlFlow.NextInstruction
805
+ },
806
+ {
807
+ opcode: 0x35,
808
+ mnemonic: "CALLDATALOAD",
809
+ length: 1,
810
+ immediates: [],
811
+ nPop: 1,
812
+ nPush: 1,
813
+ valid: true,
814
+ controlFlow: InstructionControlFlow.NextInstruction
815
+ },
816
+ {
817
+ opcode: 0x36,
818
+ mnemonic: "CALLDATASIZE",
819
+ length: 1,
820
+ immediates: [],
821
+ nPop: 0,
822
+ nPush: 1,
823
+ valid: true,
824
+ controlFlow: InstructionControlFlow.NextInstruction
825
+ },
826
+ {
827
+ opcode: 0x37,
828
+ mnemonic: "CALLDATACOPY",
829
+ length: 1,
830
+ immediates: [],
831
+ nPop: 3,
832
+ nPush: 0,
833
+ valid: true,
834
+ controlFlow: InstructionControlFlow.NextInstruction
835
+ },
836
+ {
837
+ opcode: 0x38,
838
+ mnemonic: "CODESIZE",
839
+ length: 1,
840
+ immediates: [],
841
+ nPop: 0,
842
+ nPush: 1,
843
+ valid: true,
844
+ controlFlow: InstructionControlFlow.NextInstruction
845
+ },
846
+ {
847
+ opcode: 0x39,
848
+ mnemonic: "CODECOPY",
849
+ length: 1,
850
+ immediates: [],
851
+ nPop: 3,
852
+ nPush: 0,
853
+ valid: true,
854
+ controlFlow: InstructionControlFlow.NextInstruction
855
+ },
856
+ {
857
+ opcode: 0x3a,
858
+ mnemonic: "GASPRICE",
859
+ length: 1,
860
+ immediates: [],
861
+ nPop: 0,
862
+ nPush: 1,
863
+ valid: true,
864
+ controlFlow: InstructionControlFlow.NextInstruction
865
+ },
866
+ {
867
+ opcode: 0x3b,
868
+ mnemonic: "EXTCODESIZE",
869
+ length: 1,
870
+ immediates: [],
871
+ nPop: 1,
872
+ nPush: 1,
873
+ valid: true,
874
+ controlFlow: InstructionControlFlow.NextInstruction
875
+ },
876
+ {
877
+ opcode: 0x3c,
878
+ mnemonic: "EXTCODECOPY",
879
+ length: 1,
880
+ immediates: [],
881
+ nPop: 4,
882
+ nPush: 0,
883
+ valid: true,
884
+ controlFlow: InstructionControlFlow.NextInstruction
885
+ },
886
+ {
887
+ opcode: 0x3d,
888
+ mnemonic: "RETURNDATASIZE",
889
+ length: 1,
890
+ immediates: [],
891
+ nPop: 0,
892
+ nPush: 1,
893
+ valid: true,
894
+ controlFlow: InstructionControlFlow.NextInstruction
895
+ },
896
+ {
897
+ opcode: 0x3e,
898
+ mnemonic: "RETURNDATACOPY",
899
+ length: 1,
900
+ immediates: [],
901
+ nPop: 3,
902
+ nPush: 0,
903
+ valid: true,
904
+ controlFlow: InstructionControlFlow.NextInstruction
905
+ },
906
+ {
907
+ opcode: 0x3f,
908
+ mnemonic: "EXTCODEHASH",
909
+ length: 1,
910
+ immediates: [],
911
+ nPop: 1,
912
+ nPush: 1,
913
+ valid: true,
914
+ controlFlow: InstructionControlFlow.NextInstruction
915
+ },
916
+ {
917
+ opcode: 0x40,
918
+ mnemonic: "BLOCKHASH",
919
+ length: 1,
920
+ immediates: [],
921
+ nPop: 1,
922
+ nPush: 1,
923
+ valid: true,
924
+ controlFlow: InstructionControlFlow.NextInstruction
925
+ },
926
+ {
927
+ opcode: 0x41,
928
+ mnemonic: "COINBASE",
929
+ length: 1,
930
+ immediates: [],
931
+ nPop: 0,
932
+ nPush: 1,
933
+ valid: true,
934
+ controlFlow: InstructionControlFlow.NextInstruction
935
+ },
936
+ {
937
+ opcode: 0x42,
938
+ mnemonic: "TIMESTAMP",
939
+ length: 1,
940
+ immediates: [],
941
+ nPop: 0,
942
+ nPush: 1,
943
+ valid: true,
944
+ controlFlow: InstructionControlFlow.NextInstruction
945
+ },
946
+ {
947
+ opcode: 0x43,
948
+ mnemonic: "NUMBER",
949
+ length: 1,
950
+ immediates: [],
951
+ nPop: 0,
952
+ nPush: 1,
953
+ valid: true,
954
+ controlFlow: InstructionControlFlow.NextInstruction
955
+ },
956
+ {
957
+ opcode: 0x44,
958
+ mnemonic: "DIFFICULTY",
959
+ length: 1,
960
+ immediates: [],
961
+ nPop: 0,
962
+ nPush: 1,
963
+ valid: true,
964
+ controlFlow: InstructionControlFlow.NextInstruction
965
+ },
966
+ {
967
+ opcode: 0x45,
968
+ mnemonic: "GASLIMIT",
969
+ length: 1,
970
+ immediates: [],
971
+ nPop: 0,
972
+ nPush: 1,
973
+ valid: true,
974
+ controlFlow: InstructionControlFlow.NextInstruction
975
+ },
976
+ {
977
+ opcode: 0x46,
978
+ mnemonic: "CHAINID",
979
+ length: 1,
980
+ immediates: [],
981
+ nPop: 0,
982
+ nPush: 1,
983
+ valid: true,
984
+ controlFlow: InstructionControlFlow.NextInstruction
985
+ },
986
+ {
987
+ opcode: 0x47,
988
+ mnemonic: "SELFBALANCE",
989
+ length: 1,
990
+ immediates: [],
991
+ nPop: 0,
992
+ nPush: 1,
993
+ valid: true,
994
+ controlFlow: InstructionControlFlow.NextInstruction
995
+ },
996
+ {
997
+ opcode: 0x48,
998
+ mnemonic: "BASEFEE",
999
+ length: 1,
1000
+ immediates: [],
1001
+ nPop: 0,
1002
+ nPush: 1,
1003
+ valid: true,
1004
+ controlFlow: InstructionControlFlow.NextInstruction
1005
+ },
1006
+ {
1007
+ opcode: 0x49,
1008
+ mnemonic: "Invalid",
1009
+ length: 1,
1010
+ immediates: [],
1011
+ nPop: 0,
1012
+ nPush: 0,
1013
+ valid: false,
1014
+ controlFlow: InstructionControlFlow.StopInvalid
1015
+ },
1016
+ {
1017
+ opcode: 0x4a,
1018
+ mnemonic: "Invalid",
1019
+ length: 1,
1020
+ immediates: [],
1021
+ nPop: 0,
1022
+ nPush: 0,
1023
+ valid: false,
1024
+ controlFlow: InstructionControlFlow.StopInvalid
1025
+ },
1026
+ {
1027
+ opcode: 0x4b,
1028
+ mnemonic: "Invalid",
1029
+ length: 1,
1030
+ immediates: [],
1031
+ nPop: 0,
1032
+ nPush: 0,
1033
+ valid: false,
1034
+ controlFlow: InstructionControlFlow.StopInvalid
1035
+ },
1036
+ {
1037
+ opcode: 0x4c,
1038
+ mnemonic: "Invalid",
1039
+ length: 1,
1040
+ immediates: [],
1041
+ nPop: 0,
1042
+ nPush: 0,
1043
+ valid: false,
1044
+ controlFlow: InstructionControlFlow.StopInvalid
1045
+ },
1046
+ {
1047
+ opcode: 0x4d,
1048
+ mnemonic: "Invalid",
1049
+ length: 1,
1050
+ immediates: [],
1051
+ nPop: 0,
1052
+ nPush: 0,
1053
+ valid: false,
1054
+ controlFlow: InstructionControlFlow.StopInvalid
1055
+ },
1056
+ {
1057
+ opcode: 0x4e,
1058
+ mnemonic: "Invalid",
1059
+ length: 1,
1060
+ immediates: [],
1061
+ nPop: 0,
1062
+ nPush: 0,
1063
+ valid: false,
1064
+ controlFlow: InstructionControlFlow.StopInvalid
1065
+ },
1066
+ {
1067
+ opcode: 0x4f,
1068
+ mnemonic: "Invalid",
1069
+ length: 1,
1070
+ immediates: [],
1071
+ nPop: 0,
1072
+ nPush: 0,
1073
+ valid: false,
1074
+ controlFlow: InstructionControlFlow.StopInvalid
1075
+ },
1076
+ {
1077
+ opcode: 0x50,
1078
+ mnemonic: "POP",
1079
+ length: 1,
1080
+ immediates: [],
1081
+ nPop: 1,
1082
+ nPush: 0,
1083
+ valid: true,
1084
+ controlFlow: InstructionControlFlow.NextInstruction
1085
+ },
1086
+ {
1087
+ opcode: 0x51,
1088
+ mnemonic: "MLOAD",
1089
+ length: 1,
1090
+ immediates: [],
1091
+ nPop: 1,
1092
+ nPush: 1,
1093
+ valid: true,
1094
+ controlFlow: InstructionControlFlow.NextInstruction
1095
+ },
1096
+ {
1097
+ opcode: 0x52,
1098
+ mnemonic: "MSTORE",
1099
+ length: 1,
1100
+ immediates: [],
1101
+ nPop: 2,
1102
+ nPush: 0,
1103
+ valid: true,
1104
+ controlFlow: InstructionControlFlow.NextInstruction
1105
+ },
1106
+ {
1107
+ opcode: 0x53,
1108
+ mnemonic: "MSTORE8",
1109
+ length: 1,
1110
+ immediates: [],
1111
+ nPop: 2,
1112
+ nPush: 0,
1113
+ valid: true,
1114
+ controlFlow: InstructionControlFlow.NextInstruction
1115
+ },
1116
+ {
1117
+ opcode: 0x54,
1118
+ mnemonic: "SLOAD",
1119
+ length: 1,
1120
+ immediates: [],
1121
+ nPop: 1,
1122
+ nPush: 1,
1123
+ valid: true,
1124
+ controlFlow: InstructionControlFlow.NextInstruction
1125
+ },
1126
+ {
1127
+ opcode: 0x55,
1128
+ mnemonic: "SSTORE",
1129
+ length: 1,
1130
+ immediates: [],
1131
+ nPop: 2,
1132
+ nPush: 0,
1133
+ valid: true,
1134
+ controlFlow: InstructionControlFlow.NextInstruction
1135
+ },
1136
+ {
1137
+ opcode: 0x56,
1138
+ mnemonic: "JUMP",
1139
+ length: 1,
1140
+ immediates: [],
1141
+ nPop: 1,
1142
+ nPush: 0,
1143
+ valid: true,
1144
+ controlFlow: InstructionControlFlow.JumpToTopOfStack
1145
+ },
1146
+ {
1147
+ opcode: 0x57,
1148
+ mnemonic: "JUMPI",
1149
+ length: 1,
1150
+ immediates: [],
1151
+ nPop: 2,
1152
+ nPush: 0,
1153
+ valid: true,
1154
+ controlFlow: InstructionControlFlow.ConditionalJumpToTopOfStack
1155
+ },
1156
+ {
1157
+ opcode: 0x58,
1158
+ mnemonic: "PC",
1159
+ length: 1,
1160
+ immediates: [],
1161
+ nPop: 0,
1162
+ nPush: 1,
1163
+ valid: true,
1164
+ controlFlow: InstructionControlFlow.NextInstruction
1165
+ },
1166
+ {
1167
+ opcode: 0x59,
1168
+ mnemonic: "MSIZE",
1169
+ length: 1,
1170
+ immediates: [],
1171
+ nPop: 0,
1172
+ nPush: 1,
1173
+ valid: true,
1174
+ controlFlow: InstructionControlFlow.NextInstruction
1175
+ },
1176
+ {
1177
+ opcode: 0x5a,
1178
+ mnemonic: "GAS",
1179
+ length: 1,
1180
+ immediates: [],
1181
+ nPop: 0,
1182
+ nPush: 1,
1183
+ valid: true,
1184
+ controlFlow: InstructionControlFlow.NextInstruction
1185
+ },
1186
+ {
1187
+ opcode: 0x5b,
1188
+ mnemonic: "JUMPDEST",
1189
+ length: 1,
1190
+ immediates: [],
1191
+ nPop: 0,
1192
+ nPush: 0,
1193
+ valid: true,
1194
+ controlFlow: InstructionControlFlow.NextInstruction
1195
+ },
1196
+ {
1197
+ opcode: 0x5c,
1198
+ mnemonic: "Invalid",
1199
+ length: 1,
1200
+ immediates: [],
1201
+ nPop: 0,
1202
+ nPush: 0,
1203
+ valid: false,
1204
+ controlFlow: InstructionControlFlow.StopInvalid
1205
+ },
1206
+ {
1207
+ opcode: 0x5d,
1208
+ mnemonic: "Invalid",
1209
+ length: 1,
1210
+ immediates: [],
1211
+ nPop: 0,
1212
+ nPush: 0,
1213
+ valid: false,
1214
+ controlFlow: InstructionControlFlow.StopInvalid
1215
+ },
1216
+ {
1217
+ opcode: 0x5e,
1218
+ mnemonic: "Invalid",
1219
+ length: 1,
1220
+ immediates: [],
1221
+ nPop: 0,
1222
+ nPush: 0,
1223
+ valid: false,
1224
+ controlFlow: InstructionControlFlow.StopInvalid
1225
+ },
1226
+ {
1227
+ opcode: 0x5f,
1228
+ mnemonic: "Invalid",
1229
+ length: 1,
1230
+ immediates: [],
1231
+ nPop: 0,
1232
+ nPush: 0,
1233
+ valid: false,
1234
+ controlFlow: InstructionControlFlow.StopInvalid
1235
+ },
1236
+ {
1237
+ opcode: 0x60,
1238
+ mnemonic: "PUSH1",
1239
+ length: 2,
1240
+ immediates: [{ name: "arg", length: 1 }],
1241
+ nPop: 0,
1242
+ nPush: 1,
1243
+ valid: true,
1244
+ controlFlow: InstructionControlFlow.NextInstruction
1245
+ },
1246
+ {
1247
+ opcode: 0x61,
1248
+ mnemonic: "PUSH2",
1249
+ length: 3,
1250
+ immediates: [{ name: "arg", length: 2 }],
1251
+ nPop: 0,
1252
+ nPush: 1,
1253
+ valid: true,
1254
+ controlFlow: InstructionControlFlow.NextInstruction
1255
+ },
1256
+ {
1257
+ opcode: 0x62,
1258
+ mnemonic: "PUSH3",
1259
+ length: 4,
1260
+ immediates: [{ name: "arg", length: 3 }],
1261
+ nPop: 0,
1262
+ nPush: 1,
1263
+ valid: true,
1264
+ controlFlow: InstructionControlFlow.NextInstruction
1265
+ },
1266
+ {
1267
+ opcode: 0x63,
1268
+ mnemonic: "PUSH4",
1269
+ length: 5,
1270
+ immediates: [{ name: "arg", length: 4 }],
1271
+ nPop: 0,
1272
+ nPush: 1,
1273
+ valid: true,
1274
+ controlFlow: InstructionControlFlow.NextInstruction
1275
+ },
1276
+ {
1277
+ opcode: 0x64,
1278
+ mnemonic: "PUSH5",
1279
+ length: 6,
1280
+ immediates: [{ name: "arg", length: 5 }],
1281
+ nPop: 0,
1282
+ nPush: 1,
1283
+ valid: true,
1284
+ controlFlow: InstructionControlFlow.NextInstruction
1285
+ },
1286
+ {
1287
+ opcode: 0x65,
1288
+ mnemonic: "PUSH6",
1289
+ length: 7,
1290
+ immediates: [{ name: "arg", length: 6 }],
1291
+ nPop: 0,
1292
+ nPush: 1,
1293
+ valid: true,
1294
+ controlFlow: InstructionControlFlow.NextInstruction
1295
+ },
1296
+ {
1297
+ opcode: 0x66,
1298
+ mnemonic: "PUSH7",
1299
+ length: 8,
1300
+ immediates: [{ name: "arg", length: 7 }],
1301
+ nPop: 0,
1302
+ nPush: 1,
1303
+ valid: true,
1304
+ controlFlow: InstructionControlFlow.NextInstruction
1305
+ },
1306
+ {
1307
+ opcode: 0x67,
1308
+ mnemonic: "PUSH8",
1309
+ length: 9,
1310
+ immediates: [{ name: "arg", length: 8 }],
1311
+ nPop: 0,
1312
+ nPush: 1,
1313
+ valid: true,
1314
+ controlFlow: InstructionControlFlow.NextInstruction
1315
+ },
1316
+ {
1317
+ opcode: 0x68,
1318
+ mnemonic: "PUSH9",
1319
+ length: 10,
1320
+ immediates: [{ name: "arg", length: 9 }],
1321
+ nPop: 0,
1322
+ nPush: 1,
1323
+ valid: true,
1324
+ controlFlow: InstructionControlFlow.NextInstruction
1325
+ },
1326
+ {
1327
+ opcode: 0x69,
1328
+ mnemonic: "PUSH10",
1329
+ length: 11,
1330
+ immediates: [{ name: "arg", length: 10 }],
1331
+ nPop: 0,
1332
+ nPush: 1,
1333
+ valid: true,
1334
+ controlFlow: InstructionControlFlow.NextInstruction
1335
+ },
1336
+ {
1337
+ opcode: 0x6a,
1338
+ mnemonic: "PUSH11",
1339
+ length: 12,
1340
+ immediates: [{ name: "arg", length: 11 }],
1341
+ nPop: 0,
1342
+ nPush: 1,
1343
+ valid: true,
1344
+ controlFlow: InstructionControlFlow.NextInstruction
1345
+ },
1346
+ {
1347
+ opcode: 0x6b,
1348
+ mnemonic: "PUSH12",
1349
+ length: 13,
1350
+ immediates: [{ name: "arg", length: 12 }],
1351
+ nPop: 0,
1352
+ nPush: 1,
1353
+ valid: true,
1354
+ controlFlow: InstructionControlFlow.NextInstruction
1355
+ },
1356
+ {
1357
+ opcode: 0x6c,
1358
+ mnemonic: "PUSH13",
1359
+ length: 14,
1360
+ immediates: [{ name: "arg", length: 13 }],
1361
+ nPop: 0,
1362
+ nPush: 1,
1363
+ valid: true,
1364
+ controlFlow: InstructionControlFlow.NextInstruction
1365
+ },
1366
+ {
1367
+ opcode: 0x6d,
1368
+ mnemonic: "PUSH14",
1369
+ length: 15,
1370
+ immediates: [{ name: "arg", length: 14 }],
1371
+ nPop: 0,
1372
+ nPush: 1,
1373
+ valid: true,
1374
+ controlFlow: InstructionControlFlow.NextInstruction
1375
+ },
1376
+ {
1377
+ opcode: 0x6e,
1378
+ mnemonic: "PUSH15",
1379
+ length: 16,
1380
+ immediates: [{ name: "arg", length: 15 }],
1381
+ nPop: 0,
1382
+ nPush: 1,
1383
+ valid: true,
1384
+ controlFlow: InstructionControlFlow.NextInstruction
1385
+ },
1386
+ {
1387
+ opcode: 0x6f,
1388
+ mnemonic: "PUSH16",
1389
+ length: 17,
1390
+ immediates: [{ name: "arg", length: 16 }],
1391
+ nPop: 0,
1392
+ nPush: 1,
1393
+ valid: true,
1394
+ controlFlow: InstructionControlFlow.NextInstruction
1395
+ },
1396
+ {
1397
+ opcode: 0x70,
1398
+ mnemonic: "PUSH17",
1399
+ length: 18,
1400
+ immediates: [{ name: "arg", length: 17 }],
1401
+ nPop: 0,
1402
+ nPush: 1,
1403
+ valid: true,
1404
+ controlFlow: InstructionControlFlow.NextInstruction
1405
+ },
1406
+ {
1407
+ opcode: 0x71,
1408
+ mnemonic: "PUSH18",
1409
+ length: 19,
1410
+ immediates: [{ name: "arg", length: 18 }],
1411
+ nPop: 0,
1412
+ nPush: 1,
1413
+ valid: true,
1414
+ controlFlow: InstructionControlFlow.NextInstruction
1415
+ },
1416
+ {
1417
+ opcode: 0x72,
1418
+ mnemonic: "PUSH19",
1419
+ length: 20,
1420
+ immediates: [{ name: "arg", length: 19 }],
1421
+ nPop: 0,
1422
+ nPush: 1,
1423
+ valid: true,
1424
+ controlFlow: InstructionControlFlow.NextInstruction
1425
+ },
1426
+ {
1427
+ opcode: 0x73,
1428
+ mnemonic: "PUSH20",
1429
+ length: 21,
1430
+ immediates: [{ name: "arg", length: 20 }],
1431
+ nPop: 0,
1432
+ nPush: 1,
1433
+ valid: true,
1434
+ controlFlow: InstructionControlFlow.NextInstruction
1435
+ },
1436
+ {
1437
+ opcode: 0x74,
1438
+ mnemonic: "PUSH21",
1439
+ length: 22,
1440
+ immediates: [{ name: "arg", length: 21 }],
1441
+ nPop: 0,
1442
+ nPush: 1,
1443
+ valid: true,
1444
+ controlFlow: InstructionControlFlow.NextInstruction
1445
+ },
1446
+ {
1447
+ opcode: 0x75,
1448
+ mnemonic: "PUSH22",
1449
+ length: 23,
1450
+ immediates: [{ name: "arg", length: 22 }],
1451
+ nPop: 0,
1452
+ nPush: 1,
1453
+ valid: true,
1454
+ controlFlow: InstructionControlFlow.NextInstruction
1455
+ },
1456
+ {
1457
+ opcode: 0x76,
1458
+ mnemonic: "PUSH23",
1459
+ length: 24,
1460
+ immediates: [{ name: "arg", length: 23 }],
1461
+ nPop: 0,
1462
+ nPush: 1,
1463
+ valid: true,
1464
+ controlFlow: InstructionControlFlow.NextInstruction
1465
+ },
1466
+ {
1467
+ opcode: 0x77,
1468
+ mnemonic: "PUSH24",
1469
+ length: 25,
1470
+ immediates: [{ name: "arg", length: 24 }],
1471
+ nPop: 0,
1472
+ nPush: 1,
1473
+ valid: true,
1474
+ controlFlow: InstructionControlFlow.NextInstruction
1475
+ },
1476
+ {
1477
+ opcode: 0x78,
1478
+ mnemonic: "PUSH25",
1479
+ length: 26,
1480
+ immediates: [{ name: "arg", length: 25 }],
1481
+ nPop: 0,
1482
+ nPush: 1,
1483
+ valid: true,
1484
+ controlFlow: InstructionControlFlow.NextInstruction
1485
+ },
1486
+ {
1487
+ opcode: 0x79,
1488
+ mnemonic: "PUSH26",
1489
+ length: 27,
1490
+ immediates: [{ name: "arg", length: 26 }],
1491
+ nPop: 0,
1492
+ nPush: 1,
1493
+ valid: true,
1494
+ controlFlow: InstructionControlFlow.NextInstruction
1495
+ },
1496
+ {
1497
+ opcode: 0x7a,
1498
+ mnemonic: "PUSH27",
1499
+ length: 28,
1500
+ immediates: [{ name: "arg", length: 27 }],
1501
+ nPop: 0,
1502
+ nPush: 1,
1503
+ valid: true,
1504
+ controlFlow: InstructionControlFlow.NextInstruction
1505
+ },
1506
+ {
1507
+ opcode: 0x7b,
1508
+ mnemonic: "PUSH28",
1509
+ length: 29,
1510
+ immediates: [{ name: "arg", length: 28 }],
1511
+ nPop: 0,
1512
+ nPush: 1,
1513
+ valid: true,
1514
+ controlFlow: InstructionControlFlow.NextInstruction
1515
+ },
1516
+ {
1517
+ opcode: 0x7c,
1518
+ mnemonic: "PUSH29",
1519
+ length: 30,
1520
+ immediates: [{ name: "arg", length: 29 }],
1521
+ nPop: 0,
1522
+ nPush: 1,
1523
+ valid: true,
1524
+ controlFlow: InstructionControlFlow.NextInstruction
1525
+ },
1526
+ {
1527
+ opcode: 0x7d,
1528
+ mnemonic: "PUSH30",
1529
+ length: 31,
1530
+ immediates: [{ name: "arg", length: 30 }],
1531
+ nPop: 0,
1532
+ nPush: 1,
1533
+ valid: true,
1534
+ controlFlow: InstructionControlFlow.NextInstruction
1535
+ },
1536
+ {
1537
+ opcode: 0x7e,
1538
+ mnemonic: "PUSH31",
1539
+ length: 32,
1540
+ immediates: [{ name: "arg", length: 31 }],
1541
+ nPop: 0,
1542
+ nPush: 1,
1543
+ valid: true,
1544
+ controlFlow: InstructionControlFlow.NextInstruction
1545
+ },
1546
+ {
1547
+ opcode: 0x7f,
1548
+ mnemonic: "PUSH32",
1549
+ length: 33,
1550
+ immediates: [{ name: "arg", length: 32 }],
1551
+ nPop: 0,
1552
+ nPush: 1,
1553
+ valid: true,
1554
+ controlFlow: InstructionControlFlow.NextInstruction
1555
+ },
1556
+ {
1557
+ opcode: 0x80,
1558
+ mnemonic: "DUP1",
1559
+ length: 1,
1560
+ immediates: [],
1561
+ nPop: 1,
1562
+ nPush: 2,
1563
+ valid: true,
1564
+ controlFlow: InstructionControlFlow.NextInstruction
1565
+ },
1566
+ {
1567
+ opcode: 0x81,
1568
+ mnemonic: "DUP2",
1569
+ length: 1,
1570
+ immediates: [],
1571
+ nPop: 2,
1572
+ nPush: 3,
1573
+ valid: true,
1574
+ controlFlow: InstructionControlFlow.NextInstruction
1575
+ },
1576
+ {
1577
+ opcode: 0x82,
1578
+ mnemonic: "DUP3",
1579
+ length: 1,
1580
+ immediates: [],
1581
+ nPop: 3,
1582
+ nPush: 4,
1583
+ valid: true,
1584
+ controlFlow: InstructionControlFlow.NextInstruction
1585
+ },
1586
+ {
1587
+ opcode: 0x83,
1588
+ mnemonic: "DUP4",
1589
+ length: 1,
1590
+ immediates: [],
1591
+ nPop: 4,
1592
+ nPush: 5,
1593
+ valid: true,
1594
+ controlFlow: InstructionControlFlow.NextInstruction
1595
+ },
1596
+ {
1597
+ opcode: 0x84,
1598
+ mnemonic: "DUP5",
1599
+ length: 1,
1600
+ immediates: [],
1601
+ nPop: 2,
1602
+ nPush: 3,
1603
+ valid: true,
1604
+ controlFlow: InstructionControlFlow.NextInstruction
1605
+ },
1606
+ {
1607
+ opcode: 0x85,
1608
+ mnemonic: "DUP6",
1609
+ length: 1,
1610
+ immediates: [],
1611
+ nPop: 2,
1612
+ nPush: 3,
1613
+ valid: true,
1614
+ controlFlow: InstructionControlFlow.NextInstruction
1615
+ },
1616
+ {
1617
+ opcode: 0x86,
1618
+ mnemonic: "DUP7",
1619
+ length: 1,
1620
+ immediates: [],
1621
+ nPop: 2,
1622
+ nPush: 3,
1623
+ valid: true,
1624
+ controlFlow: InstructionControlFlow.NextInstruction
1625
+ },
1626
+ {
1627
+ opcode: 0x87,
1628
+ mnemonic: "DUP8",
1629
+ length: 1,
1630
+ immediates: [],
1631
+ nPop: 2,
1632
+ nPush: 3,
1633
+ valid: true,
1634
+ controlFlow: InstructionControlFlow.NextInstruction
1635
+ },
1636
+ {
1637
+ opcode: 0x88,
1638
+ mnemonic: "DUP9",
1639
+ length: 1,
1640
+ immediates: [],
1641
+ nPop: 2,
1642
+ nPush: 3,
1643
+ valid: true,
1644
+ controlFlow: InstructionControlFlow.NextInstruction
1645
+ },
1646
+ {
1647
+ opcode: 0x89,
1648
+ mnemonic: "DUP10",
1649
+ length: 1,
1650
+ immediates: [],
1651
+ nPop: 2,
1652
+ nPush: 3,
1653
+ valid: true,
1654
+ controlFlow: InstructionControlFlow.NextInstruction
1655
+ },
1656
+ {
1657
+ opcode: 0x8a,
1658
+ mnemonic: "DUP11",
1659
+ length: 1,
1660
+ immediates: [],
1661
+ nPop: 2,
1662
+ nPush: 3,
1663
+ valid: true,
1664
+ controlFlow: InstructionControlFlow.NextInstruction
1665
+ },
1666
+ {
1667
+ opcode: 0x8b,
1668
+ mnemonic: "DUP12",
1669
+ length: 1,
1670
+ immediates: [],
1671
+ nPop: 2,
1672
+ nPush: 3,
1673
+ valid: true,
1674
+ controlFlow: InstructionControlFlow.NextInstruction
1675
+ },
1676
+ {
1677
+ opcode: 0x8c,
1678
+ mnemonic: "DUP13",
1679
+ length: 1,
1680
+ immediates: [],
1681
+ nPop: 2,
1682
+ nPush: 3,
1683
+ valid: true,
1684
+ controlFlow: InstructionControlFlow.NextInstruction
1685
+ },
1686
+ {
1687
+ opcode: 0x8d,
1688
+ mnemonic: "DUP14",
1689
+ length: 1,
1690
+ immediates: [],
1691
+ nPop: 2,
1692
+ nPush: 3,
1693
+ valid: true,
1694
+ controlFlow: InstructionControlFlow.NextInstruction
1695
+ },
1696
+ {
1697
+ opcode: 0x8e,
1698
+ mnemonic: "DUP15",
1699
+ length: 1,
1700
+ immediates: [],
1701
+ nPop: 2,
1702
+ nPush: 3,
1703
+ valid: true,
1704
+ controlFlow: InstructionControlFlow.NextInstruction
1705
+ },
1706
+ {
1707
+ opcode: 0x8f,
1708
+ mnemonic: "DUP16",
1709
+ length: 1,
1710
+ immediates: [],
1711
+ nPop: 2,
1712
+ nPush: 3,
1713
+ valid: true,
1714
+ controlFlow: InstructionControlFlow.NextInstruction
1715
+ },
1716
+ {
1717
+ opcode: 0x90,
1718
+ mnemonic: "SWAP1",
1719
+ length: 1,
1720
+ immediates: [],
1721
+ nPop: 2,
1722
+ nPush: 2,
1723
+ valid: true,
1724
+ controlFlow: InstructionControlFlow.NextInstruction
1725
+ },
1726
+ {
1727
+ opcode: 0x91,
1728
+ mnemonic: "SWAP2",
1729
+ length: 1,
1730
+ immediates: [],
1731
+ nPop: 3,
1732
+ nPush: 3,
1733
+ valid: true,
1734
+ controlFlow: InstructionControlFlow.NextInstruction
1735
+ },
1736
+ {
1737
+ opcode: 0x92,
1738
+ mnemonic: "SWAP3",
1739
+ length: 1,
1740
+ immediates: [],
1741
+ nPop: 4,
1742
+ nPush: 4,
1743
+ valid: true,
1744
+ controlFlow: InstructionControlFlow.NextInstruction
1745
+ },
1746
+ {
1747
+ opcode: 0x93,
1748
+ mnemonic: "SWAP4",
1749
+ length: 1,
1750
+ immediates: [],
1751
+ nPop: 3,
1752
+ nPush: 3,
1753
+ valid: true,
1754
+ controlFlow: InstructionControlFlow.NextInstruction
1755
+ },
1756
+ {
1757
+ opcode: 0x94,
1758
+ mnemonic: "SWAP5",
1759
+ length: 1,
1760
+ immediates: [],
1761
+ nPop: 3,
1762
+ nPush: 3,
1763
+ valid: true,
1764
+ controlFlow: InstructionControlFlow.NextInstruction
1765
+ },
1766
+ {
1767
+ opcode: 0x95,
1768
+ mnemonic: "SWAP6",
1769
+ length: 1,
1770
+ immediates: [],
1771
+ nPop: 3,
1772
+ nPush: 3,
1773
+ valid: true,
1774
+ controlFlow: InstructionControlFlow.NextInstruction
1775
+ },
1776
+ {
1777
+ opcode: 0x96,
1778
+ mnemonic: "SWAP7",
1779
+ length: 1,
1780
+ immediates: [],
1781
+ nPop: 3,
1782
+ nPush: 3,
1783
+ valid: true,
1784
+ controlFlow: InstructionControlFlow.NextInstruction
1785
+ },
1786
+ {
1787
+ opcode: 0x97,
1788
+ mnemonic: "SWAP8",
1789
+ length: 1,
1790
+ immediates: [],
1791
+ nPop: 3,
1792
+ nPush: 3,
1793
+ valid: true,
1794
+ controlFlow: InstructionControlFlow.NextInstruction
1795
+ },
1796
+ {
1797
+ opcode: 0x98,
1798
+ mnemonic: "SWAP9",
1799
+ length: 1,
1800
+ immediates: [],
1801
+ nPop: 3,
1802
+ nPush: 3,
1803
+ valid: true,
1804
+ controlFlow: InstructionControlFlow.NextInstruction
1805
+ },
1806
+ {
1807
+ opcode: 0x99,
1808
+ mnemonic: "SWAP10",
1809
+ length: 1,
1810
+ immediates: [],
1811
+ nPop: 3,
1812
+ nPush: 3,
1813
+ valid: true,
1814
+ controlFlow: InstructionControlFlow.NextInstruction
1815
+ },
1816
+ {
1817
+ opcode: 0x9a,
1818
+ mnemonic: "SWAP11",
1819
+ length: 1,
1820
+ immediates: [],
1821
+ nPop: 3,
1822
+ nPush: 3,
1823
+ valid: true,
1824
+ controlFlow: InstructionControlFlow.NextInstruction
1825
+ },
1826
+ {
1827
+ opcode: 0x9b,
1828
+ mnemonic: "SWAP12",
1829
+ length: 1,
1830
+ immediates: [],
1831
+ nPop: 3,
1832
+ nPush: 3,
1833
+ valid: true,
1834
+ controlFlow: InstructionControlFlow.NextInstruction
1835
+ },
1836
+ {
1837
+ opcode: 0x9c,
1838
+ mnemonic: "SWAP13",
1839
+ length: 1,
1840
+ immediates: [],
1841
+ nPop: 3,
1842
+ nPush: 3,
1843
+ valid: true,
1844
+ controlFlow: InstructionControlFlow.NextInstruction
1845
+ },
1846
+ {
1847
+ opcode: 0x9d,
1848
+ mnemonic: "SWAP14",
1849
+ length: 1,
1850
+ immediates: [],
1851
+ nPop: 3,
1852
+ nPush: 3,
1853
+ valid: true,
1854
+ controlFlow: InstructionControlFlow.NextInstruction
1855
+ },
1856
+ {
1857
+ opcode: 0x9e,
1858
+ mnemonic: "SWAP15",
1859
+ length: 1,
1860
+ immediates: [],
1861
+ nPop: 3,
1862
+ nPush: 3,
1863
+ valid: true,
1864
+ controlFlow: InstructionControlFlow.NextInstruction
1865
+ },
1866
+ {
1867
+ opcode: 0x9f,
1868
+ mnemonic: "SWAP16",
1869
+ length: 1,
1870
+ immediates: [],
1871
+ nPop: 3,
1872
+ nPush: 3,
1873
+ valid: true,
1874
+ controlFlow: InstructionControlFlow.NextInstruction
1875
+ },
1876
+ {
1877
+ opcode: 0xa0,
1878
+ mnemonic: "LOG0",
1879
+ length: 1,
1880
+ immediates: [],
1881
+ nPop: 2,
1882
+ nPush: 0,
1883
+ valid: true,
1884
+ controlFlow: InstructionControlFlow.NextInstruction
1885
+ },
1886
+ {
1887
+ opcode: 0xa1,
1888
+ mnemonic: "LOG1",
1889
+ length: 1,
1890
+ immediates: [],
1891
+ nPop: 3,
1892
+ nPush: 0,
1893
+ valid: true,
1894
+ controlFlow: InstructionControlFlow.NextInstruction
1895
+ },
1896
+ {
1897
+ opcode: 0xa2,
1898
+ mnemonic: "LOG2",
1899
+ length: 1,
1900
+ immediates: [],
1901
+ nPop: 4,
1902
+ nPush: 0,
1903
+ valid: true,
1904
+ controlFlow: InstructionControlFlow.NextInstruction
1905
+ },
1906
+ {
1907
+ opcode: 0xa3,
1908
+ mnemonic: "LOG3",
1909
+ length: 1,
1910
+ immediates: [],
1911
+ nPop: 5,
1912
+ nPush: 0,
1913
+ valid: true,
1914
+ controlFlow: InstructionControlFlow.NextInstruction
1915
+ },
1916
+ {
1917
+ opcode: 0xa4,
1918
+ mnemonic: "LOG4",
1919
+ length: 1,
1920
+ immediates: [],
1921
+ nPop: 6,
1922
+ nPush: 0,
1923
+ valid: true,
1924
+ controlFlow: InstructionControlFlow.NextInstruction
1925
+ },
1926
+ {
1927
+ opcode: 0xa5,
1928
+ mnemonic: "Invalid",
1929
+ length: 1,
1930
+ immediates: [],
1931
+ nPop: 0,
1932
+ nPush: 0,
1933
+ valid: false,
1934
+ controlFlow: InstructionControlFlow.StopInvalid
1935
+ },
1936
+ {
1937
+ opcode: 0xa6,
1938
+ mnemonic: "Invalid",
1939
+ length: 1,
1940
+ immediates: [],
1941
+ nPop: 0,
1942
+ nPush: 0,
1943
+ valid: false,
1944
+ controlFlow: InstructionControlFlow.StopInvalid
1945
+ },
1946
+ {
1947
+ opcode: 0xa7,
1948
+ mnemonic: "Invalid",
1949
+ length: 1,
1950
+ immediates: [],
1951
+ nPop: 0,
1952
+ nPush: 0,
1953
+ valid: false,
1954
+ controlFlow: InstructionControlFlow.StopInvalid
1955
+ },
1956
+ {
1957
+ opcode: 0xa8,
1958
+ mnemonic: "Invalid",
1959
+ length: 1,
1960
+ immediates: [],
1961
+ nPop: 0,
1962
+ nPush: 0,
1963
+ valid: false,
1964
+ controlFlow: InstructionControlFlow.StopInvalid
1965
+ },
1966
+ {
1967
+ opcode: 0xa9,
1968
+ mnemonic: "Invalid",
1969
+ length: 1,
1970
+ immediates: [],
1971
+ nPop: 0,
1972
+ nPush: 0,
1973
+ valid: false,
1974
+ controlFlow: InstructionControlFlow.StopInvalid
1975
+ },
1976
+ {
1977
+ opcode: 0xaa,
1978
+ mnemonic: "Invalid",
1979
+ length: 1,
1980
+ immediates: [],
1981
+ nPop: 0,
1982
+ nPush: 0,
1983
+ valid: false,
1984
+ controlFlow: InstructionControlFlow.StopInvalid
1985
+ },
1986
+ {
1987
+ opcode: 0xab,
1988
+ mnemonic: "Invalid",
1989
+ length: 1,
1990
+ immediates: [],
1991
+ nPop: 0,
1992
+ nPush: 0,
1993
+ valid: false,
1994
+ controlFlow: InstructionControlFlow.StopInvalid
1995
+ },
1996
+ {
1997
+ opcode: 0xac,
1998
+ mnemonic: "Invalid",
1999
+ length: 1,
2000
+ immediates: [],
2001
+ nPop: 0,
2002
+ nPush: 0,
2003
+ valid: false,
2004
+ controlFlow: InstructionControlFlow.StopInvalid
2005
+ },
2006
+ {
2007
+ opcode: 0xad,
2008
+ mnemonic: "Invalid",
2009
+ length: 1,
2010
+ immediates: [],
2011
+ nPop: 0,
2012
+ nPush: 0,
2013
+ valid: false,
2014
+ controlFlow: InstructionControlFlow.StopInvalid
2015
+ },
2016
+ {
2017
+ opcode: 0xae,
2018
+ mnemonic: "Invalid",
2019
+ length: 1,
2020
+ immediates: [],
2021
+ nPop: 0,
2022
+ nPush: 0,
2023
+ valid: false,
2024
+ controlFlow: InstructionControlFlow.StopInvalid
2025
+ },
2026
+ {
2027
+ opcode: 0xaf,
2028
+ mnemonic: "Invalid",
2029
+ length: 1,
2030
+ immediates: [],
2031
+ nPop: 0,
2032
+ nPush: 0,
2033
+ valid: false,
2034
+ controlFlow: InstructionControlFlow.StopInvalid
2035
+ },
2036
+ {
2037
+ opcode: 0xb0,
2038
+ mnemonic: "Invalid",
2039
+ length: 1,
2040
+ immediates: [],
2041
+ nPop: 0,
2042
+ nPush: 0,
2043
+ valid: false,
2044
+ controlFlow: InstructionControlFlow.StopInvalid
2045
+ },
2046
+ {
2047
+ opcode: 0xb1,
2048
+ mnemonic: "Invalid",
2049
+ length: 1,
2050
+ immediates: [],
2051
+ nPop: 0,
2052
+ nPush: 0,
2053
+ valid: false,
2054
+ controlFlow: InstructionControlFlow.StopInvalid
2055
+ },
2056
+ {
2057
+ opcode: 0xb2,
2058
+ mnemonic: "Invalid",
2059
+ length: 1,
2060
+ immediates: [],
2061
+ nPop: 0,
2062
+ nPush: 0,
2063
+ valid: false,
2064
+ controlFlow: InstructionControlFlow.StopInvalid
2065
+ },
2066
+ {
2067
+ opcode: 0xb3,
2068
+ mnemonic: "Invalid",
2069
+ length: 1,
2070
+ immediates: [],
2071
+ nPop: 0,
2072
+ nPush: 0,
2073
+ valid: false,
2074
+ controlFlow: InstructionControlFlow.StopInvalid
2075
+ },
2076
+ {
2077
+ opcode: 0xb4,
2078
+ mnemonic: "Invalid",
2079
+ length: 1,
2080
+ immediates: [],
2081
+ nPop: 0,
2082
+ nPush: 0,
2083
+ valid: false,
2084
+ controlFlow: InstructionControlFlow.StopInvalid
2085
+ },
2086
+ {
2087
+ opcode: 0xb5,
2088
+ mnemonic: "Invalid",
2089
+ length: 1,
2090
+ immediates: [],
2091
+ nPop: 0,
2092
+ nPush: 0,
2093
+ valid: false,
2094
+ controlFlow: InstructionControlFlow.StopInvalid
2095
+ },
2096
+ {
2097
+ opcode: 0xb6,
2098
+ mnemonic: "Invalid",
2099
+ length: 1,
2100
+ immediates: [],
2101
+ nPop: 0,
2102
+ nPush: 0,
2103
+ valid: false,
2104
+ controlFlow: InstructionControlFlow.StopInvalid
2105
+ },
2106
+ {
2107
+ opcode: 0xb7,
2108
+ mnemonic: "Invalid",
2109
+ length: 1,
2110
+ immediates: [],
2111
+ nPop: 0,
2112
+ nPush: 0,
2113
+ valid: false,
2114
+ controlFlow: InstructionControlFlow.StopInvalid
2115
+ },
2116
+ {
2117
+ opcode: 0xb8,
2118
+ mnemonic: "Invalid",
2119
+ length: 1,
2120
+ immediates: [],
2121
+ nPop: 0,
2122
+ nPush: 0,
2123
+ valid: false,
2124
+ controlFlow: InstructionControlFlow.StopInvalid
2125
+ },
2126
+ {
2127
+ opcode: 0xb9,
2128
+ mnemonic: "Invalid",
2129
+ length: 1,
2130
+ immediates: [],
2131
+ nPop: 0,
2132
+ nPush: 0,
2133
+ valid: false,
2134
+ controlFlow: InstructionControlFlow.StopInvalid
2135
+ },
2136
+ {
2137
+ opcode: 0xba,
2138
+ mnemonic: "Invalid",
2139
+ length: 1,
2140
+ immediates: [],
2141
+ nPop: 0,
2142
+ nPush: 0,
2143
+ valid: false,
2144
+ controlFlow: InstructionControlFlow.StopInvalid
2145
+ },
2146
+ {
2147
+ opcode: 0xbb,
2148
+ mnemonic: "Invalid",
2149
+ length: 1,
2150
+ immediates: [],
2151
+ nPop: 0,
2152
+ nPush: 0,
2153
+ valid: false,
2154
+ controlFlow: InstructionControlFlow.StopInvalid
2155
+ },
2156
+ {
2157
+ opcode: 0xbc,
2158
+ mnemonic: "Invalid",
2159
+ length: 1,
2160
+ immediates: [],
2161
+ nPop: 0,
2162
+ nPush: 0,
2163
+ valid: false,
2164
+ controlFlow: InstructionControlFlow.StopInvalid
2165
+ },
2166
+ {
2167
+ opcode: 0xbd,
2168
+ mnemonic: "Invalid",
2169
+ length: 1,
2170
+ immediates: [],
2171
+ nPop: 0,
2172
+ nPush: 0,
2173
+ valid: false,
2174
+ controlFlow: InstructionControlFlow.StopInvalid
2175
+ },
2176
+ {
2177
+ opcode: 0xbe,
2178
+ mnemonic: "Invalid",
2179
+ length: 1,
2180
+ immediates: [],
2181
+ nPop: 0,
2182
+ nPush: 0,
2183
+ valid: false,
2184
+ controlFlow: InstructionControlFlow.StopInvalid
2185
+ },
2186
+ {
2187
+ opcode: 0xbf,
2188
+ mnemonic: "Invalid",
2189
+ length: 1,
2190
+ immediates: [],
2191
+ nPop: 0,
2192
+ nPush: 0,
2193
+ valid: false,
2194
+ controlFlow: InstructionControlFlow.StopInvalid
2195
+ },
2196
+ {
2197
+ opcode: 0xc0,
2198
+ mnemonic: "Invalid",
2199
+ length: 1,
2200
+ immediates: [],
2201
+ nPop: 0,
2202
+ nPush: 0,
2203
+ valid: false,
2204
+ controlFlow: InstructionControlFlow.StopInvalid
2205
+ },
2206
+ {
2207
+ opcode: 0xc1,
2208
+ mnemonic: "Invalid",
2209
+ length: 1,
2210
+ immediates: [],
2211
+ nPop: 0,
2212
+ nPush: 0,
2213
+ valid: false,
2214
+ controlFlow: InstructionControlFlow.StopInvalid
2215
+ },
2216
+ {
2217
+ opcode: 0xc2,
2218
+ mnemonic: "Invalid",
2219
+ length: 1,
2220
+ immediates: [],
2221
+ nPop: 0,
2222
+ nPush: 0,
2223
+ valid: false,
2224
+ controlFlow: InstructionControlFlow.StopInvalid
2225
+ },
2226
+ {
2227
+ opcode: 0xc3,
2228
+ mnemonic: "Invalid",
2229
+ length: 1,
2230
+ immediates: [],
2231
+ nPop: 0,
2232
+ nPush: 0,
2233
+ valid: false,
2234
+ controlFlow: InstructionControlFlow.StopInvalid
2235
+ },
2236
+ {
2237
+ opcode: 0xc4,
2238
+ mnemonic: "Invalid",
2239
+ length: 1,
2240
+ immediates: [],
2241
+ nPop: 0,
2242
+ nPush: 0,
2243
+ valid: false,
2244
+ controlFlow: InstructionControlFlow.StopInvalid
2245
+ },
2246
+ {
2247
+ opcode: 0xc5,
2248
+ mnemonic: "Invalid",
2249
+ length: 1,
2250
+ immediates: [],
2251
+ nPop: 0,
2252
+ nPush: 0,
2253
+ valid: false,
2254
+ controlFlow: InstructionControlFlow.StopInvalid
2255
+ },
2256
+ {
2257
+ opcode: 0xc6,
2258
+ mnemonic: "Invalid",
2259
+ length: 1,
2260
+ immediates: [],
2261
+ nPop: 0,
2262
+ nPush: 0,
2263
+ valid: false,
2264
+ controlFlow: InstructionControlFlow.StopInvalid
2265
+ },
2266
+ {
2267
+ opcode: 0xc7,
2268
+ mnemonic: "Invalid",
2269
+ length: 1,
2270
+ immediates: [],
2271
+ nPop: 0,
2272
+ nPush: 0,
2273
+ valid: false,
2274
+ controlFlow: InstructionControlFlow.StopInvalid
2275
+ },
2276
+ {
2277
+ opcode: 0xc8,
2278
+ mnemonic: "Invalid",
2279
+ length: 1,
2280
+ immediates: [],
2281
+ nPop: 0,
2282
+ nPush: 0,
2283
+ valid: false,
2284
+ controlFlow: InstructionControlFlow.StopInvalid
2285
+ },
2286
+ {
2287
+ opcode: 0xc9,
2288
+ mnemonic: "Invalid",
2289
+ length: 1,
2290
+ immediates: [],
2291
+ nPop: 0,
2292
+ nPush: 0,
2293
+ valid: false,
2294
+ controlFlow: InstructionControlFlow.StopInvalid
2295
+ },
2296
+ {
2297
+ opcode: 0xca,
2298
+ mnemonic: "Invalid",
2299
+ length: 1,
2300
+ immediates: [],
2301
+ nPop: 0,
2302
+ nPush: 0,
2303
+ valid: false,
2304
+ controlFlow: InstructionControlFlow.StopInvalid
2305
+ },
2306
+ {
2307
+ opcode: 0xcb,
2308
+ mnemonic: "Invalid",
2309
+ length: 1,
2310
+ immediates: [],
2311
+ nPop: 0,
2312
+ nPush: 0,
2313
+ valid: false,
2314
+ controlFlow: InstructionControlFlow.StopInvalid
2315
+ },
2316
+ {
2317
+ opcode: 0xcc,
2318
+ mnemonic: "Invalid",
2319
+ length: 1,
2320
+ immediates: [],
2321
+ nPop: 0,
2322
+ nPush: 0,
2323
+ valid: false,
2324
+ controlFlow: InstructionControlFlow.StopInvalid
2325
+ },
2326
+ {
2327
+ opcode: 0xcd,
2328
+ mnemonic: "Invalid",
2329
+ length: 1,
2330
+ immediates: [],
2331
+ nPop: 0,
2332
+ nPush: 0,
2333
+ valid: false,
2334
+ controlFlow: InstructionControlFlow.StopInvalid
2335
+ },
2336
+ {
2337
+ opcode: 0xce,
2338
+ mnemonic: "Invalid",
2339
+ length: 1,
2340
+ immediates: [],
2341
+ nPop: 0,
2342
+ nPush: 0,
2343
+ valid: false,
2344
+ controlFlow: InstructionControlFlow.StopInvalid
2345
+ },
2346
+ {
2347
+ opcode: 0xcf,
2348
+ mnemonic: "Invalid",
2349
+ length: 1,
2350
+ immediates: [],
2351
+ nPop: 0,
2352
+ nPush: 0,
2353
+ valid: false,
2354
+ controlFlow: InstructionControlFlow.StopInvalid
2355
+ },
2356
+ {
2357
+ opcode: 0xd0,
2358
+ mnemonic: "Invalid",
2359
+ length: 1,
2360
+ immediates: [],
2361
+ nPop: 0,
2362
+ nPush: 0,
2363
+ valid: false,
2364
+ controlFlow: InstructionControlFlow.StopInvalid
2365
+ },
2366
+ {
2367
+ opcode: 0xd1,
2368
+ mnemonic: "Invalid",
2369
+ length: 1,
2370
+ immediates: [],
2371
+ nPop: 0,
2372
+ nPush: 0,
2373
+ valid: false,
2374
+ controlFlow: InstructionControlFlow.StopInvalid
2375
+ },
2376
+ {
2377
+ opcode: 0xd2,
2378
+ mnemonic: "Invalid",
2379
+ length: 1,
2380
+ immediates: [],
2381
+ nPop: 0,
2382
+ nPush: 0,
2383
+ valid: false,
2384
+ controlFlow: InstructionControlFlow.StopInvalid
2385
+ },
2386
+ {
2387
+ opcode: 0xd3,
2388
+ mnemonic: "Invalid",
2389
+ length: 1,
2390
+ immediates: [],
2391
+ nPop: 0,
2392
+ nPush: 0,
2393
+ valid: false,
2394
+ controlFlow: InstructionControlFlow.StopInvalid
2395
+ },
2396
+ {
2397
+ opcode: 0xd4,
2398
+ mnemonic: "Invalid",
2399
+ length: 1,
2400
+ immediates: [],
2401
+ nPop: 0,
2402
+ nPush: 0,
2403
+ valid: false,
2404
+ controlFlow: InstructionControlFlow.StopInvalid
2405
+ },
2406
+ {
2407
+ opcode: 0xd5,
2408
+ mnemonic: "Invalid",
2409
+ length: 1,
2410
+ immediates: [],
2411
+ nPop: 0,
2412
+ nPush: 0,
2413
+ valid: false,
2414
+ controlFlow: InstructionControlFlow.StopInvalid
2415
+ },
2416
+ {
2417
+ opcode: 0xd6,
2418
+ mnemonic: "Invalid",
2419
+ length: 1,
2420
+ immediates: [],
2421
+ nPop: 0,
2422
+ nPush: 0,
2423
+ valid: false,
2424
+ controlFlow: InstructionControlFlow.StopInvalid
2425
+ },
2426
+ {
2427
+ opcode: 0xd7,
2428
+ mnemonic: "Invalid",
2429
+ length: 1,
2430
+ immediates: [],
2431
+ nPop: 0,
2432
+ nPush: 0,
2433
+ valid: false,
2434
+ controlFlow: InstructionControlFlow.StopInvalid
2435
+ },
2436
+ {
2437
+ opcode: 0xd8,
2438
+ mnemonic: "Invalid",
2439
+ length: 1,
2440
+ immediates: [],
2441
+ nPop: 0,
2442
+ nPush: 0,
2443
+ valid: false,
2444
+ controlFlow: InstructionControlFlow.StopInvalid
2445
+ },
2446
+ {
2447
+ opcode: 0xd9,
2448
+ mnemonic: "Invalid",
2449
+ length: 1,
2450
+ immediates: [],
2451
+ nPop: 0,
2452
+ nPush: 0,
2453
+ valid: false,
2454
+ controlFlow: InstructionControlFlow.StopInvalid
2455
+ },
2456
+ {
2457
+ opcode: 0xda,
2458
+ mnemonic: "Invalid",
2459
+ length: 1,
2460
+ immediates: [],
2461
+ nPop: 0,
2462
+ nPush: 0,
2463
+ valid: false,
2464
+ controlFlow: InstructionControlFlow.StopInvalid
2465
+ },
2466
+ {
2467
+ opcode: 0xdb,
2468
+ mnemonic: "Invalid",
2469
+ length: 1,
2470
+ immediates: [],
2471
+ nPop: 0,
2472
+ nPush: 0,
2473
+ valid: false,
2474
+ controlFlow: InstructionControlFlow.StopInvalid
2475
+ },
2476
+ {
2477
+ opcode: 0xdc,
2478
+ mnemonic: "Invalid",
2479
+ length: 1,
2480
+ immediates: [],
2481
+ nPop: 0,
2482
+ nPush: 0,
2483
+ valid: false,
2484
+ controlFlow: InstructionControlFlow.StopInvalid
2485
+ },
2486
+ {
2487
+ opcode: 0xdd,
2488
+ mnemonic: "Invalid",
2489
+ length: 1,
2490
+ immediates: [],
2491
+ nPop: 0,
2492
+ nPush: 0,
2493
+ valid: false,
2494
+ controlFlow: InstructionControlFlow.StopInvalid
2495
+ },
2496
+ {
2497
+ opcode: 0xde,
2498
+ mnemonic: "Invalid",
2499
+ length: 1,
2500
+ immediates: [],
2501
+ nPop: 0,
2502
+ nPush: 0,
2503
+ valid: false,
2504
+ controlFlow: InstructionControlFlow.StopInvalid
2505
+ },
2506
+ {
2507
+ opcode: 0xdf,
2508
+ mnemonic: "Invalid",
2509
+ length: 1,
2510
+ immediates: [],
2511
+ nPop: 0,
2512
+ nPush: 0,
2513
+ valid: false,
2514
+ controlFlow: InstructionControlFlow.StopInvalid
2515
+ },
2516
+ {
2517
+ opcode: 0xe0,
2518
+ mnemonic: "Invalid",
2519
+ length: 1,
2520
+ immediates: [],
2521
+ nPop: 0,
2522
+ nPush: 0,
2523
+ valid: false,
2524
+ controlFlow: InstructionControlFlow.StopInvalid
2525
+ },
2526
+ {
2527
+ opcode: 0xe1,
2528
+ mnemonic: "Invalid",
2529
+ length: 1,
2530
+ immediates: [],
2531
+ nPop: 0,
2532
+ nPush: 0,
2533
+ valid: false,
2534
+ controlFlow: InstructionControlFlow.StopInvalid
2535
+ },
2536
+ {
2537
+ opcode: 0xe2,
2538
+ mnemonic: "Invalid",
2539
+ length: 1,
2540
+ immediates: [],
2541
+ nPop: 0,
2542
+ nPush: 0,
2543
+ valid: false,
2544
+ controlFlow: InstructionControlFlow.StopInvalid
2545
+ },
2546
+ {
2547
+ opcode: 0xe3,
2548
+ mnemonic: "Invalid",
2549
+ length: 1,
2550
+ immediates: [],
2551
+ nPop: 0,
2552
+ nPush: 0,
2553
+ valid: false,
2554
+ controlFlow: InstructionControlFlow.StopInvalid
2555
+ },
2556
+ {
2557
+ opcode: 0xe4,
2558
+ mnemonic: "Invalid",
2559
+ length: 1,
2560
+ immediates: [],
2561
+ nPop: 0,
2562
+ nPush: 0,
2563
+ valid: false,
2564
+ controlFlow: InstructionControlFlow.StopInvalid
2565
+ },
2566
+ {
2567
+ opcode: 0xe5,
2568
+ mnemonic: "Invalid",
2569
+ length: 1,
2570
+ immediates: [],
2571
+ nPop: 0,
2572
+ nPush: 0,
2573
+ valid: false,
2574
+ controlFlow: InstructionControlFlow.StopInvalid
2575
+ },
2576
+ {
2577
+ opcode: 0xe6,
2578
+ mnemonic: "Invalid",
2579
+ length: 1,
2580
+ immediates: [],
2581
+ nPop: 0,
2582
+ nPush: 0,
2583
+ valid: false,
2584
+ controlFlow: InstructionControlFlow.StopInvalid
2585
+ },
2586
+ {
2587
+ opcode: 0xe7,
2588
+ mnemonic: "Invalid",
2589
+ length: 1,
2590
+ immediates: [],
2591
+ nPop: 0,
2592
+ nPush: 0,
2593
+ valid: false,
2594
+ controlFlow: InstructionControlFlow.StopInvalid
2595
+ },
2596
+ {
2597
+ opcode: 0xe8,
2598
+ mnemonic: "Invalid",
2599
+ length: 1,
2600
+ immediates: [],
2601
+ nPop: 0,
2602
+ nPush: 0,
2603
+ valid: false,
2604
+ controlFlow: InstructionControlFlow.StopInvalid
2605
+ },
2606
+ {
2607
+ opcode: 0xe9,
2608
+ mnemonic: "Invalid",
2609
+ length: 1,
2610
+ immediates: [],
2611
+ nPop: 0,
2612
+ nPush: 0,
2613
+ valid: false,
2614
+ controlFlow: InstructionControlFlow.StopInvalid
2615
+ },
2616
+ {
2617
+ opcode: 0xea,
2618
+ mnemonic: "Invalid",
2619
+ length: 1,
2620
+ immediates: [],
2621
+ nPop: 0,
2622
+ nPush: 0,
2623
+ valid: false,
2624
+ controlFlow: InstructionControlFlow.StopInvalid
2625
+ },
2626
+ {
2627
+ opcode: 0xeb,
2628
+ mnemonic: "Invalid",
2629
+ length: 1,
2630
+ immediates: [],
2631
+ nPop: 0,
2632
+ nPush: 0,
2633
+ valid: false,
2634
+ controlFlow: InstructionControlFlow.StopInvalid
2635
+ },
2636
+ {
2637
+ opcode: 0xec,
2638
+ mnemonic: "Invalid",
2639
+ length: 1,
2640
+ immediates: [],
2641
+ nPop: 0,
2642
+ nPush: 0,
2643
+ valid: false,
2644
+ controlFlow: InstructionControlFlow.StopInvalid
2645
+ },
2646
+ {
2647
+ opcode: 0xed,
2648
+ mnemonic: "Invalid",
2649
+ length: 1,
2650
+ immediates: [],
2651
+ nPop: 0,
2652
+ nPush: 0,
2653
+ valid: false,
2654
+ controlFlow: InstructionControlFlow.StopInvalid
2655
+ },
2656
+ {
2657
+ opcode: 0xee,
2658
+ mnemonic: "Invalid",
2659
+ length: 1,
2660
+ immediates: [],
2661
+ nPop: 0,
2662
+ nPush: 0,
2663
+ valid: false,
2664
+ controlFlow: InstructionControlFlow.StopInvalid
2665
+ },
2666
+ {
2667
+ opcode: 0xef,
2668
+ mnemonic: "Invalid",
2669
+ length: 1,
2670
+ immediates: [],
2671
+ nPop: 0,
2672
+ nPush: 0,
2673
+ valid: false,
2674
+ controlFlow: InstructionControlFlow.StopInvalid
2675
+ },
2676
+ {
2677
+ opcode: 0xf0,
2678
+ mnemonic: "CREATE",
2679
+ length: 1,
2680
+ immediates: [],
2681
+ nPop: 3,
2682
+ nPush: 1,
2683
+ valid: true,
2684
+ controlFlow: InstructionControlFlow.ExternalCall
2685
+ },
2686
+ {
2687
+ opcode: 0xf1,
2688
+ mnemonic: "CALL",
2689
+ length: 1,
2690
+ immediates: [],
2691
+ nPop: 7,
2692
+ nPush: 1,
2693
+ valid: true,
2694
+ controlFlow: InstructionControlFlow.ExternalCall
2695
+ },
2696
+ {
2697
+ opcode: 0xf2,
2698
+ mnemonic: "CALLCODE",
2699
+ length: 1,
2700
+ immediates: [],
2701
+ nPop: 7,
2702
+ nPush: 1,
2703
+ valid: true,
2704
+ controlFlow: InstructionControlFlow.ExternalCall
2705
+ },
2706
+ {
2707
+ opcode: 0xf3,
2708
+ mnemonic: "RETURN",
2709
+ length: 1,
2710
+ immediates: [],
2711
+ nPop: 2,
2712
+ nPush: 0,
2713
+ valid: true,
2714
+ controlFlow: InstructionControlFlow.Return
2715
+ },
2716
+ {
2717
+ opcode: 0xf4,
2718
+ mnemonic: "DELEGATECALL",
2719
+ length: 1,
2720
+ immediates: [],
2721
+ nPop: 6,
2722
+ nPush: 1,
2723
+ valid: true,
2724
+ controlFlow: InstructionControlFlow.ExternalCall
2725
+ },
2726
+ {
2727
+ opcode: 0xf5,
2728
+ mnemonic: "CREATE2",
2729
+ length: 1,
2730
+ immediates: [],
2731
+ nPop: 4,
2732
+ nPush: 1,
2733
+ valid: true,
2734
+ controlFlow: InstructionControlFlow.ExternalCall
2735
+ },
2736
+ {
2737
+ opcode: 0xf6,
2738
+ mnemonic: "Invalid",
2739
+ length: 1,
2740
+ immediates: [],
2741
+ nPop: 0,
2742
+ nPush: 0,
2743
+ valid: false,
2744
+ controlFlow: InstructionControlFlow.StopInvalid
2745
+ },
2746
+ {
2747
+ opcode: 0xf7,
2748
+ mnemonic: "Invalid",
2749
+ length: 1,
2750
+ immediates: [],
2751
+ nPop: 0,
2752
+ nPush: 0,
2753
+ valid: false,
2754
+ controlFlow: InstructionControlFlow.StopInvalid
2755
+ },
2756
+ {
2757
+ opcode: 0xf8,
2758
+ mnemonic: "Invalid",
2759
+ length: 1,
2760
+ immediates: [],
2761
+ nPop: 0,
2762
+ nPush: 0,
2763
+ valid: false,
2764
+ controlFlow: InstructionControlFlow.StopInvalid
2765
+ },
2766
+ {
2767
+ opcode: 0xf9,
2768
+ mnemonic: "Invalid",
2769
+ length: 1,
2770
+ immediates: [],
2771
+ nPop: 0,
2772
+ nPush: 0,
2773
+ valid: false,
2774
+ controlFlow: InstructionControlFlow.StopInvalid
2775
+ },
2776
+ {
2777
+ opcode: 0xfa,
2778
+ mnemonic: "STATICCALL",
2779
+ length: 1,
2780
+ immediates: [],
2781
+ nPop: 6,
2782
+ nPush: 1,
2783
+ valid: true,
2784
+ controlFlow: InstructionControlFlow.ExternalCall
2785
+ },
2786
+ {
2787
+ opcode: 0xfb,
2788
+ mnemonic: "Invalid",
2789
+ length: 1,
2790
+ immediates: [],
2791
+ nPop: 0,
2792
+ nPush: 0,
2793
+ valid: false,
2794
+ controlFlow: InstructionControlFlow.StopInvalid
2795
+ },
2796
+ {
2797
+ opcode: 0xfc,
2798
+ mnemonic: "Invalid",
2799
+ length: 1,
2800
+ immediates: [],
2801
+ nPop: 0,
2802
+ nPush: 0,
2803
+ valid: false,
2804
+ controlFlow: InstructionControlFlow.StopInvalid
2805
+ },
2806
+ {
2807
+ opcode: 0xfd,
2808
+ mnemonic: "REVERT",
2809
+ length: 1,
2810
+ immediates: [],
2811
+ nPop: 2,
2812
+ nPush: 0,
2813
+ valid: true,
2814
+ controlFlow: InstructionControlFlow.Revert
2815
+ },
2816
+ {
2817
+ opcode: 0xfe,
2818
+ mnemonic: "Invalid",
2819
+ length: 1,
2820
+ immediates: [],
2821
+ nPop: 0,
2822
+ nPush: 0,
2823
+ valid: false,
2824
+ controlFlow: InstructionControlFlow.StopInvalid
2825
+ },
2826
+ {
2827
+ opcode: 0xff,
2828
+ mnemonic: "SELFDESTRUCT",
2829
+ length: 1,
2830
+ immediates: [],
2831
+ nPop: 1,
2832
+ nPush: 0,
2833
+ valid: true,
2834
+ controlFlow: InstructionControlFlow.Stop //@todo Is this correct?
2835
+ }
2836
+ ];
2837
+ exports.MnemonicToOpcodeMap = new Map(exports.OpcodeInfo.filter((opcodeMD) => opcodeMD.mnemonic !== "Invalid" || opcodeMD.opcode === 0xfe).map((opcodeMD) => [
2838
+ opcodeMD.mnemonic === "Invalid" ? "INVALID" : opcodeMD.mnemonic,
2839
+ opcodeMD.opcode
2840
+ ]));
2841
+ // Add KECCAK256 as alias for SHA3
2842
+ exports.MnemonicToOpcodeMap.set("KECCAK256", 0x20);
2843
+ function getOpInfo(arg) {
2844
+ if (typeof arg === "number") {
2845
+ (0, solc_typed_ast_1.assert)(arg >= 0 && arg < 256, `Invalid EVM opcode ${arg}`);
2846
+ return exports.OpcodeInfo[arg];
2847
+ }
2848
+ else {
2849
+ const opcode = exports.MnemonicToOpcodeMap.get(arg);
2850
+ (0, solc_typed_ast_1.assert)(opcode !== undefined, `Unknown opcode mnemonic ${arg}`);
2851
+ (0, solc_typed_ast_1.assert)(opcode >= 0 && opcode < 256, `Internal error: invalid opcode ${opcode} for mnemonic ${arg}`);
2852
+ return exports.OpcodeInfo[opcode];
2853
+ }
2854
+ }
2855
+ exports.getOpInfo = getOpInfo;
2856
+ /**
2857
+ * Return true IFF the provided op changes the external call stack depth
2858
+ */
2859
+ function changesDepth(op) {
2860
+ // There are several cases where an op may change the stack depth
2861
+ return (op.opcode === OPCODES.CREATE ||
2862
+ op.opcode === OPCODES.CREATE2 || // Case 1: Contract creation
2863
+ op.opcode === OPCODES.CALL ||
2864
+ op.opcode === OPCODES.CALLCODE ||
2865
+ op.opcode === OPCODES.STATICCALL ||
2866
+ op.opcode === OPCODES.DELEGATECALL || // Case 2: Normal call
2867
+ op.opcode === OPCODES.RETURN || // Case 3: Normal return
2868
+ op.opcode === OPCODES.REVERT ||
2869
+ !op.valid); // Case 4: Revert or invalid instruction (used for assert for example)
2870
+ }
2871
+ exports.changesDepth = changesDepth;
2872
+ /**
2873
+ * Return true IFF the provided op increases the external call stack depth
2874
+ */
2875
+ function increasesDepth(op) {
2876
+ // There are several cases where an op may increase the stack depth
2877
+ return (op.opcode === OPCODES.CREATE ||
2878
+ op.opcode === OPCODES.CREATE2 || // Case 1: Contract creation
2879
+ op.opcode === OPCODES.CALL ||
2880
+ op.opcode === OPCODES.CALLCODE ||
2881
+ op.opcode === OPCODES.STATICCALL ||
2882
+ op.opcode === OPCODES.DELEGATECALL); // Case 2: Normal call
2883
+ }
2884
+ exports.increasesDepth = increasesDepth;
2885
+ /**
2886
+ * Return true IFF the provided op changes the memory
2887
+ */
2888
+ function changesMemory(op) {
2889
+ return (op.opcode === OPCODES.MSTORE ||
2890
+ op.opcode === OPCODES.MSTORE8 ||
2891
+ op.opcode === OPCODES.CALLDATACOPY ||
2892
+ op.opcode === OPCODES.CODECOPY ||
2893
+ op.opcode === OPCODES.EXTCODECOPY ||
2894
+ op.opcode === OPCODES.RETURNDATACOPY ||
2895
+ op.opcode === OPCODES.CALL ||
2896
+ op.opcode === OPCODES.CALLCODE ||
2897
+ op.opcode === OPCODES.DELEGATECALL ||
2898
+ op.opcode === OPCODES.STATICCALL);
2899
+ }
2900
+ exports.changesMemory = changesMemory;
2901
+ /**
2902
+ * Return true IFF the provided op causes the creation of a new contract
2903
+ */
2904
+ function createsContract(op) {
2905
+ // There are several cases where an op may increase the stack depth
2906
+ return op.opcode === OPCODES.CREATE || op.opcode === OPCODES.CREATE2; // Case 1: Contract creation
2907
+ }
2908
+ exports.createsContract = createsContract;
2909
+ //# sourceMappingURL=opcodes.js.map