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
package/dist/debug/abi.js CHANGED
@@ -1,98 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.changeToLocation = changeToLocation;
4
- exports.decodeMethodArgs = decodeMethodArgs;
5
- exports.isTypeUnknownContract = isTypeUnknownContract;
6
- exports.buildMsgDataViews = buildMsgDataViews;
7
- exports.toABIEncodedType = toABIEncodedType;
8
- exports.isABITypeStaticSized = isABITypeStaticSized;
9
- exports.findMethodBySelector = findMethodBySelector;
3
+ exports.buildMsgViews = buildMsgViews;
4
+ exports.buildEventViews = buildEventViews;
10
5
  exports.decodeEvent = decodeEvent;
11
- const utils_1 = require("ethereum-cryptography/utils");
12
6
  const solc_typed_ast_1 = require("solc-typed-ast");
13
- const abi_1 = require("solc-typed-ast/dist/types/abi");
14
- const _1 = require(".");
15
- const utils_2 = require("../utils");
16
- function changeToLocation(typ, newLoc) {
17
- if (typ instanceof solc_typed_ast_1.PointerType) {
18
- return new solc_typed_ast_1.PointerType(changeToLocation(typ.to, newLoc), newLoc, typ.kind);
19
- }
20
- if (typ instanceof solc_typed_ast_1.ArrayType) {
21
- return new solc_typed_ast_1.ArrayType(changeToLocation(typ.elementT, newLoc), typ.size);
22
- }
23
- if (typ instanceof solc_typed_ast_1.MappingType) {
24
- (0, solc_typed_ast_1.assert)(newLoc === solc_typed_ast_1.DataLocation.Storage, `Cannot change type of mapping ${typ.pp()} to ${newLoc}`);
25
- return typ;
26
- }
27
- if (typ instanceof solc_typed_ast_1.TupleType) {
28
- return new solc_typed_ast_1.TupleType(typ.elements.map((elT) => changeToLocation(elT, newLoc)));
29
- }
30
- if (typ instanceof solc_typed_ast_1.IntType ||
31
- typ instanceof solc_typed_ast_1.BoolType ||
32
- typ instanceof solc_typed_ast_1.AddressType ||
33
- typ instanceof solc_typed_ast_1.FixedBytesType ||
34
- typ instanceof solc_typed_ast_1.StringType ||
35
- typ instanceof solc_typed_ast_1.BytesType ||
36
- typ instanceof solc_typed_ast_1.UserDefinedType) {
37
- return typ;
38
- }
39
- throw new Error(`Cannot change location of type ${typ.pp()}`);
40
- }
7
+ const view_1 = require("./decoding/view");
8
+ const utils_1 = require("../utils");
9
+ const view_2 = require("./decoding/calldata/view");
10
+ const value_1 = require("./decoding/value");
11
+ const decoding_1 = require("./decoding");
41
12
  /**
42
- * Return the static size that the type `typ` will take in the standard ABI encoding of
43
- * arguments.
13
+ * Return true if the given callee requires a selector
14
+ * @param callee
15
+ * @returns
44
16
  */
45
- function abiStaticTypeSize(typ) {
46
- if (typ instanceof solc_typed_ast_1.IntType ||
47
- typ instanceof solc_typed_ast_1.AddressType ||
48
- typ instanceof solc_typed_ast_1.FixedBytesType ||
49
- typ instanceof solc_typed_ast_1.BoolType ||
50
- typ instanceof solc_typed_ast_1.PointerType) {
51
- return 32;
52
- }
53
- if (typ instanceof solc_typed_ast_1.UserDefinedType) {
54
- const def = typ.definition;
55
- if (def instanceof solc_typed_ast_1.EnumDefinition ||
56
- def instanceof solc_typed_ast_1.ContractDefinition ||
57
- def instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
58
- return 32;
59
- }
60
- throw new Error(`NYI decoding user-defined type ${typ.pp()}`);
61
- }
62
- if (typ instanceof solc_typed_ast_1.TupleType) {
63
- let res = 0;
64
- for (const elT of typ.elements) {
65
- (0, solc_typed_ast_1.assert)(elT !== null, ``);
66
- res += abiStaticTypeSize(elT);
67
- }
68
- return res;
17
+ function hasSelector(callee) {
18
+ if (callee instanceof solc_typed_ast_1.VariableDeclaration) {
19
+ return true;
69
20
  }
70
- throw new Error(`NYI decoding type ${typ.pp()}`);
71
- }
72
- /**
73
- * Given a callee AST Node (FunctionDefinition or VariableDeclaration
74
- * corresponding to a getter), some msg `data`, that lives in location
75
- * determined by `kind`, a type inference class as well as an `encoderVersion`
76
- * try and decode the function arguments for that particular callee from the
77
- * data.
78
- */
79
- function decodeMethodArgs(callee, data, kind, infer, encoderVersion) {
80
- const dataViews = buildMsgDataViews(callee, data, kind, infer, encoderVersion);
81
- const res = [];
82
- for (let i = 0; i < dataViews.length; i++) {
83
- const name = dataViews[i][0];
84
- const view = dataViews[i][1];
85
- if (view === undefined) {
86
- res.push([name, undefined]);
87
- continue;
88
- }
89
- (0, solc_typed_ast_1.assert)(view.abiType !== undefined && view.loc.kind === _1.DataLocationKind.CallData, ``);
90
- const val = (0, _1.cd_decodeValue)(view.abiType, view.type, view.loc, data, BigInt(4), infer);
91
- res.push([name, val ? val[0] : val]);
21
+ if (callee.isConstructor ||
22
+ callee.kind === solc_typed_ast_1.FunctionKind.Receive ||
23
+ callee.kind === solc_typed_ast_1.FunctionKind.Fallback) {
24
+ return false;
92
25
  }
93
- return res;
26
+ return true;
94
27
  }
95
- // @todo migrate to solc-typed-ast
96
28
  function isTypeUnknownContract(t) {
97
29
  return (t instanceof solc_typed_ast_1.UserDefinedTypeName &&
98
30
  t.referencedDeclaration < 0 &&
@@ -100,17 +32,13 @@ function isTypeUnknownContract(t) {
100
32
  t.typeString.startsWith("interface ") ||
101
33
  t.typeString.startsWith("library ")));
102
34
  }
103
- /**
104
- * An ABI-decoder implementation that is resilient to failures in some arguments decoding.
105
- * This function will return partial decoding results. This is needed since the fuzzer may not
106
- * always produce inputs that decode in their entirety.
107
- */
108
- function buildMsgDataViews(callee, data, kind, infer, encoderVersion) {
35
+ function buildMsgViews(callee, infer) {
109
36
  const res = [];
110
- const selector = callee instanceof solc_typed_ast_1.FunctionDefinition
111
- ? (0, utils_2.getFunctionSelector)(callee, infer)
112
- : infer.signatureHash(callee);
113
- (0, solc_typed_ast_1.assert)(selector === (0, utils_1.bytesToHex)(data.slice(0, 4)), `Expected selector ${selector} instead got ${data.slice(0, 4)}`);
37
+ let base = 0n;
38
+ if (hasSelector(callee)) {
39
+ res.push(["<selector>", (0, view_2.makeCalldataView)(utils_1.bytes4, 0n, base)]);
40
+ base = 4n;
41
+ }
114
42
  const formals = callee instanceof solc_typed_ast_1.FunctionDefinition
115
43
  ? callee.vParameters.vParameters.map((argDef) => [
116
44
  argDef.name,
@@ -121,194 +49,51 @@ function buildMsgDataViews(callee, data, kind, infer, encoderVersion) {
121
49
  : infer
122
50
  .getterArgsAndReturn(callee)[0]
123
51
  .map((typ, i) => [`ARG_${i}`, typ]);
124
- let staticOff = 4;
125
- const len = data.length;
126
- for (const [name, originalType] of formals) {
127
- const typ = toABIEncodedType(originalType, infer, encoderVersion);
128
- const staticSize = abiStaticTypeSize(typ);
129
- const loc = staticOff + staticSize <= len ? { kind, address: BigInt(staticOff) } : undefined;
130
- staticOff += staticSize;
131
- const val = loc ? { type: originalType, abiType: typ, loc } : undefined;
132
- res.push([name, val]);
133
- }
52
+ const views = (0, view_2.makeCalldataViews)(formals.map((x) => (0, decoding_1.simplifyType)(x[1], infer, solc_typed_ast_1.DataLocation.CallData)), base);
53
+ res.push(...(0, utils_1.zip)(formals.map((x) => x[0]), views));
134
54
  return res;
135
55
  }
136
- /**
137
- * Determine if the specified type `typ` is dynamic or not. Dynamic means
138
- * that if we are trying to read `typ` at location `loc`, in `loc` there should be just a
139
- * uint256 offset into memory/storage/calldata, where the actual data lives. Otherwise
140
- * (if the type is "static"), the direct encoding of the data will start at `loc`.
141
- *
142
- * Usually "static" types are just the value types - i.e. anything of statically
143
- * known size that fits in a uint256. As per https://docs.soliditylang.org/en/latest/abi-spec.html#formal-specification-of-the-encoding
144
- * there are several exceptions to the rule when encoding types in calldata:
145
- *
146
- * 1. Fixed size arrays with fixed-sized element types
147
- * 2. Tuples where all the tuple elements are fixed-size
148
- *
149
- * TODO(dimo):
150
- * 1. Check again that its not possible for tuples in internal calls to somehow get encoded on the stack
151
- * 2. What happens with return tuples? Are they always in memory?
152
- */
153
- function isTypeEncodingDynamic(typ) {
154
- if (typ instanceof solc_typed_ast_1.PointerType ||
155
- typ instanceof solc_typed_ast_1.ArrayType ||
156
- typ instanceof solc_typed_ast_1.StringType ||
157
- typ instanceof solc_typed_ast_1.BytesType) {
158
- return true;
159
- }
160
- // Tuples in calldata with static elements
161
- if (typ instanceof solc_typed_ast_1.TupleType) {
162
- for (const elT of typ.elements) {
163
- (0, solc_typed_ast_1.assert)(elT !== null, ``);
164
- if (isTypeEncodingDynamic(elT)) {
165
- return true;
166
- }
167
- }
168
- return false;
169
- }
170
- return false;
56
+ class BaseEventView extends view_1.View {
171
57
  }
172
- /**
173
- * Convert an internal TypeNode to the external TypeNode that would correspond to it
174
- * after ABI-encoding with encoder version `encoderVersion`. Follows the following rules:
175
- *
176
- * 1. Contract definitions turned to address.
177
- * 2. Enum definitions turned to uint of minimal fitting size.
178
- * 3. Any storage pointer types are converted to memory pointer types.
179
- * 4. Throw an error on any nested mapping types.
180
- * 5. Fixed-size arrays with fixed-sized element types are encoded as inlined tuples
181
- * 6. Structs with fixed-sized elements are encoded as inlined tuples
182
- *
183
- * @see https://docs.soliditylang.org/en/latest/abi-spec.html
184
- */
185
- function toABIEncodedType(type, infer, encoderVersion) {
186
- if (type instanceof solc_typed_ast_1.MappingType) {
187
- throw new Error("Cannot abi-encode mapping types");
58
+ class EventPayloadView extends BaseEventView {
59
+ decode(state) {
60
+ return this.loc.decode(state.payload);
188
61
  }
189
- if (type instanceof solc_typed_ast_1.ArrayType) {
190
- const encodedElementT = toABIEncodedType(type.elementT, infer, encoderVersion);
191
- if (type.size !== undefined) {
192
- const elements = [];
193
- for (let i = 0; i < type.size; i++) {
194
- elements.push(encodedElementT);
195
- }
196
- return new solc_typed_ast_1.TupleType(elements);
197
- }
198
- return new solc_typed_ast_1.ArrayType(encodedElementT, type.size);
199
- }
200
- if (type instanceof solc_typed_ast_1.PointerType) {
201
- const toT = toABIEncodedType(type.to, infer, encoderVersion);
202
- return isTypeEncodingDynamic(toT) ? new solc_typed_ast_1.PointerType(toT, type.location) : toT;
203
- }
204
- if (type instanceof solc_typed_ast_1.UserDefinedType) {
205
- if (type.definition instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
206
- return infer.typeNameToTypeNode(type.definition.underlyingType);
207
- }
208
- if (type.definition instanceof solc_typed_ast_1.ContractDefinition) {
209
- return new solc_typed_ast_1.AddressType(false);
210
- }
211
- if (type.definition instanceof solc_typed_ast_1.EnumDefinition) {
212
- return (0, solc_typed_ast_1.enumToIntType)(type.definition);
213
- }
214
- if (type.definition instanceof solc_typed_ast_1.StructDefinition) {
215
- (0, solc_typed_ast_1.assert)(encoderVersion !== abi_1.ABIEncoderVersion.V1, "Getters of struct return type are not supported by ABI encoder v1");
216
- const fieldTs = type.definition.vMembers.map((fieldT) => infer.variableDeclarationToTypeNode(fieldT));
217
- return new solc_typed_ast_1.TupleType(fieldTs.map((fieldT) => toABIEncodedType(fieldT, infer, encoderVersion)));
218
- }
62
+ pp() {
63
+ return `<${this.type.pp()}@${this.loc} in event payload>`;
219
64
  }
220
- return type;
221
65
  }
222
- function isABITypeStaticSized(type) {
223
- if (type instanceof solc_typed_ast_1.ArrayType) {
224
- return type.size !== undefined && isABITypeStaticSized(type.elementT);
225
- }
226
- if (type instanceof solc_typed_ast_1.PointerType) {
227
- return isABITypeStaticSized(type.to);
228
- }
229
- if (type instanceof solc_typed_ast_1.TupleType) {
230
- for (const elT of type.elements) {
231
- (0, solc_typed_ast_1.assert)(elT !== null, ``);
232
- if (!isABITypeStaticSized(elT)) {
233
- return false;
234
- }
66
+ class TopicPayloadView extends BaseEventView {
67
+ decode(state) {
68
+ if (this.type instanceof solc_typed_ast_1.PointerType) {
69
+ return new value_1.DecodingFailure(`Cannot decode indexed complex type ${this.type.pp()}`);
235
70
  }
236
- return true;
237
- }
238
- if (type instanceof solc_typed_ast_1.StringType || type instanceof solc_typed_ast_1.BytesType) {
239
- return false;
71
+ const inner = (0, view_2.makeCalldataView)(this.type, 0n, 0n);
72
+ return inner.decode(state.topics[this.loc]);
240
73
  }
241
- if (type instanceof solc_typed_ast_1.IntType ||
242
- type instanceof solc_typed_ast_1.AddressType ||
243
- type instanceof solc_typed_ast_1.BoolType ||
244
- type instanceof solc_typed_ast_1.FixedBytesType) {
245
- return true;
246
- }
247
- throw new Error(`NYI isABITypeStaticSized(${type.pp()})`);
248
- }
249
- /**
250
- * Given a 4-byte selector, a target contract and an `InferType` object return
251
- * the ASTNode that corresponds to the target callee. Must be either a
252
- * `FunctionDefinition`, a `VariableDeclaration` (for public state var getters),
253
- * or undefined (if we cannot identify it)
254
- */
255
- function findMethodBySelector(selector, contract, infer) {
256
- const strSelector = typeof selector === "string" ? selector : (0, utils_1.bytesToHex)(selector);
257
- for (const base of contract.vLinearizedBaseContracts) {
258
- if (!base) {
259
- continue;
260
- }
261
- for (const fun of base.vFunctions) {
262
- const funSel = (0, utils_2.getFunctionSelector)(fun, infer);
263
- if (funSel == strSelector) {
264
- return fun;
265
- }
266
- }
267
- for (const v of base.vStateVariables) {
268
- if (v.visibility !== solc_typed_ast_1.StateVariableVisibility.Public) {
269
- continue;
270
- }
271
- let hash;
272
- try {
273
- hash = infer.signatureHash(v);
274
- }
275
- catch (e) {
276
- continue;
277
- }
278
- if (hash == strSelector) {
279
- return v;
280
- }
281
- }
74
+ pp() {
75
+ return `<${this.type.pp()} in topic ${this.loc}>`;
282
76
  }
283
- return undefined;
284
77
  }
285
- /**
286
- * Given an `EventDefInfo` and a concrete event `EventDesc`, build `DataView`s for decoding the event arguments.
287
- * Supports decoding indexed arguments.
288
- */
289
- function buildEventDataViews(evtDef, evtDesc, infer) {
290
- let staticOff = 0;
291
- const res = [];
292
- const len = evtDesc.payload.length;
78
+ function buildEventViews(evtDef, infer) {
79
+ const [indexedArgs, nonIndexedArgs] = (0, utils_1.split)(evtDef.args.map((x, i) => [i, x]), ([, [, , indexed]]) => indexed);
293
80
  let topicIdx = evtDef.definition.anonymous ? 0 : 1;
294
- for (const [name, originalType, indexed] of evtDef.args) {
295
- if (indexed) {
296
- res.push([name, topicIdx < evtDesc.topics.length ? topicIdx++ : undefined]);
297
- continue;
298
- }
299
- // @todo (dimo) Is it ok to hardcode the encoder version here?
300
- const typ = toABIEncodedType(originalType, infer, abi_1.ABIEncoderVersion.V2);
301
- const staticSize = abiStaticTypeSize(typ);
302
- const loc = staticOff + staticSize <= len
303
- ? { kind: _1.DataLocationKind.Memory, address: BigInt(staticOff) }
304
- : undefined;
305
- staticOff += staticSize;
306
- const val = loc
307
- ? { type: originalType, abiType: typ, loc }
308
- : undefined;
309
- res.push([name, val]);
310
- }
311
- return res;
81
+ const indexedViews = indexedArgs.map(([, [, type]]) => new TopicPayloadView((0, decoding_1.simplifyType)(type, infer, solc_typed_ast_1.DataLocation.CallData), topicIdx++));
82
+ const nonIndexedViews = (0, view_2.makeCalldataViews)(nonIndexedArgs.map(([, [, type]]) => (0, decoding_1.simplifyType)(type, infer, solc_typed_ast_1.DataLocation.CallData)), 0n).map((v) => new EventPayloadView(v.type, v));
83
+ const allArgDesc = [
84
+ ...indexedViews.map((view, i) => [
85
+ indexedArgs[i][0],
86
+ indexedArgs[i][1][0],
87
+ view
88
+ ]),
89
+ ...nonIndexedViews.map((view, i) => [
90
+ nonIndexedArgs[i][0],
91
+ nonIndexedArgs[i][1][0],
92
+ view
93
+ ])
94
+ ];
95
+ allArgDesc.sort();
96
+ return allArgDesc.map(([, name, view]) => [name, view]);
312
97
  }
313
98
  /**
314
99
  * Decode a raw event. Currently only supports non-anonmyous events.
@@ -322,27 +107,8 @@ function decodeEvent(artifactManager, evt) {
322
107
  return undefined;
323
108
  }
324
109
  const infer = artifactManager.infer(defInfo.artifact.compilerVersion);
325
- const dataViews = buildEventDataViews(defInfo, evt, infer);
326
- const argVals = [];
327
- for (const [[name, view], [, type]] of (0, utils_2.zip)(dataViews, defInfo.args)) {
328
- if (view === undefined) {
329
- // Failed building a view
330
- argVals.push([name, undefined]);
331
- continue;
332
- }
333
- if (typeof view === "number") {
334
- if ((0, solc_typed_ast_1.isReferenceType)(type)) {
335
- // For indexed reference types just a hash of the value is
336
- // stored in the topic. Can't decode.
337
- argVals.push([name, undefined]);
338
- }
339
- const decodedVal = (0, _1.mem_decodeValue)(type, { kind: _1.DataLocationKind.Memory, address: 0n }, evt.topics[view], infer);
340
- argVals.push([name, decodedVal ? decodedVal[0] : undefined]);
341
- continue;
342
- }
343
- const decodedVal = (0, _1.mem_decodeValue)(type, view.loc, evt.payload, infer);
344
- argVals.push([name, decodedVal ? decodedVal[0] : undefined]);
345
- }
110
+ const dataViews = buildEventViews(defInfo, infer);
111
+ const argVals = dataViews.map(([name, view]) => [name, view.decode(evt)]);
346
112
  return {
347
113
  def: defInfo,
348
114
  args: argVals
@@ -1 +1 @@
1
- {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { PrefixedHexString } from "@ethereumjs/util";
2
- import { ASTContext, ASTNode, ContractDefinition, FunctionDefinition, InferType, SourceUnit, VariableDeclaration } from "solc-typed-ast";
3
- import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
4
- import { DecodedBytecodeSourceMapEntry, EventDefInfo, EventDesc, PartialCompiledContract, PartialSolcOutput, RawAST } from "../..";
5
- import { HexString } from "../../artifacts";
1
+ import { ContractDefinition, FunctionDefinition, InferType, VariableDeclaration } from "solc-typed-ast";
2
+ import { PartialSolcOutput } from "../../artifacts/solc";
3
+ import { DecodedBytecodeSourceMapEntry } from "../../utils/srcmap";
4
+ import { EventDefInfo, EventDesc, HexString } from "../types";
5
+ import { ArtifactInfo, BytecodeInfo, ContractInfo, SourceFileInfo } from "./types";
6
6
  export interface IArtifactManager {
7
7
  getContractFromDeployedBytecode(code: Uint8Array): ContractInfo | undefined;
8
8
  getContractFromCreationBytecode(code: Uint8Array): ContractInfo | undefined;
@@ -12,43 +12,9 @@ export interface IArtifactManager {
12
12
  getFileById(id: number, code: Uint8Array, isCreation: boolean): SourceFileInfo | undefined;
13
13
  infer(version: string): InferType;
14
14
  findMethod(selector: HexString | Uint8Array): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
15
+ findEntryPoint(data: Uint8Array, contract: ContractInfo): FunctionDefinition | VariableDeclaration | undefined;
15
16
  getEventDefInfo(topic: bigint | Uint8Array | EventDesc): EventDefInfo | undefined;
16
- }
17
- export interface BytecodeInfo {
18
- generatedFileMap: Map<number, SourceFileInfo>;
19
- srcMap: DecodedBytecodeSourceMapEntry[];
20
- offsetToIndexMap: Map<number, number>;
21
- }
22
- export interface ContractInfo {
23
- artifact: ArtifactInfo;
24
- contractArtifact: PartialCompiledContract;
25
- contractName: string;
26
- fileName: string;
27
- ast: ContractDefinition | undefined;
28
- bytecode: BytecodeInfo;
29
- deployedBytecode: BytecodeInfo;
30
- mdHash: PrefixedHexString | undefined;
31
- }
32
- export interface ArtifactInfo {
33
- artifact: PartialSolcOutput;
34
- units: SourceUnit[];
35
- ctx: ASTContext;
36
- compilerVersion: string;
37
- abiEncoderVersion: ABIEncoderVersion;
38
- fileMap: Map<number, SourceFileInfo>;
39
- srcMap: Map<string, ASTNode>;
40
- }
41
- export declare enum SourceFileType {
42
- Solidity = "solidity",
43
- InternalYul = "internal_yul"
44
- }
45
- export interface SourceFileInfo {
46
- contents: string | undefined;
47
- rawAst: RawAST;
48
- ast: SourceUnit | undefined;
49
- name: string;
50
- fileIndex: number;
51
- type: SourceFileType;
17
+ getContractInfo(contract: ContractDefinition): ContractInfo | undefined;
52
18
  }
53
19
  export declare function getOffsetSrc(off: number, bytecode: BytecodeInfo): DecodedBytecodeSourceMapEntry;
54
20
  /**
@@ -71,13 +37,22 @@ export declare class ArtifactManager implements IArtifactManager {
71
37
  private pickABIEncoderVersion;
72
38
  constructor(artifacts: Array<PartialSolcOutput | [PartialSolcOutput, string]>);
73
39
  artifacts(): ArtifactInfo[];
40
+ getContractInfo(contract: ContractDefinition): ContractInfo | undefined;
74
41
  getContractFromMDHash(hash: HexString): ContractInfo | undefined;
75
42
  getContractFromDeployedBytecode(bytecode: Uint8Array): ContractInfo | undefined;
76
43
  getContractFromCreationBytecode(creationBytecode: Uint8Array): ContractInfo | undefined;
77
44
  getFileById(id: number, arg: Uint8Array | ContractInfo, isCreation: boolean): SourceFileInfo | undefined;
78
45
  contracts(): ContractInfo[];
79
46
  infer(version: string): InferType;
80
- findMethod(selector: HexString | Uint8Array): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
47
+ findMethod(selector: HexString | Uint8Array, info?: ContractInfo): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
48
+ /**
49
+ * Given a msg.data and a target contract, compute the intended AST entry point. If any.
50
+ * This handles the following cases:
51
+ * - receive functions
52
+ * - fallback functions
53
+ * - normal function match
54
+ */
55
+ findEntryPoint(data: Uint8Array, info: ContractInfo): FunctionDefinition | VariableDeclaration | undefined;
81
56
  getEventDefInfo(arg: bigint | Uint8Array | EventDesc): EventDefInfo | undefined;
82
57
  }
83
58
  //# sourceMappingURL=artifact_manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../../src/debug/artifact_manager/artifact_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../../src/debug/artifact_manager/artifact_manager.ts"],"names":[],"mappings":"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"}