sol-dbg 0.6.15 → 0.7.2

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 (181) hide show
  1. package/dist/artifacts/helpers.d.ts +3 -3
  2. package/dist/artifacts/helpers.d.ts.map +1 -1
  3. package/dist/artifacts/helpers.js +17 -53
  4. package/dist/artifacts/helpers.js.map +1 -1
  5. package/dist/artifacts/solc.d.ts +1 -8
  6. package/dist/artifacts/solc.d.ts.map +1 -1
  7. package/dist/debug/abi.d.ts +11 -41
  8. package/dist/debug/abi.d.ts.map +1 -1
  9. package/dist/debug/abi.js +60 -294
  10. package/dist/debug/abi.js.map +1 -1
  11. package/dist/debug/artifact_manager/artifact_manager.d.ts +17 -42
  12. package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -1
  13. package/dist/debug/artifact_manager/artifact_manager.js +82 -22
  14. package/dist/debug/artifact_manager/artifact_manager.js.map +1 -1
  15. package/dist/debug/artifact_manager/bytecode_templates.d.ts +1 -1
  16. package/dist/debug/artifact_manager/bytecode_templates.d.ts.map +1 -1
  17. package/dist/debug/artifact_manager/bytecode_templates.js +4 -3
  18. package/dist/debug/artifact_manager/bytecode_templates.js.map +1 -1
  19. package/dist/debug/artifact_manager/index.d.ts +1 -0
  20. package/dist/debug/artifact_manager/index.d.ts.map +1 -1
  21. package/dist/debug/artifact_manager/index.js +1 -0
  22. package/dist/debug/artifact_manager/index.js.map +1 -1
  23. package/dist/debug/artifact_manager/types.d.ts +129 -0
  24. package/dist/debug/artifact_manager/types.d.ts.map +1 -0
  25. package/dist/debug/artifact_manager/types.js +12 -0
  26. package/dist/debug/artifact_manager/types.js.map +1 -0
  27. package/dist/debug/decoding/calldata/index.d.ts +2 -0
  28. package/dist/debug/decoding/calldata/index.d.ts.map +1 -0
  29. package/dist/debug/decoding/calldata/index.js +6 -0
  30. package/dist/debug/decoding/calldata/index.js.map +1 -0
  31. package/dist/debug/decoding/calldata/view.d.ts +75 -0
  32. package/dist/debug/decoding/calldata/view.d.ts.map +1 -0
  33. package/dist/debug/decoding/calldata/view.js +400 -0
  34. package/dist/debug/decoding/calldata/view.js.map +1 -0
  35. package/dist/debug/decoding/exp_types.d.ts +46 -0
  36. package/dist/debug/decoding/exp_types.d.ts.map +1 -0
  37. package/dist/debug/decoding/exp_types.js +202 -0
  38. package/dist/debug/decoding/exp_types.js.map +1 -0
  39. package/dist/debug/decoding/general.d.ts +5 -9
  40. package/dist/debug/decoding/general.d.ts.map +1 -1
  41. package/dist/debug/decoding/general.js +25 -103
  42. package/dist/debug/decoding/general.js.map +1 -1
  43. package/dist/debug/decoding/index.d.ts +1 -0
  44. package/dist/debug/decoding/index.d.ts.map +1 -1
  45. package/dist/debug/decoding/index.js +1 -0
  46. package/dist/debug/decoding/index.js.map +1 -1
  47. package/dist/debug/decoding/memory/allocator.d.ts +22 -0
  48. package/dist/debug/decoding/memory/allocator.d.ts.map +1 -0
  49. package/dist/debug/decoding/memory/allocator.js +47 -0
  50. package/dist/debug/decoding/memory/allocator.js.map +1 -0
  51. package/dist/debug/decoding/memory/index.d.ts +2 -0
  52. package/dist/debug/decoding/memory/index.d.ts.map +1 -0
  53. package/dist/debug/decoding/memory/index.js +6 -0
  54. package/dist/debug/decoding/memory/index.js.map +1 -0
  55. package/dist/debug/decoding/memory/view.d.ts +66 -0
  56. package/dist/debug/decoding/memory/view.d.ts.map +1 -0
  57. package/dist/debug/decoding/memory/view.js +283 -0
  58. package/dist/debug/decoding/memory/view.js.map +1 -0
  59. package/dist/debug/decoding/stack/index.d.ts +2 -0
  60. package/dist/debug/decoding/stack/index.d.ts.map +1 -0
  61. package/dist/debug/decoding/stack/index.js +6 -0
  62. package/dist/debug/decoding/stack/index.js.map +1 -0
  63. package/dist/debug/decoding/stack/view.d.ts +36 -0
  64. package/dist/debug/decoding/stack/view.d.ts.map +1 -0
  65. package/dist/debug/decoding/stack/view.js +156 -0
  66. package/dist/debug/decoding/stack/view.js.map +1 -0
  67. package/dist/debug/decoding/storage/index.d.ts +2 -0
  68. package/dist/debug/decoding/storage/index.d.ts.map +1 -0
  69. package/dist/debug/decoding/storage/index.js +6 -0
  70. package/dist/debug/decoding/storage/index.js.map +1 -0
  71. package/dist/debug/decoding/storage/view.d.ts +105 -0
  72. package/dist/debug/decoding/storage/view.d.ts.map +1 -0
  73. package/dist/debug/decoding/storage/view.js +603 -0
  74. package/dist/debug/decoding/storage/view.js.map +1 -0
  75. package/dist/debug/decoding/utils.d.ts +17 -0
  76. package/dist/debug/decoding/utils.d.ts.map +1 -0
  77. package/dist/debug/decoding/utils.js +43 -0
  78. package/dist/debug/decoding/utils.js.map +1 -0
  79. package/dist/debug/decoding/value.d.ts +50 -0
  80. package/dist/debug/decoding/value.d.ts.map +1 -0
  81. package/dist/debug/decoding/value.js +106 -0
  82. package/dist/debug/decoding/value.js.map +1 -0
  83. package/dist/debug/decoding/view.d.ts +24 -0
  84. package/dist/debug/decoding/view.d.ts.map +1 -0
  85. package/dist/debug/decoding/view.js +22 -0
  86. package/dist/debug/decoding/view.js.map +1 -0
  87. package/dist/debug/foundry_cheatcodes.d.ts +15 -15
  88. package/dist/debug/foundry_cheatcodes.d.ts.map +1 -1
  89. package/dist/debug/foundry_cheatcodes.js +17 -16
  90. package/dist/debug/foundry_cheatcodes.js.map +1 -1
  91. package/dist/debug/layout.d.ts +6 -8
  92. package/dist/debug/layout.d.ts.map +1 -1
  93. package/dist/debug/layout.js +14 -78
  94. package/dist/debug/layout.js.map +1 -1
  95. package/dist/debug/opcode_interposing.js +5 -5
  96. package/dist/debug/opcode_interposing.js.map +1 -1
  97. package/dist/debug/tracers/base_tracer.d.ts +4 -4
  98. package/dist/debug/tracers/base_tracer.d.ts.map +1 -1
  99. package/dist/debug/tracers/base_tracer.js +7 -7
  100. package/dist/debug/tracers/base_tracer.js.map +1 -1
  101. package/dist/debug/tracers/sol_debugger.d.ts.map +1 -1
  102. package/dist/debug/tracers/sol_debugger.js +2 -1
  103. package/dist/debug/tracers/sol_debugger.js.map +1 -1
  104. package/dist/debug/tracers/storage_decode_tracer.js +1 -1
  105. package/dist/debug/tracers/storage_decode_tracer.js.map +1 -1
  106. package/dist/debug/tracers/transformers/basic_info.d.ts +2 -2
  107. package/dist/debug/tracers/transformers/basic_info.d.ts.map +1 -1
  108. package/dist/debug/tracers/transformers/basic_info.js +4 -3
  109. package/dist/debug/tracers/transformers/basic_info.js.map +1 -1
  110. package/dist/debug/tracers/transformers/events.js +2 -2
  111. package/dist/debug/tracers/transformers/events.js.map +1 -1
  112. package/dist/debug/tracers/transformers/exc_info.d.ts +15 -0
  113. package/dist/debug/tracers/transformers/exc_info.d.ts.map +1 -0
  114. package/dist/debug/tracers/transformers/exc_info.js +39 -0
  115. package/dist/debug/tracers/transformers/exc_info.js.map +1 -0
  116. package/dist/debug/tracers/transformers/ext_stack.d.ts.map +1 -1
  117. package/dist/debug/tracers/transformers/ext_stack.js +13 -30
  118. package/dist/debug/tracers/transformers/ext_stack.js.map +1 -1
  119. package/dist/debug/tracers/transformers/index.d.ts +1 -0
  120. package/dist/debug/tracers/transformers/index.d.ts.map +1 -1
  121. package/dist/debug/tracers/transformers/index.js +1 -0
  122. package/dist/debug/tracers/transformers/index.js.map +1 -1
  123. package/dist/debug/tracers/transformers/int_stack.d.ts.map +1 -1
  124. package/dist/debug/tracers/transformers/int_stack.js +5 -13
  125. package/dist/debug/tracers/transformers/int_stack.js.map +1 -1
  126. package/dist/debug/tracers/transformers/keccak256_invert.js +4 -4
  127. package/dist/debug/tracers/transformers/keccak256_invert.js.map +1 -1
  128. package/dist/debug/tracers/transformers/ret_info.d.ts +1 -1
  129. package/dist/debug/tracers/transformers/ret_info.d.ts.map +1 -1
  130. package/dist/debug/tracers/transformers/ret_info.js +22 -46
  131. package/dist/debug/tracers/transformers/ret_info.js.map +1 -1
  132. package/dist/debug/types.d.ts +64 -23
  133. package/dist/debug/types.d.ts.map +1 -1
  134. package/dist/debug/types.js.map +1 -1
  135. package/dist/utils/ethereumjs_internal/exceptions.d.ts +2 -2
  136. package/dist/utils/ethereumjs_internal/opcodes.js +1 -1
  137. package/dist/utils/immutable_map.d.ts +2 -0
  138. package/dist/utils/immutable_map.d.ts.map +1 -1
  139. package/dist/utils/immutable_map.js +21 -0
  140. package/dist/utils/immutable_map.js.map +1 -1
  141. package/dist/utils/index.d.ts +1 -0
  142. package/dist/utils/index.d.ts.map +1 -1
  143. package/dist/utils/index.js +1 -0
  144. package/dist/utils/index.js.map +1 -1
  145. package/dist/utils/misc.d.ts +19 -11
  146. package/dist/utils/misc.d.ts.map +1 -1
  147. package/dist/utils/misc.js +61 -53
  148. package/dist/utils/misc.js.map +1 -1
  149. package/dist/utils/pp.d.ts +3 -1
  150. package/dist/utils/pp.d.ts.map +1 -1
  151. package/dist/utils/pp.js +10 -27
  152. package/dist/utils/pp.js.map +1 -1
  153. package/dist/utils/solidity.d.ts +11 -0
  154. package/dist/utils/solidity.d.ts.map +1 -0
  155. package/dist/utils/solidity.js +85 -0
  156. package/dist/utils/solidity.js.map +1 -0
  157. package/dist/utils/test_runner.d.ts +9 -6
  158. package/dist/utils/test_runner.d.ts.map +1 -1
  159. package/dist/utils/test_runner.js +26 -21
  160. package/dist/utils/test_runner.js.map +1 -1
  161. package/dist/utils/trace.d.ts +5 -1
  162. package/dist/utils/trace.d.ts.map +1 -1
  163. package/dist/utils/trace.js +16 -0
  164. package/dist/utils/trace.js.map +1 -1
  165. package/package.json +19 -14
  166. package/dist/debug/decoding/calldata.d.ts +0 -6
  167. package/dist/debug/decoding/calldata.d.ts.map +0 -1
  168. package/dist/debug/decoding/calldata.js +0 -244
  169. package/dist/debug/decoding/calldata.js.map +0 -1
  170. package/dist/debug/decoding/memory.d.ts +0 -4
  171. package/dist/debug/decoding/memory.d.ts.map +0 -1
  172. package/dist/debug/decoding/memory.js +0 -216
  173. package/dist/debug/decoding/memory.js.map +0 -1
  174. package/dist/debug/decoding/stack.d.ts +0 -9
  175. package/dist/debug/decoding/stack.d.ts.map +0 -1
  176. package/dist/debug/decoding/stack.js +0 -84
  177. package/dist/debug/decoding/stack.js.map +0 -1
  178. package/dist/debug/decoding/storage.d.ts +0 -7
  179. package/dist/debug/decoding/storage.d.ts.map +0 -1
  180. package/dist/debug/decoding/storage.js +0 -393
  181. package/dist/debug/decoding/storage.js.map +0 -1
@@ -1,244 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cd_decodeArrayContents = cd_decodeArrayContents;
4
- exports.cd_decodeValue = cd_decodeValue;
5
- const util_1 = require("@ethereumjs/util");
6
- const solc_typed_ast_1 = require("solc-typed-ast");
7
- const __1 = require("..");
8
- const __2 = require("../..");
9
- function cd_decodeInt(typ, loc, calldata) {
10
- const numAddr = (0, __2.checkAddrOoB)(loc.address, calldata);
11
- // OoB access
12
- if (numAddr === undefined) {
13
- return undefined;
14
- }
15
- let res = (0, __2.bigEndianBufToBigint)(calldata.slice(numAddr, numAddr + 32));
16
- // Convert signed negative 2's complement values
17
- if (typ.signed && (res & (BigInt(1) << BigInt(typ.nBits - 1))) !== BigInt(0)) {
18
- // Mask out any 1's above the number's size
19
- res = res & ((BigInt(1) << BigInt(typ.nBits)) - BigInt(1));
20
- res = -((BigInt(1) << BigInt(typ.nBits)) - res);
21
- }
22
- (0, solc_typed_ast_1.assert)((0, __2.fits)(res, typ), `Decoded value ${res} from ${loc} doesn't fit in expected type ${typ.pp()}`);
23
- return [res, 32];
24
- }
25
- function cd_decodeAddress(loc, calldata) {
26
- const numAddr = (0, __2.checkAddrOoB)(loc.address, calldata);
27
- if (numAddr === undefined) {
28
- return undefined;
29
- }
30
- const res = new util_1.Address(calldata.slice(numAddr + 12, numAddr + 32));
31
- return [res, 32];
32
- }
33
- function cd_decodeFixedBytes(typ, loc, calldata) {
34
- const numAddr = (0, __2.checkAddrOoB)(loc.address, calldata);
35
- if (numAddr === undefined) {
36
- return undefined;
37
- }
38
- const res = calldata.slice(numAddr, numAddr + typ.size);
39
- return [res, 32];
40
- }
41
- function cd_decodeBool(loc, calldata) {
42
- const numAddr = (0, __2.checkAddrOoB)(loc.address, calldata);
43
- if (numAddr === undefined) {
44
- return undefined;
45
- }
46
- const res = (0, __2.bigEndianBufToBigint)(calldata.slice(numAddr, numAddr + 32)) !== BigInt(0);
47
- return [res, 32];
48
- }
49
- function cd_decodeBytes(loc, calldata) {
50
- let res = undefined;
51
- let bytesOffset = loc.address;
52
- let bytesSize = 0;
53
- const bytesLoc = loc.kind;
54
- const len = cd_decodeInt(__2.uint256, { kind: bytesLoc, address: bytesOffset }, calldata);
55
- if (len == undefined) {
56
- return undefined;
57
- }
58
- if (len[0] >= __2.MAX_ARR_DECODE_LIMIT) {
59
- return undefined;
60
- }
61
- const numLen = Number(len[0]);
62
- bytesOffset += BigInt(len[1]);
63
- bytesSize += len[1];
64
- bytesSize += numLen + (numLen % 32 === 0 ? 0 : 1 - (numLen % 32));
65
- const checkedArrDynOffset = (0, __2.checkAddrOoB)(bytesOffset, calldata);
66
- if (checkedArrDynOffset === undefined) {
67
- return undefined;
68
- }
69
- if (checkedArrDynOffset + numLen > calldata.length) {
70
- return undefined;
71
- }
72
- res = calldata.slice(checkedArrDynOffset, checkedArrDynOffset + numLen);
73
- return [res, bytesSize];
74
- }
75
- function cd_decodeString(loc, calldata) {
76
- const bytes = cd_decodeBytes(loc, calldata);
77
- if (bytes === undefined) {
78
- return undefined;
79
- }
80
- const str = (0, util_1.bytesToUtf8)(bytes[0]);
81
- return [str, bytes[1]];
82
- }
83
- function cd_decodeArrayContents(abiType, origType, arrOffset, numLen, calldata, infer) {
84
- let arrBytesSize = 0;
85
- const arrBaseOffset = arrOffset;
86
- const res = [];
87
- const elT = origType !== undefined ? origType.elementT : undefined;
88
- for (let i = 0; i < numLen; i++) {
89
- const elementTuple = cd_decodeValue(abiType.elementT, elT, { kind: __1.DataLocationKind.CallData, address: arrOffset }, calldata, arrBaseOffset, infer);
90
- if (elementTuple === undefined) {
91
- return undefined;
92
- }
93
- const [elementVal, elementSize] = elementTuple;
94
- res.push(elementVal);
95
- arrOffset += BigInt(elementSize);
96
- arrBytesSize += elementSize;
97
- }
98
- return [res, arrBytesSize];
99
- }
100
- function cd_decodeArray(abiType, origType, loc, calldata, infer) {
101
- let arrOffset = loc.address;
102
- let arrBytesSize = 0;
103
- let len;
104
- if (abiType.size !== undefined) {
105
- len = [abiType.size, 0];
106
- }
107
- else {
108
- len = cd_decodeInt(__2.uint256, loc, calldata);
109
- }
110
- if (len == undefined) {
111
- return undefined;
112
- }
113
- if (len[0] >= __2.MAX_ARR_DECODE_LIMIT) {
114
- return undefined;
115
- }
116
- const numLen = Number(len[0]);
117
- arrOffset += BigInt(len[1]);
118
- arrBytesSize += len[1];
119
- const contentsRes = cd_decodeArrayContents(abiType, origType, arrOffset, numLen, calldata, infer);
120
- if (contentsRes === undefined) {
121
- return undefined;
122
- }
123
- return [contentsRes[0], arrBytesSize + contentsRes[1]];
124
- }
125
- function cd_decodeTuple(abiType, origType, loc, calldata, infer) {
126
- let tupleOffset = loc.address;
127
- let size = 0;
128
- const tupleRes = [];
129
- const tupleBase = tupleOffset;
130
- let origElementTs = undefined;
131
- if (origType instanceof solc_typed_ast_1.PointerType) {
132
- origType = origType.to;
133
- }
134
- if (origType instanceof solc_typed_ast_1.ArrayType) {
135
- (0, solc_typed_ast_1.assert)(origType.size !== undefined && Number(origType.size) === abiType.elements.length, `Expected original type to be a fixed size array of size ${abiType.elements.length} not {0}`, origType);
136
- origElementTs = origType.elementT;
137
- }
138
- else if (origType instanceof solc_typed_ast_1.UserDefinedType) {
139
- const def = origType.definition;
140
- (0, solc_typed_ast_1.assert)(def instanceof solc_typed_ast_1.StructDefinition && def.vMembers.length === abiType.elements.length, `Expected struct with ${abiType.elements.length} fields not {0}`, origType);
141
- try {
142
- origElementTs = def.vMembers.map((fieldDef) => (0, __1.changeToLocation)(infer.variableDeclarationToTypeNode(fieldDef), solc_typed_ast_1.DataLocation.CallData));
143
- }
144
- catch (e) {
145
- return undefined;
146
- }
147
- }
148
- else if (origType instanceof solc_typed_ast_1.TupleType) {
149
- const origNonNullTypes = origType.elements.filter((t) => t !== null);
150
- (0, solc_typed_ast_1.assert)(abiType.elements.length === origNonNullTypes.length, `Unexpected mismatch between abi tuple {0} and original tuple {1} in decoding`, abiType, origType);
151
- origElementTs = origNonNullTypes;
152
- }
153
- else if (origType !== undefined) {
154
- throw new Error(`Unexpected original type ${origType.pp()} for abi tuple type ${abiType.pp()}`);
155
- }
156
- for (let i = 0; i < abiType.elements.length; i++) {
157
- const fieldT = abiType.elements[i];
158
- const origElementT = origElementTs === undefined
159
- ? undefined
160
- : origElementTs instanceof solc_typed_ast_1.TypeNode
161
- ? origElementTs
162
- : origElementTs[i];
163
- (0, solc_typed_ast_1.assert)(fieldT !== null, ``);
164
- const decodeRes = cd_decodeValue(fieldT, origElementT, { kind: loc.kind, address: tupleOffset }, calldata, tupleBase, infer);
165
- if (decodeRes === undefined) {
166
- return undefined;
167
- }
168
- const [elVal, elementSize] = decodeRes;
169
- tupleOffset += BigInt(elementSize);
170
- size += elementSize;
171
- tupleRes.push(elVal);
172
- }
173
- if (origType === undefined || origType instanceof solc_typed_ast_1.ArrayType || origType instanceof solc_typed_ast_1.TupleType) {
174
- return [tupleRes, size];
175
- }
176
- const fields = origType.definition.vMembers;
177
- const structRes = {};
178
- for (let i = 0; i < fields.length; i++) {
179
- structRes[fields[i].name] = tupleRes[i];
180
- }
181
- return [structRes, size];
182
- }
183
- function cd_decodePointer(abiType, origType, loc, calldata, callDataBaseOff, infer) {
184
- const offRes = cd_decodeInt(__2.uint256, loc, calldata);
185
- if (offRes === undefined) {
186
- return undefined;
187
- }
188
- // Adjust relative pointers read **FROM** calldata by the current base offset
189
- const off = offRes[0] + callDataBaseOff;
190
- const size = offRes[1];
191
- const pointedToLoc = {
192
- kind: __1.DataLocationKind.CallData,
193
- address: off
194
- };
195
- const origPointedToType = origType === undefined ? undefined : origType.to;
196
- const pointedToValue = cd_decodeValue(abiType.to, origPointedToType, pointedToLoc, calldata, callDataBaseOff, infer);
197
- if (pointedToValue === undefined) {
198
- return undefined;
199
- }
200
- return [pointedToValue[0], size];
201
- }
202
- function cd_decodeValue(abiType, origType, loc, calldata, callDataBaseOff = BigInt(4), infer) {
203
- /*
204
- console.error(
205
- `cd_decodeValue(${abiType.pp()}, ${origType ? origType.pp() : undefined}, ${ppLoc(loc)})`
206
- );
207
- */
208
- if (abiType instanceof solc_typed_ast_1.IntType) {
209
- return cd_decodeInt(abiType, loc, calldata);
210
- }
211
- if (abiType instanceof solc_typed_ast_1.AddressType) {
212
- return cd_decodeAddress(loc, calldata);
213
- }
214
- if (abiType instanceof solc_typed_ast_1.FixedBytesType) {
215
- return cd_decodeFixedBytes(abiType, loc, calldata);
216
- }
217
- if (abiType instanceof solc_typed_ast_1.BoolType) {
218
- return cd_decodeBool(loc, calldata);
219
- }
220
- if (abiType instanceof solc_typed_ast_1.ArrayType) {
221
- (0, solc_typed_ast_1.assert)(origType === undefined || origType instanceof solc_typed_ast_1.ArrayType, `Unexpected original type {0}`, origType);
222
- return cd_decodeArray(abiType, origType, loc, calldata, infer);
223
- }
224
- if (abiType instanceof solc_typed_ast_1.BytesType) {
225
- return cd_decodeBytes(loc, calldata);
226
- }
227
- if (abiType instanceof solc_typed_ast_1.StringType) {
228
- return cd_decodeString(loc, calldata);
229
- }
230
- if (abiType instanceof solc_typed_ast_1.TupleType) {
231
- return cd_decodeTuple(abiType, origType, loc, calldata, infer);
232
- }
233
- if (abiType instanceof solc_typed_ast_1.PointerType) {
234
- (0, solc_typed_ast_1.assert)(origType === undefined || origType instanceof solc_typed_ast_1.PointerType, `Unexpected original type {0}`, origType);
235
- // Fixed-sized data types are emitted inline, not in the dynamic region
236
- if ((0, __1.isABITypeStaticSized)(abiType)) {
237
- const origPointedToType = origType === undefined ? undefined : origType.to;
238
- return cd_decodeValue(abiType.to, origPointedToType, loc, calldata, callDataBaseOff, infer);
239
- }
240
- return cd_decodePointer(abiType, origType, loc, calldata, callDataBaseOff, infer);
241
- }
242
- throw new Error(`NYI decoding ${abiType.pp()}`);
243
- }
244
- //# sourceMappingURL=calldata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"calldata.js","sourceRoot":"","sources":["../../../src/debug/decoding/calldata.ts"],"names":[],"mappings":";;AAwJA,wDAsCC;AAqMD,wCA6EC;AAhdD,2CAAwD;AACxD,mDAgBwB;AACxB,0BAMY;AACZ,6BAOe;AAEf,SAAS,YAAY,CACjB,GAAY,EACZ,GAAqB,EACrB,QAAoB;IAEpB,MAAM,OAAO,GAAG,IAAA,gBAAY,EAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEpD,aAAa;IACb,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,GAAG,IAAA,wBAAoB,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;IAEtE,gDAAgD;IAChD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,2CAA2C;QAC3C,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,IAAA,uBAAM,EACF,IAAA,QAAI,EAAC,GAAG,EAAE,GAAG,CAAC,EACd,iBAAiB,GAAG,SAAS,GAAG,iCAAiC,GAAG,CAAC,EAAE,EAAE,EAAE,CAC9E,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAqB,EAAE,QAAgB;IAC7D,MAAM,OAAO,GAAG,IAAA,gBAAY,EAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,cAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,mBAAmB,CACxB,GAAmB,EACnB,GAAqB,EACrB,QAAgB;IAEhB,MAAM,OAAO,GAAG,IAAA,gBAAY,EAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CAAC,GAAqB,EAAE,QAAgB;IAC1D,MAAM,OAAO,GAAG,IAAA,gBAAY,EAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,wBAAoB,EAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,GAAqB,EAAE,QAAgB;IAC3D,IAAI,GAAG,GAA2B,SAAS,CAAC;IAE5C,IAAI,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC;IAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IAE1B,MAAM,GAAG,GAAG,YAAY,CAAC,WAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEtF,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,wBAAoB,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9B,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,SAAS,IAAI,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;IAElE,MAAM,mBAAmB,GAAG,IAAA,gBAAY,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEhE,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,MAAM,CAAC,CAAC;IAExE,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,eAAe,CAAC,GAAqB,EAAE,QAAgB;IAC5D,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,kBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAElC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,sBAAsB,CAClC,OAAkB,EAClB,QAA+B,EAC/B,SAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,KAAgB;IAEhB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,aAAa,GAAG,SAAS,CAAC;IAEhC,MAAM,GAAG,GAAU,EAAE,CAAC;IAEtB,MAAM,GAAG,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,cAAc,CAC/B,OAAO,CAAC,QAAQ,EAChB,GAAG,EACH,EAAE,IAAI,EAAE,oBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EACvD,QAAQ,EACR,aAAa,EACb,KAAK,CACR,CAAC;QAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC;QAE/C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErB,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QACjC,YAAY,IAAI,WAAW,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CACnB,OAAkB,EAClB,QAA+B,EAC/B,GAAqB,EACrB,QAAgB,EAChB,KAAgB;IAEhB,IAAI,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,GAAiC,CAAC;IAEtC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,YAAY,CAAC,WAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,wBAAoB,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9B,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;IAEvB,MAAM,WAAW,GAAG,sBAAsB,CACtC,OAAO,EACP,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,KAAK,CACR,CAAC;IAEF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,cAAc,CACnB,OAAkB,EAClB,QAA8B,EAC9B,GAAqB,EACrB,QAAgB,EAChB,KAAgB;IAEhB,IAAI,WAAW,GAAW,GAAG,CAAC,OAAO,CAAC;IACtC,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAU,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,WAAW,CAAC;IAE9B,IAAI,aAAa,GAAsC,SAAS,CAAC;IAEjE,IAAI,QAAQ,YAAY,4BAAW,EAAE,CAAC;QAClC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ,YAAY,0BAAS,EAAE,CAAC;QAChC,IAAA,uBAAM,EACF,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,EAChF,2DAA2D,OAAO,CAAC,QAAQ,CAAC,MAAM,UAAU,EAC5F,QAAQ,CACX,CAAC;QAEF,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACtC,CAAC;SAAM,IAAI,QAAQ,YAAY,gCAAe,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC;QAEhC,IAAA,uBAAM,EACF,GAAG,YAAY,iCAAgB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,MAAM,EAClF,wBAAwB,OAAO,CAAC,QAAQ,CAAC,MAAM,iBAAiB,EAChE,QAAQ,CACX,CAAC;QAEF,IAAI,CAAC;YACD,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1C,IAAA,oBAAgB,EACZ,KAAK,CAAC,6BAA6B,CAAC,QAAQ,CAAC,EAC7C,6BAAe,CAAC,QAAQ,CAC3B,CACJ,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;SAAM,IAAI,QAAQ,YAAY,0BAAS,EAAE,CAAC;QACvC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAe,CAAC;QACnF,IAAA,uBAAM,EACF,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EACnD,8EAA8E,EAC9E,OAAO,EACP,QAAQ,CACX,CAAC;QACF,aAAa,GAAG,gBAAgB,CAAC;IACrC,CAAC;SAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACX,4BAA4B,QAAQ,CAAC,EAAE,EAAE,uBAAuB,OAAO,CAAC,EAAE,EAAE,EAAE,CACjF,CAAC;IACN,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEnC,MAAM,YAAY,GACd,aAAa,KAAK,SAAS;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,aAAa,YAAY,yBAAQ;gBACjC,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAA,uBAAM,EAAC,MAAM,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,cAAc,CAC5B,MAAM,EACN,YAAY,EACZ,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,EACxC,QAAQ,EACR,SAAS,EACT,KAAK,CACR,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;QAEvC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QACnC,IAAI,IAAI,WAAW,CAAC;QAEpB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,YAAY,0BAAS,IAAI,QAAQ,YAAY,0BAAS,EAAE,CAAC;QAC3F,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAI,QAAQ,CAAC,UAA+B,CAAC,QAAQ,CAAC;IAClE,MAAM,SAAS,GAAQ,EAAE,CAAC;IAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,gBAAgB,CACrB,OAAoB,EACpB,QAAiC,EACjC,GAAqB,EACrB,QAAgB,EAChB,eAAuB,EACvB,KAAgB;IAEhB,MAAM,MAAM,GAAG,YAAY,CAAC,WAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,6EAA6E;IAC7E,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvB,MAAM,YAAY,GAAiB;QAC/B,IAAI,EAAE,oBAAgB,CAAC,QAAQ;QAC/B,OAAO,EAAE,GAAG;KACf,CAAC;IAEF,MAAM,iBAAiB,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;IAE3E,MAAM,cAAc,GAAG,cAAc,CACjC,OAAO,CAAC,EAAE,EACV,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,KAAK,CACR,CAAC;IAEF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,SAAgB,cAAc,CAC1B,OAAiB,EACjB,QAA8B,EAC9B,GAAqB,EACrB,QAAgB,EAChB,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,EAC3B,KAAgB;IAEhB;;;;MAIE;IAEF,IAAI,OAAO,YAAY,wBAAO,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,YAAY,4BAAW,EAAE,CAAC;QACjC,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,YAAY,+BAAc,EAAE,CAAC;QACpC,OAAO,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,OAAO,YAAY,yBAAQ,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,YAAY,0BAAS,EAAE,CAAC;QAC/B,IAAA,uBAAM,EACF,QAAQ,KAAK,SAAS,IAAI,QAAQ,YAAY,0BAAS,EACvD,8BAA8B,EAC9B,QAAQ,CACX,CAAC;QAEF,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,YAAY,0BAAS,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,YAAY,2BAAU,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO,YAAY,0BAAS,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,YAAY,4BAAW,EAAE,CAAC;QACjC,IAAA,uBAAM,EACF,QAAQ,KAAK,SAAS,IAAI,QAAQ,YAAY,4BAAW,EACzD,8BAA8B,EAC9B,QAAQ,CACX,CAAC;QAEF,uEAAuE;QACvE,IAAI,IAAA,wBAAoB,EAAC,OAAO,CAAC,EAAE,CAAC;YAChC,MAAM,iBAAiB,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAE3E,OAAO,cAAc,CACjB,OAAO,CAAC,EAAE,EACV,iBAAiB,EACjB,GAAG,EACH,QAAQ,EACR,eAAe,EACf,KAAK,CACR,CAAC;QACN,CAAC;QAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC"}
@@ -1,4 +0,0 @@
1
- import { InferType, TypeNode } from "solc-typed-ast";
2
- import { LinearMemoryLocation, Memory } from "..";
3
- export declare function mem_decodeValue(typ: TypeNode, loc: LinearMemoryLocation, memory: Memory, infer: InferType): undefined | [any, number];
4
- //# sourceMappingURL=memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,SAAS,EAQT,QAAQ,EAMX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAkC,oBAAoB,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAwSlF,wBAAgB,eAAe,CAC3B,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,oBAAoB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,GACjB,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CA+D3B"}
@@ -1,216 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mem_decodeValue = mem_decodeValue;
4
- const util_1 = require("@ethereumjs/util");
5
- const solc_typed_ast_1 = require("solc-typed-ast");
6
- const __1 = require("..");
7
- const __2 = require("../..");
8
- function mem_decodeInt(typ, loc, memory) {
9
- const numAddr = (0, __2.checkAddrOoB)(loc.address, memory);
10
- // OoB access
11
- if (numAddr === undefined) {
12
- return undefined;
13
- }
14
- let res = (0, __2.bigEndianBufToBigint)(memory.slice(numAddr, numAddr + 32));
15
- // Convert signed negative 2's complement values
16
- if (typ.signed && (res & (BigInt(1) << BigInt(typ.nBits - 1))) !== BigInt(0)) {
17
- // Mask out any 1's above the number's size
18
- res = res & ((BigInt(1) << BigInt(typ.nBits)) - BigInt(1));
19
- res = -((BigInt(1) << BigInt(typ.nBits)) - res);
20
- }
21
- (0, solc_typed_ast_1.assert)((0, __2.fits)(res, typ), `Decoded value ${res} from ${loc} doesn't fit in expected type ${typ.pp()}`);
22
- return [res, 32];
23
- }
24
- function mem_decodeAddress(loc, memory) {
25
- const numAddr = (0, __2.checkAddrOoB)(loc.address, memory);
26
- if (numAddr === undefined) {
27
- return undefined;
28
- }
29
- return [new util_1.Address(memory.slice(numAddr + 12, numAddr + 32)), 32];
30
- }
31
- function mem_decodeFixedBytes(typ, loc, memory) {
32
- const numAddr = (0, __2.checkAddrOoB)(loc.address, memory);
33
- if (numAddr === undefined) {
34
- return undefined;
35
- }
36
- return [memory.slice(numAddr, numAddr + typ.size), 32];
37
- }
38
- function mem_decodeBool(loc, memory) {
39
- const numAddr = (0, __2.checkAddrOoB)(loc.address, memory);
40
- if (numAddr === undefined) {
41
- return undefined;
42
- }
43
- const res = (0, __2.bigEndianBufToBigint)(memory.slice(numAddr, numAddr + 32)) !== BigInt(0);
44
- return [res, 32];
45
- }
46
- function mem_decodeEnum(def, loc, memory) {
47
- const intType = (0, solc_typed_ast_1.enumToIntType)(def);
48
- return mem_decodeInt(intType, loc, memory);
49
- }
50
- function mem_decodeBytes(loc, memory) {
51
- let bytesOffset = loc.address;
52
- let bytesSize = 0;
53
- const lenRes = mem_decodeInt(__2.uint256, loc, memory);
54
- if (lenRes == undefined) {
55
- return undefined;
56
- }
57
- if (lenRes[0] >= __2.MAX_ARR_DECODE_LIMIT) {
58
- return undefined;
59
- }
60
- const numLen = Number(lenRes[0]);
61
- bytesOffset += BigInt(lenRes[1]);
62
- bytesSize += lenRes[1];
63
- bytesSize += numLen + (numLen % 32 === 0 ? 0 : 1 - (numLen % 32));
64
- const checkedArrDynOffset = (0, __2.checkAddrOoB)(bytesOffset, memory);
65
- if (checkedArrDynOffset === undefined) {
66
- return undefined;
67
- }
68
- if (checkedArrDynOffset + numLen > memory.length) {
69
- return undefined;
70
- }
71
- const res = memory.slice(checkedArrDynOffset, checkedArrDynOffset + numLen);
72
- return [res, bytesSize];
73
- }
74
- function mem_decodeString(loc, memory) {
75
- const bytes = mem_decodeBytes(loc, memory);
76
- if (bytes === undefined) {
77
- return undefined;
78
- }
79
- const str = (0, util_1.bytesToUtf8)(bytes[0]);
80
- return [str, bytes[1]];
81
- }
82
- function mem_decodeArray(typ, loc, memory, infer) {
83
- let arrOffset = loc.address;
84
- let arrBytesSize = 0;
85
- let numLen;
86
- if (typ.size === undefined) {
87
- const len = mem_decodeInt(__2.uint256, loc, memory);
88
- if (len == undefined) {
89
- return undefined;
90
- }
91
- if (len[0] >= __2.MAX_ARR_DECODE_LIMIT) {
92
- return undefined;
93
- }
94
- numLen = Number(len[0]);
95
- arrOffset += BigInt(len[1]);
96
- arrBytesSize += len[1];
97
- }
98
- else {
99
- if (typ.size >= __2.MAX_ARR_DECODE_LIMIT) {
100
- return undefined;
101
- }
102
- numLen = Number(typ.size);
103
- }
104
- const res = [];
105
- for (let i = 0; i < numLen; i++) {
106
- const elementTuple = mem_decodeValue(typ.elementT, { kind: loc.kind, address: arrOffset }, memory, infer);
107
- if (elementTuple === undefined) {
108
- return undefined;
109
- }
110
- const [elementVal, elementSize] = elementTuple;
111
- res.push(elementVal);
112
- arrOffset += BigInt(elementSize);
113
- arrBytesSize += elementSize;
114
- }
115
- return [res, arrBytesSize];
116
- }
117
- function mem_decodeTuple(typ, loc, memory, infer) {
118
- let tupleOffset = loc.address;
119
- let size = 0;
120
- const res = [];
121
- for (const field of typ.elements) {
122
- (0, solc_typed_ast_1.assert)(field !== null, ``);
123
- const decodeRes = mem_decodeValue(field, { kind: loc.kind, address: tupleOffset }, memory, infer);
124
- if (decodeRes === undefined) {
125
- return undefined;
126
- }
127
- const [elVal, elementSize] = decodeRes;
128
- tupleOffset += BigInt(elementSize);
129
- size += elementSize;
130
- res.push(elVal);
131
- }
132
- return [res, size];
133
- }
134
- function mem_decodeStruct(def, loc, memory, infer) {
135
- const res = {};
136
- let size = 0;
137
- let offset = loc.address;
138
- for (let i = 0; i < def.vMembers.length; i++) {
139
- const field = def.vMembers[i];
140
- const fieldT = (0, solc_typed_ast_1.specializeType)(infer.typeNameToTypeNode(field.vType), solc_typed_ast_1.DataLocation.Memory);
141
- const fieldRes = mem_decodeValue(fieldT, { kind: loc.kind, address: offset }, memory, infer);
142
- if (fieldRes === undefined) {
143
- return undefined;
144
- }
145
- res[field.name] = fieldRes[0];
146
- size += fieldRes[1];
147
- offset += BigInt(fieldRes[1]);
148
- }
149
- return [res, size];
150
- }
151
- function mem_decodePointer(typ, loc, memory, infer) {
152
- (0, solc_typed_ast_1.assert)(typ.location === solc_typed_ast_1.DataLocation.Memory, `Unexpected pointer to ${typ.location} in memory`);
153
- const offRes = mem_decodeInt(__2.uint256, loc, memory);
154
- if (offRes === undefined) {
155
- return undefined;
156
- }
157
- const size = offRes[1];
158
- const pointedToLoc = {
159
- kind: __1.DataLocationKind.Memory,
160
- address: offRes[0]
161
- };
162
- const pointedToValue = mem_decodeValue(typ.to, pointedToLoc, memory, infer);
163
- if (pointedToValue === undefined) {
164
- return undefined;
165
- }
166
- return [pointedToValue[0], size];
167
- }
168
- function mem_decodeValue(typ, loc, memory, infer) {
169
- //console.error(`mem_decodeValue(${typ.pp()}, ${ppLoc(loc)})`);
170
- if (typ instanceof solc_typed_ast_1.IntType) {
171
- return mem_decodeInt(typ, loc, memory);
172
- }
173
- if (typ instanceof solc_typed_ast_1.AddressType) {
174
- return mem_decodeAddress(loc, memory);
175
- }
176
- if (typ instanceof solc_typed_ast_1.FixedBytesType) {
177
- return mem_decodeFixedBytes(typ, loc, memory);
178
- }
179
- if (typ instanceof solc_typed_ast_1.BoolType) {
180
- return mem_decodeBool(loc, memory);
181
- }
182
- if (typ instanceof solc_typed_ast_1.UserDefinedType) {
183
- const def = typ.definition;
184
- if (def instanceof solc_typed_ast_1.EnumDefinition) {
185
- return mem_decodeEnum(def, loc, memory);
186
- }
187
- if (def instanceof solc_typed_ast_1.ContractDefinition) {
188
- return mem_decodeAddress(loc, memory);
189
- }
190
- if (def instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
191
- const underlyingType = infer.typeNameToTypeNode(def.underlyingType);
192
- return mem_decodeValue(underlyingType, loc, memory, infer);
193
- }
194
- if (def instanceof solc_typed_ast_1.StructDefinition) {
195
- return mem_decodeStruct(def, loc, memory, infer);
196
- }
197
- throw new Error(`NYI decoding user defined type ${typ.pp()}`);
198
- }
199
- if (typ instanceof solc_typed_ast_1.ArrayType) {
200
- return mem_decodeArray(typ, loc, memory, infer);
201
- }
202
- if (typ instanceof solc_typed_ast_1.BytesType) {
203
- return mem_decodeBytes(loc, memory);
204
- }
205
- if (typ instanceof solc_typed_ast_1.StringType) {
206
- return mem_decodeString(loc, memory);
207
- }
208
- if (typ instanceof solc_typed_ast_1.TupleType) {
209
- return mem_decodeTuple(typ, loc, memory, infer);
210
- }
211
- if (typ instanceof solc_typed_ast_1.PointerType) {
212
- return mem_decodePointer(typ, loc, memory, infer);
213
- }
214
- throw new Error(`NYI decoding ${typ.pp()}`);
215
- }
216
- //# sourceMappingURL=memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/debug/decoding/memory.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { InferType, IntType, TypeNode } from "solc-typed-ast";
2
- import { Stack, StackLocation } from "..";
3
- export declare function st_decodeInt(typ: IntType, loc: StackLocation, stack: Stack): undefined | bigint;
4
- /**
5
- * Decode a single value from a stack location. All values in the stack span exactly
6
- * one slot (32 bytes). Returns the decoded value or undefined (if it failed decoding for some reason)
7
- */
8
- export declare function st_decodeValue(typ: TypeNode, loc: StackLocation, stack: Stack, infer: InferType): any;
9
- //# sourceMappingURL=stack.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/stack.ts"],"names":[],"mappings":"AACA,OAAO,EAQH,SAAS,EACT,OAAO,EACP,QAAQ,EAGX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAO1C,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,CAqB/F;AA0CD;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,GACjB,GAAG,CAuCL"}
@@ -1,84 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.st_decodeInt = st_decodeInt;
4
- exports.st_decodeValue = st_decodeValue;
5
- const solc_typed_ast_1 = require("solc-typed-ast");
6
- const utils_1 = require("../../utils");
7
- function fetchStackWord(offsetFromTop, stack) {
8
- return stack.length <= offsetFromTop ? undefined : stack[stack.length - offsetFromTop - 1];
9
- }
10
- function st_decodeInt(typ, loc, stack) {
11
- const word = fetchStackWord(loc.offsetFromTop, stack);
12
- if (word === undefined) {
13
- return undefined;
14
- }
15
- let res = (0, utils_1.bigEndianBufToBigint)(word);
16
- if (typ.signed && (res & (BigInt(1) << BigInt(typ.nBits - 1))) !== BigInt(0)) {
17
- // Mask out any 1's above the number's size
18
- res = res & ((BigInt(1) << BigInt(typ.nBits)) - BigInt(1));
19
- res = -((BigInt(1) << BigInt(typ.nBits)) - res);
20
- }
21
- // Convert signed negative 2's complement values
22
- (0, solc_typed_ast_1.assert)((0, utils_1.fits)(res, typ), `Decoded value ${res} from ${loc} doesn't fit in expected type ${typ.pp()}`);
23
- return res;
24
- }
25
- function st_decodeAddress(loc, stack) {
26
- const addrWord = fetchStackWord(loc.offsetFromTop, stack);
27
- if (addrWord === undefined) {
28
- return undefined;
29
- }
30
- return (0, utils_1.wordToAddress)(addrWord);
31
- }
32
- function st_decodeFixedBytes(typ, loc, stack) {
33
- const addrWord = fetchStackWord(loc.offsetFromTop, stack);
34
- if (addrWord === undefined) {
35
- return undefined;
36
- }
37
- return addrWord.slice(0, typ.size);
38
- }
39
- function st_decodeBool(loc, stack) {
40
- const addrWord = fetchStackWord(loc.offsetFromTop, stack);
41
- if (addrWord === undefined) {
42
- return undefined;
43
- }
44
- return (0, utils_1.bigEndianBufToBigint)(addrWord) !== BigInt(0);
45
- }
46
- function st_decodeEnum(def, loc, stack) {
47
- const intType = (0, solc_typed_ast_1.enumToIntType)(def);
48
- return st_decodeInt(intType, loc, stack);
49
- }
50
- /**
51
- * Decode a single value from a stack location. All values in the stack span exactly
52
- * one slot (32 bytes). Returns the decoded value or undefined (if it failed decoding for some reason)
53
- */
54
- function st_decodeValue(typ, loc, stack, infer) {
55
- //console.error(`st_decodeValue(${typ.pp()}, ${ppLoc(loc)})`);
56
- if (typ instanceof solc_typed_ast_1.IntType) {
57
- return st_decodeInt(typ, loc, stack);
58
- }
59
- if (typ instanceof solc_typed_ast_1.AddressType) {
60
- return st_decodeAddress(loc, stack);
61
- }
62
- if (typ instanceof solc_typed_ast_1.FixedBytesType) {
63
- return st_decodeFixedBytes(typ, loc, stack);
64
- }
65
- if (typ instanceof solc_typed_ast_1.BoolType) {
66
- return st_decodeBool(loc, stack);
67
- }
68
- if (typ instanceof solc_typed_ast_1.UserDefinedType) {
69
- const def = typ.definition;
70
- if (def instanceof solc_typed_ast_1.EnumDefinition) {
71
- return st_decodeEnum(def, loc, stack);
72
- }
73
- if (def instanceof solc_typed_ast_1.ContractDefinition) {
74
- return st_decodeAddress(loc, stack);
75
- }
76
- if (def instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
77
- const underlyingType = infer.typeNameToTypeNode(def.underlyingType);
78
- return st_decodeValue(underlyingType, loc, stack, infer);
79
- }
80
- throw new Error(`NYI decoding user defined type ${typ.pp()} from the stack`);
81
- }
82
- throw new Error(`NYI decoding ${typ.pp()} from the stack`);
83
- }
84
- //# sourceMappingURL=stack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../../src/debug/decoding/stack.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { InferType, MappingType, TypeNode } from "solc-typed-ast";
2
- import { MapKeys, Storage, StorageLocation } from "..";
3
- export declare function nextWord(loc: StorageLocation): StorageLocation;
4
- export declare function roundLocToType(loc: StorageLocation, typ: TypeNode, infer: InferType): StorageLocation;
5
- export declare function stor_decodeMap(typ: MappingType, loc: StorageLocation, storage: Storage, infer: InferType, mapKeys?: MapKeys): undefined | [any, StorageLocation];
6
- export declare function stor_decodeValue(typ: TypeNode, loc: StorageLocation, storage: Storage, infer: InferType, mapKeys?: MapKeys): undefined | [any, StorageLocation];
7
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAQH,SAAS,EAET,WAAW,EAKX,QAAQ,EAKX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEH,OAAO,EACP,OAAO,EACP,eAAe,EAGlB,MAAM,IAAI,CAAC;AA2OZ,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,CAM9D;AAED,wBAAgB,cAAc,CAC1B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,SAAS,GACjB,eAAe,CAMjB;AA2OD,wBAAgB,cAAc,CAC1B,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,OAAO,GAClB,SAAS,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAkDpC;AAED,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,OAAO,GAClB,SAAS,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAsDpC"}