sol-dbg 0.6.13 → 0.7.1

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 (169) 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 -21
  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 +3 -2
  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 +74 -0
  32. package/dist/debug/decoding/calldata/view.d.ts.map +1 -0
  33. package/dist/debug/decoding/calldata/view.js +397 -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/index.d.ts +2 -0
  48. package/dist/debug/decoding/memory/index.d.ts.map +1 -0
  49. package/dist/debug/decoding/memory/index.js +6 -0
  50. package/dist/debug/decoding/memory/index.js.map +1 -0
  51. package/dist/debug/decoding/memory/view.d.ts +44 -0
  52. package/dist/debug/decoding/memory/view.d.ts.map +1 -0
  53. package/dist/debug/decoding/memory/view.js +183 -0
  54. package/dist/debug/decoding/memory/view.js.map +1 -0
  55. package/dist/debug/decoding/stack/index.d.ts +2 -0
  56. package/dist/debug/decoding/stack/index.d.ts.map +1 -0
  57. package/dist/debug/decoding/stack/index.js +6 -0
  58. package/dist/debug/decoding/stack/index.js.map +1 -0
  59. package/dist/debug/decoding/stack/view.d.ts +29 -0
  60. package/dist/debug/decoding/stack/view.d.ts.map +1 -0
  61. package/dist/debug/decoding/stack/view.js +116 -0
  62. package/dist/debug/decoding/stack/view.js.map +1 -0
  63. package/dist/debug/decoding/storage/index.d.ts +2 -0
  64. package/dist/debug/decoding/storage/index.d.ts.map +1 -0
  65. package/dist/debug/decoding/storage/index.js +6 -0
  66. package/dist/debug/decoding/storage/index.js.map +1 -0
  67. package/dist/debug/decoding/storage/view.d.ts +90 -0
  68. package/dist/debug/decoding/storage/view.d.ts.map +1 -0
  69. package/dist/debug/decoding/storage/view.js +465 -0
  70. package/dist/debug/decoding/storage/view.js.map +1 -0
  71. package/dist/debug/decoding/utils.d.ts +17 -0
  72. package/dist/debug/decoding/utils.d.ts.map +1 -0
  73. package/dist/debug/decoding/utils.js +43 -0
  74. package/dist/debug/decoding/utils.js.map +1 -0
  75. package/dist/debug/decoding/value.d.ts +50 -0
  76. package/dist/debug/decoding/value.d.ts.map +1 -0
  77. package/dist/debug/decoding/value.js +106 -0
  78. package/dist/debug/decoding/value.js.map +1 -0
  79. package/dist/debug/decoding/view.d.ts +20 -0
  80. package/dist/debug/decoding/view.d.ts.map +1 -0
  81. package/dist/debug/decoding/view.js +15 -0
  82. package/dist/debug/decoding/view.js.map +1 -0
  83. package/dist/debug/foundry_cheatcodes.js +6 -6
  84. package/dist/debug/foundry_cheatcodes.js.map +1 -1
  85. package/dist/debug/layout.d.ts +4 -6
  86. package/dist/debug/layout.d.ts.map +1 -1
  87. package/dist/debug/layout.js +13 -77
  88. package/dist/debug/layout.js.map +1 -1
  89. package/dist/debug/opcode_interposing.js +3 -3
  90. package/dist/debug/opcode_interposing.js.map +1 -1
  91. package/dist/debug/opcodes.d.ts.map +1 -1
  92. package/dist/debug/opcodes.js +3 -1
  93. package/dist/debug/opcodes.js.map +1 -1
  94. package/dist/debug/tracers/sol_debugger.d.ts.map +1 -1
  95. package/dist/debug/tracers/sol_debugger.js +2 -1
  96. package/dist/debug/tracers/sol_debugger.js.map +1 -1
  97. package/dist/debug/tracers/transformers/basic_info.d.ts.map +1 -1
  98. package/dist/debug/tracers/transformers/basic_info.js +4 -3
  99. package/dist/debug/tracers/transformers/basic_info.js.map +1 -1
  100. package/dist/debug/tracers/transformers/events.js +2 -2
  101. package/dist/debug/tracers/transformers/events.js.map +1 -1
  102. package/dist/debug/tracers/transformers/exc_info.d.ts +15 -0
  103. package/dist/debug/tracers/transformers/exc_info.d.ts.map +1 -0
  104. package/dist/debug/tracers/transformers/exc_info.js +39 -0
  105. package/dist/debug/tracers/transformers/exc_info.js.map +1 -0
  106. package/dist/debug/tracers/transformers/ext_stack.d.ts.map +1 -1
  107. package/dist/debug/tracers/transformers/ext_stack.js +11 -26
  108. package/dist/debug/tracers/transformers/ext_stack.js.map +1 -1
  109. package/dist/debug/tracers/transformers/index.d.ts +1 -0
  110. package/dist/debug/tracers/transformers/index.d.ts.map +1 -1
  111. package/dist/debug/tracers/transformers/index.js +1 -0
  112. package/dist/debug/tracers/transformers/index.js.map +1 -1
  113. package/dist/debug/tracers/transformers/int_stack.d.ts.map +1 -1
  114. package/dist/debug/tracers/transformers/int_stack.js +5 -13
  115. package/dist/debug/tracers/transformers/int_stack.js.map +1 -1
  116. package/dist/debug/tracers/transformers/keccak256_invert.js +4 -4
  117. package/dist/debug/tracers/transformers/keccak256_invert.js.map +1 -1
  118. package/dist/debug/tracers/transformers/ret_info.d.ts +1 -1
  119. package/dist/debug/tracers/transformers/ret_info.d.ts.map +1 -1
  120. package/dist/debug/tracers/transformers/ret_info.js +46 -32
  121. package/dist/debug/tracers/transformers/ret_info.js.map +1 -1
  122. package/dist/debug/types.d.ts +63 -22
  123. package/dist/debug/types.d.ts.map +1 -1
  124. package/dist/debug/types.js.map +1 -1
  125. package/dist/utils/index.d.ts +1 -0
  126. package/dist/utils/index.d.ts.map +1 -1
  127. package/dist/utils/index.js +1 -0
  128. package/dist/utils/index.js.map +1 -1
  129. package/dist/utils/misc.d.ts +16 -11
  130. package/dist/utils/misc.d.ts.map +1 -1
  131. package/dist/utils/misc.js +37 -49
  132. package/dist/utils/misc.js.map +1 -1
  133. package/dist/utils/pp.d.ts +3 -1
  134. package/dist/utils/pp.d.ts.map +1 -1
  135. package/dist/utils/pp.js +10 -27
  136. package/dist/utils/pp.js.map +1 -1
  137. package/dist/utils/solidity.d.ts +11 -0
  138. package/dist/utils/solidity.d.ts.map +1 -0
  139. package/dist/utils/solidity.js +69 -0
  140. package/dist/utils/solidity.js.map +1 -0
  141. package/dist/utils/test_runner.d.ts +5 -2
  142. package/dist/utils/test_runner.d.ts.map +1 -1
  143. package/dist/utils/test_runner.js +11 -7
  144. package/dist/utils/test_runner.js.map +1 -1
  145. package/dist/utils/trace.d.ts +5 -1
  146. package/dist/utils/trace.d.ts.map +1 -1
  147. package/dist/utils/trace.js +16 -0
  148. package/dist/utils/trace.js.map +1 -1
  149. package/dist/utils/types.d.ts +9 -0
  150. package/dist/utils/types.d.ts.map +1 -0
  151. package/dist/utils/types.js +3 -0
  152. package/dist/utils/types.js.map +1 -0
  153. package/package.json +8 -4
  154. package/dist/debug/decoding/calldata.d.ts +0 -6
  155. package/dist/debug/decoding/calldata.d.ts.map +0 -1
  156. package/dist/debug/decoding/calldata.js +0 -244
  157. package/dist/debug/decoding/calldata.js.map +0 -1
  158. package/dist/debug/decoding/memory.d.ts +0 -4
  159. package/dist/debug/decoding/memory.d.ts.map +0 -1
  160. package/dist/debug/decoding/memory.js +0 -216
  161. package/dist/debug/decoding/memory.js.map +0 -1
  162. package/dist/debug/decoding/stack.d.ts +0 -9
  163. package/dist/debug/decoding/stack.d.ts.map +0 -1
  164. package/dist/debug/decoding/stack.js +0 -84
  165. package/dist/debug/decoding/stack.js.map +0 -1
  166. package/dist/debug/decoding/storage.d.ts +0 -7
  167. package/dist/debug/decoding/storage.d.ts.map +0 -1
  168. package/dist/debug/decoding/storage.js +0 -393
  169. package/dist/debug/decoding/storage.js.map +0 -1
@@ -4,6 +4,7 @@ export type TransformerF<T extends object, T1 extends T> = (vm: VM, step: Interp
4
4
  export * from "./basic_info";
5
5
  export * from "./contract_lifetime";
6
6
  export * from "./events";
7
+ export * from "./exc_info";
7
8
  export * from "./ext_stack";
8
9
  export * from "./int_stack";
9
10
  export * from "./keccak256_invert";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,CAAC,IAAI,CACvD,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,EAAE,EAAE,KACV,EAAE,CAAC;AAER,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,CAAC,IAAI,CACvD,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,EAAE,EAAE,KACV,EAAE,CAAC;AAER,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./basic_info"), exports);
18
18
  __exportStar(require("./contract_lifetime"), exports);
19
19
  __exportStar(require("./events"), exports);
20
+ __exportStar(require("./exc_info"), exports);
20
21
  __exportStar(require("./ext_stack"), exports);
21
22
  __exportStar(require("./int_stack"), exports);
22
23
  __exportStar(require("./keccak256_invert"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAUA,+CAA6B;AAC7B,sDAAoC;AACpC,2CAAyB;AACzB,8CAA4B;AAC5B,8CAA4B;AAC5B,qDAAmC;AACnC,uCAAqB;AACrB,6CAA2B;AAC3B,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAUA,+CAA6B;AAC7B,sDAAoC;AACpC,2CAAyB;AACzB,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,qDAAmC;AACnC,uCAAqB;AACrB,6CAA2B;AAC3B,2CAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"int_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAKH,iBAAiB,EAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAqED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,CAAC,SAAS,MAAM,GAAG,aAAa,GAAG,iBAAiB,GAAG,UAAU,EAEjE,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,EACnC,eAAe,EAAE,gBAAgB,EACjC,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CA0HhC"}
1
+ {"version":3,"file":"int_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAoB,iBAAiB,EAAS,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACjC;AA4DD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,CAAC,SAAS,MAAM,GAAG,aAAa,GAAG,iBAAiB,GAAG,UAAU,EAEjE,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,EACnC,eAAe,EAAE,gBAAgB,EACjC,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CA0HhC"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addInternalFrameInfo = addInternalFrameInfo;
4
4
  const solc_typed_ast_1 = require("solc-typed-ast");
5
- const decoding_1 = require("../../decoding");
5
+ const utils_1 = require("../../decoding/utils");
6
6
  const opcodes_1 = require("../../opcodes");
7
7
  const types_1 = require("../../types");
8
8
  const ext_stack_1 = require("./ext_stack");
9
+ const decoding_1 = require("../../decoding");
9
10
  function topFrame(step) {
10
11
  if (step.intStack.length > 0) {
11
12
  return step.intStack[step.intStack.length - 1];
@@ -15,7 +16,7 @@ function topFrame(step) {
15
16
  }
16
17
  /**
17
18
  * Given a callable (function definition or public state variable) try to build
18
- * `DataView`s for all the callable arguments. On failure return undefined.
19
+ * `View`s for all the callable arguments. On failure return undefined.
19
20
  */
20
21
  function buildFunArgViews(callee, stack, contractInfo, artifactManager) {
21
22
  const res = [];
@@ -40,22 +41,13 @@ function buildFunArgViews(callee, stack, contractInfo, artifactManager) {
40
41
  let offsetFromTop = -1;
41
42
  for (let i = formals.length - 1; i >= 0; i--) {
42
43
  const [name, typ] = formals[i];
43
- const stackSize = (0, decoding_1.isCalldataType2Slots)(typ) ? 2 : 1;
44
+ const stackSize = (0, utils_1.isCalldataArrayType)(typ) ? 2 : 1;
44
45
  offsetFromTop += stackSize;
45
46
  if (offsetFromTop > stack.length) {
46
47
  // Stack underflow. Could be due to optimized code?
47
48
  return undefined;
48
49
  }
49
- res.unshift([
50
- name,
51
- {
52
- type: typ,
53
- loc: {
54
- kind: types_1.DataLocationKind.Stack,
55
- offsetFromTop
56
- }
57
- }
58
- ]);
50
+ res.unshift([name, (0, decoding_1.makeStackView)((0, decoding_1.simplifyType)(typ, infer, undefined), offsetFromTop)]);
59
51
  }
60
52
  return res;
61
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"int_stack.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"int_stack.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getKeccakPreimages = getKeccakPreimages;
4
4
  exports.getMapKeys = getMapKeys;
5
5
  exports.addKeccakInvertInfo = addKeccakInvertInfo;
6
- const utils_1 = require("../../../utils");
6
+ const misc_1 = require("../../../utils/misc");
7
7
  const opcodes_1 = require("../../opcodes");
8
8
  /**
9
9
  * Given a trace of contract creation/deletion event compute a gen/kill set summary for the trace.
@@ -28,7 +28,7 @@ function getMapKeys(preImageMap) {
28
28
  continue;
29
29
  }
30
30
  const keySuffix = origKey.slice(-32);
31
- const slot = (0, utils_1.bigEndianBufToBigint)(keySuffix);
31
+ const slot = (0, misc_1.bigEndianBufToBigint)(keySuffix);
32
32
  if (!res.has(slot)) {
33
33
  res.set(slot, []);
34
34
  }
@@ -49,9 +49,9 @@ function addKeccakInvertInfo(vm, step, state, trace) {
49
49
  if (!(lastStep.op.opcode === opcodes_1.OPCODES.SHA3)) {
50
50
  return state;
51
51
  }
52
- const res = (0, utils_1.bigEndianBufToBigint)(state.evmStack[state.evmStack.length - 1]);
52
+ const res = (0, misc_1.bigEndianBufToBigint)(state.evmStack[state.evmStack.length - 1]);
53
53
  const lastStepTop = lastStep.evmStack.length - 1;
54
- const preImage = (0, utils_1.mustReadMem)(lastStep.evmStack[lastStepTop], lastStep.evmStack[lastStepTop - 1], lastStep.memory);
54
+ const preImage = (0, misc_1.mustReadMem)(lastStep.evmStack[lastStepTop], lastStep.evmStack[lastStepTop - 1], lastStep.memory);
55
55
  return {
56
56
  keccak: {
57
57
  from: preImage,
@@ -1 +1 @@
1
- {"version":3,"file":"keccak256_invert.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/keccak256_invert.ts"],"names":[],"mappings":";;AAiBA,gDAOC;AAYD,gCAuBC;AAKD,kDAgCC;AA9FD,0CAAmE;AACnE,2CAAwC;AAWxC;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAA4B;IAC3D,OAAO,KAAK,CAAC,MAAM,CAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAClB,CAAC;AASD;;GAEG;AACH,SAAgB,UAAU,CAAC,WAA8B;IACrD,MAAM,GAAG,GAAY,IAAI,GAAG,EAAE,CAAC;IAE/B,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,sFAAsF;QACtF,oFAAoF;QACpF,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAA,4BAAoB,EAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtB,CAAC;QAED,8HAA8H;QAC9H,gBAAgB;QACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAiC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAC/B,EAAM,EACN,IAAqB,EACrB,KAAQ,EACR,KAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,4BAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAA,mBAAW,EACxB,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,QAAQ,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,EAClC,QAAQ,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,GAAG;SACV;QACD,GAAG,KAAK;KACX,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"keccak256_invert.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/keccak256_invert.ts"],"names":[],"mappings":";;AAiBA,gDAOC;AAYD,gCAuBC;AAKD,kDAgCC;AA9FD,8CAAwE;AACxE,2CAAwC;AAWxC;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAA4B;IAC3D,OAAO,KAAK,CAAC,MAAM,CAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAClB,CAAC;AASD;;GAEG;AACH,SAAgB,UAAU,CAAC,WAA8B;IACrD,MAAM,GAAG,GAAY,IAAI,GAAG,EAAE,CAAC;IAE/B,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,sFAAsF;QACtF,oFAAoF;QACpF,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAA,2BAAoB,EAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtB,CAAC;QAED,8HAA8H;QAC9H,gBAAgB;QACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAiC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAC/B,EAAM,EACN,IAAqB,EACrB,KAAQ,EACR,KAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,2BAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAA,kBAAW,EACxB,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,QAAQ,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,EAClC,QAAQ,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,GAAG;SACV;QACD,GAAG,KAAK;KACX,CAAC;AACN,CAAC"}
@@ -11,7 +11,7 @@ export interface ReturnInfo {
11
11
  };
12
12
  }
13
13
  /**
14
- * Adds return info for steps in the caller context, right after a return.
14
+ * Adds return info for steps in the callee context, right after a return.
15
15
  */
16
16
  export declare function addReturnInfo<T extends object & BasicStepInfo & ExternalFrameInfo>(vm: VM, step: InterpreterStep, state: T, trace: Array<T & ReturnInfo>, artifactManager: IArtifactManager): Promise<T & ReturnInfo>;
17
17
  //# sourceMappingURL=ret_info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ret_info.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAQpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE;QAEN,aAAa,EAAE,MAAM,CAAC;QAEtB,aAAa,EAAE,UAAU,CAAC;QAE1B,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;KAC7B,CAAC;CACL;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,GAAG,iBAAiB,EACpF,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,EAC5B,eAAe,EAAE,gBAAgB,GAClC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAuFzB"}
1
+ {"version":3,"file":"ret_info.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AASpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAI7D,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE;QAEN,aAAa,EAAE,MAAM,CAAC;QAEtB,aAAa,EAAE,UAAU,CAAC;QAE1B,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;KAC7B,CAAC;CACL;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,GAAG,iBAAiB,EACpF,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,EAC5B,eAAe,EAAE,gBAAgB,GAClC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAwFzB"}
@@ -2,32 +2,40 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addReturnInfo = addReturnInfo;
4
4
  const solc_typed_ast_1 = require("solc-typed-ast");
5
- const utils_1 = require("../../../utils");
6
- const decoding_1 = require("../../decoding");
5
+ const misc_1 = require("../../../utils/misc");
7
6
  const opcodes_1 = require("../../opcodes");
8
7
  const types_1 = require("../../types");
9
8
  const ext_stack_1 = require("./ext_stack");
9
+ const view_1 = require("../../decoding/calldata/view");
10
+ const decoding_1 = require("../../decoding");
10
11
  /**
11
- * Adds return info for steps in the caller context, right after a return.
12
+ * Adds return info for steps in the callee context, right after a return.
12
13
  */
13
14
  async function addReturnInfo(vm, step, state, trace, artifactManager) {
14
- if (trace.length === 0) {
15
- return state;
16
- }
17
- const lastStep = trace[trace.length - 1];
18
- if (lastStep.op.opcode !== opcodes_1.OPCODES.RETURN && lastStep.op.opcode !== opcodes_1.OPCODES.STOP) {
15
+ if (state.op.opcode !== opcodes_1.OPCODES.RETURN && state.op.opcode !== opcodes_1.OPCODES.STOP) {
19
16
  return state;
20
17
  }
21
- const lastFrame = (0, ext_stack_1.topExtFrame)(lastStep);
22
- const callStartStep = lastFrame.startStep;
23
- const rawReturnData = lastStep.op.opcode === opcodes_1.OPCODES.RETURN
24
- ? (0, utils_1.mustReadMem)((0, utils_1.stackTop)(lastStep.evmStack), (0, utils_1.stackInd)(lastStep.evmStack, 1), lastStep.memory)
18
+ const extFrame = (0, ext_stack_1.topExtFrame)(state);
19
+ const callStartStep = extFrame.startStep;
20
+ const rawReturnData = state.op.opcode === opcodes_1.OPCODES.RETURN
21
+ ? (0, misc_1.mustReadMem)((0, misc_1.stackTop)(state.evmStack), (0, misc_1.stackInd)(state.evmStack, 1), state.memory)
25
22
  : new Uint8Array(0);
26
- if (!(lastFrame.info &&
27
- (lastFrame.callee instanceof solc_typed_ast_1.FunctionDefinition ||
28
- (lastFrame.callee instanceof solc_typed_ast_1.VariableDeclaration &&
29
- lastFrame.callee.stateVariable &&
30
- lastFrame.callee.visibility === solc_typed_ast_1.StateVariableVisibility.Public)))) {
23
+ // Special case: For creation frames we know that the consturctor doesn't "return anything" at the Solidity level
24
+ if (extFrame.kind === types_1.FrameKind.Creation) {
25
+ return {
26
+ ...state,
27
+ retInfo: {
28
+ callStartStep,
29
+ rawReturnData,
30
+ decodedReturnData: []
31
+ }
32
+ };
33
+ }
34
+ if (!(extFrame.info &&
35
+ (extFrame.callee instanceof solc_typed_ast_1.FunctionDefinition ||
36
+ (extFrame.callee instanceof solc_typed_ast_1.VariableDeclaration &&
37
+ extFrame.callee.stateVariable &&
38
+ extFrame.callee.visibility === solc_typed_ast_1.StateVariableVisibility.Public)))) {
31
39
  return {
32
40
  ...state,
33
41
  retInfo: {
@@ -36,11 +44,15 @@ async function addReturnInfo(vm, step, state, trace, artifactManager) {
36
44
  }
37
45
  };
38
46
  }
39
- const infer = artifactManager.infer(lastFrame.info.artifact.compilerVersion);
40
- const type = lastFrame.callee instanceof solc_typed_ast_1.FunctionDefinition
41
- ? infer.funDefToType(lastFrame.callee)
42
- : infer.getterFunType(lastFrame.callee);
43
- if (type.returns.length === 0) {
47
+ const infer = artifactManager.infer(extFrame.info.artifact.compilerVersion);
48
+ let type;
49
+ try {
50
+ type =
51
+ extFrame.callee instanceof solc_typed_ast_1.FunctionDefinition
52
+ ? infer.funDefToType(extFrame.callee)
53
+ : infer.getterFunType(extFrame.callee);
54
+ }
55
+ catch {
44
56
  return {
45
57
  ...state,
46
58
  retInfo: {
@@ -50,17 +62,19 @@ async function addReturnInfo(vm, step, state, trace, artifactManager) {
50
62
  }
51
63
  };
52
64
  }
53
- const encVer = lastFrame.info.artifact.abiEncoderVersion;
54
- const origType = new solc_typed_ast_1.TupleType(type.returns);
55
- const abiType = new solc_typed_ast_1.TupleType(type.returns.map((t) => infer.toABIEncodedType(t, encVer)));
56
- const decodeRes = (0, decoding_1.cd_decodeValue)(abiType, origType, { kind: types_1.DataLocationKind.CallData, address: 0n }, rawReturnData, 0n, infer);
57
- let decodedReturnData;
58
- if (decodeRes === undefined) {
59
- decodedReturnData = (0, utils_1.repeat)(undefined, type.returns.length);
60
- }
61
- else {
62
- decodedReturnData = decodeRes[0];
65
+ if (type.returns.length === 0) {
66
+ return {
67
+ ...state,
68
+ retInfo: {
69
+ callStartStep,
70
+ rawReturnData,
71
+ decodedReturnData: []
72
+ }
73
+ };
63
74
  }
75
+ // We treat these as in calldata, since they should already be abi-encoded in memory for the Return instruction
76
+ const views = (0, view_1.makeCalldataViews)(type.returns.map((t) => (0, decoding_1.simplifyType)(t, infer, solc_typed_ast_1.DataLocation.CallData)), 0n);
77
+ const decodedReturnData = views.map((v) => v.decode(rawReturnData));
64
78
  return {
65
79
  ...state,
66
80
  retInfo: {
@@ -1 +1 @@
1
- {"version":3,"file":"ret_info.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ret_info.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":";;AAgCA,sCA8FC;AA5HD,mDAMwB;AACxB,8CAAsE;AAEtE,2CAAwC;AACxC,uCAAwC;AAExC,2CAA6D;AAC7D,uDAAiE;AACjE,6CAA8C;AAa9C;;GAEG;AACI,KAAK,UAAU,aAAa,CAC/B,EAAM,EACN,IAAqB,EACrB,KAAQ,EACR,KAA4B,EAC5B,eAAiC;IAEjC,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,IAAI,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,uBAAW,EAAC,KAAK,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC;IAEzC,MAAM,aAAa,GACf,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,MAAM;QAC9B,CAAC,CAAC,IAAA,kBAAW,EAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAA,eAAQ,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;QAClF,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAE5B,iHAAiH;IACjH,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAS,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO;YACH,GAAG,KAAK;YACR,OAAO,EAAE;gBACL,aAAa;gBACb,aAAa;gBACb,iBAAiB,EAAE,EAAE;aACxB;SACJ,CAAC;IACN,CAAC;IAED,IACI,CAAC,CACG,QAAQ,CAAC,IAAI;QACb,CAAC,QAAQ,CAAC,MAAM,YAAY,mCAAkB;YAC1C,CAAC,QAAQ,CAAC,MAAM,YAAY,oCAAmB;gBAC3C,QAAQ,CAAC,MAAM,CAAC,aAAa;gBAC7B,QAAQ,CAAC,MAAM,CAAC,UAAU,KAAK,wCAAuB,CAAC,MAAM,CAAC,CAAC,CAC1E,EACH,CAAC;QACC,OAAO;YACH,GAAG,KAAK;YACR,OAAO,EAAE;gBACL,aAAa;gBACb,aAAa;aAChB;SACJ,CAAC;IACN,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC5E,IAAI,IAAkB,CAAC;IAEvB,IAAI,CAAC;QACD,IAAI;YACA,QAAQ,CAAC,MAAM,YAAY,mCAAkB;gBACzC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO;YACH,GAAG,KAAK;YACR,OAAO,EAAE;gBACL,aAAa;gBACb,aAAa;gBACb,iBAAiB,EAAE,EAAE;aACxB;SACJ,CAAC;IACN,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACH,GAAG,KAAK;YACR,OAAO,EAAE;gBACL,aAAa;gBACb,aAAa;gBACb,iBAAiB,EAAE,EAAE;aACxB;SACJ,CAAC;IACN,CAAC;IAED,+GAA+G;IAC/G,MAAM,KAAK,GAAG,IAAA,wBAAiB,EAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAY,EAAC,CAAC,EAAE,KAAK,EAAE,6BAAY,CAAC,QAAQ,CAAC,CAAC,EACtE,EAAE,CACL,CAAC;IACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpE,OAAO;QACH,GAAG,KAAK;QACR,OAAO,EAAE;YACL,aAAa;YACb,aAAa;YACb,iBAAiB;SACpB;KACJ,CAAC;AACN,CAAC"}
@@ -1,25 +1,18 @@
1
1
  import { Address } from "@ethereumjs/util";
2
2
  import * as sol from "solc-typed-ast";
3
3
  import { FunctionDefinition } from "solc-typed-ast";
4
- import { HexString, UnprefixedHexString } from "../artifacts";
5
- import { ImmMap } from "../utils";
6
- import { ArtifactInfo, ContractInfo } from "./artifact_manager";
4
+ import { ImmMap } from "../utils/immutable_map";
5
+ import { ArtifactInfo, ContractInfo } from "./artifact_manager/types";
7
6
  import { EVMOpInfo } from "./opcodes";
8
- export interface DeployedContractInfo {
9
- address: HexString;
10
- code: UnprefixedHexString;
11
- info?: ContractInfo;
12
- }
13
- export interface UnknownLocation {
14
- contract: DeployedContractInfo | undefined;
15
- }
16
- export interface SolLocation {
17
- contract: DeployedContractInfo | undefined;
18
- start: number;
19
- length: number;
20
- jump: "o" | "i" | "-";
21
- file: number;
22
- }
7
+ import { View } from "./decoding/view";
8
+ /**
9
+ * A type alias for 0x-prefixed hex strings. Used for documentation purposes.
10
+ */
11
+ export type HexString = string;
12
+ /**
13
+ * A type alias for hex strings without 0x prefix. Used for documentation purposes.
14
+ */
15
+ export type UnprefixedHexString = string;
23
16
  export type DecodedSolValue = {
24
17
  value: any;
25
18
  type: string;
@@ -56,7 +49,7 @@ export interface BaseFrame {
56
49
  * If we have a `callee` try and infer where the arguments are placed in the VM state. Some arguments may not
57
50
  * exist in the case of msg.data generated from a fuzzer for example.
58
51
  */
59
- readonly arguments: Array<[string, DataView | undefined]> | undefined;
52
+ readonly arguments: Array<[string, View]> | undefined;
60
53
  readonly startStep: number;
61
54
  }
62
55
  /**
@@ -116,6 +109,7 @@ export interface BaseMemoryLocation extends BaseDataLocation {
116
109
  }
117
110
  export interface CalldataLocation extends BaseMemoryLocation {
118
111
  kind: DataLocationKind.CallData;
112
+ base: bigint;
119
113
  }
120
114
  export interface LinearMemoryLocation extends BaseMemoryLocation {
121
115
  kind: DataLocationKind.Memory;
@@ -166,24 +160,71 @@ export interface StepVMState {
166
160
  }
167
161
  /**
168
162
  * State that the debugger maintains for each trace step.
169
- * It includes the basic VM state (`StepVmState`) and optionally (if we have debug info for this contract)
170
- * includes the decoded source location, any AST nodes that are mapped to this instruction and any events
171
- * that may be emitted on this step.
163
+ * It includes the basic VM state (`StepVmState`) and all the info computed
164
+ * by additional transformers
172
165
  */
173
166
  export interface StepState extends StepVMState {
167
+ /**
168
+ * List of external call frames
169
+ */
174
170
  stack: ExternalFrame[];
171
+ /**
172
+ * If the current instruction is a return, include return information
173
+ */
175
174
  retInfo?: {
175
+ /**
176
+ * Step at which the call that just returned started
177
+ */
176
178
  callStartStep: number;
179
+ /**
180
+ * Raw returned data
181
+ */
177
182
  rawReturnData: Uint8Array;
183
+ /**
184
+ * Decoded returned data (if ast info is available)
185
+ */
178
186
  decodedReturnData?: any[];
179
187
  };
188
+ /**
189
+ * If the current instruction throws an exception, includes exception info
190
+ */
191
+ excInfo?: {
192
+ /**
193
+ * Raw exception bytes
194
+ */
195
+ data: Uint8Array;
196
+ };
197
+ /**
198
+ * Internal call stack at the current instruction
199
+ */
180
200
  intStack: InternalCallFrame[];
201
+ /**
202
+ * Source location for the current instruction (if a src map is available)
203
+ */
181
204
  src: sol.DecodedBytecodeSourceMapEntry | undefined;
205
+ /**
206
+ * AST node that corresponds to the source location of the current instruction (if any)
207
+ */
182
208
  astNode: sol.ASTNode | undefined;
209
+ /**
210
+ * If the current instruction emits an event, includes the raw event info
211
+ */
183
212
  emittedEvent: EventDesc | undefined;
213
+ /**
214
+ * If we were able to decode the event, include the decoded event info
215
+ */
184
216
  decodedEvent: DecodedEventDesc | undefined;
217
+ /**
218
+ * If this is the instruction after we return from a create call, add the newly created address here.
219
+ */
185
220
  contractCreated?: Address;
221
+ /**
222
+ * If this is a SELFDESTRUCT instruction, recored the destroyed contract
223
+ */
186
224
  contractKilled?: Address;
225
+ /**
226
+ * If this is a KECCAK256 instruction record the preimage and the hash
227
+ */
187
228
  keccak?: {
188
229
  from: Uint8Array;
189
230
  to: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":";;;AA2GA,0BAQC;AA/ED,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,2CAA8B,CAAA;AAClC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAmED,SAAgB,OAAO,CAAC,CAAM;IAC1B,OAAO,CACH,CAAC,YAAY,MAAM;QACnB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;YACtB,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC,CACzC,CAAC;AACN,CAAC;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;AACzB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":";;;AAmGA,0BAQC;AA/ED,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,2CAA8B,CAAA;AAClC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAmED,SAAgB,OAAO,CAAC,CAAM;IAC1B,OAAO,CACH,CAAC,YAAY,MAAM;QACnB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;YACtB,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC,CACzC,CAAC;AACN,CAAC;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;AACzB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B"}
@@ -3,6 +3,7 @@ export * from "./map";
3
3
  export * from "./misc";
4
4
  export * from "./pp";
5
5
  export * from "./set";
6
+ export * from "./solidity";
6
7
  export * from "./srcmap";
7
8
  export * from "./test_runner";
8
9
  export * from "./trace";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,MAAM,CAAC;AACrB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,MAAM,CAAC;AACrB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
@@ -19,6 +19,7 @@ __exportStar(require("./map"), exports);
19
19
  __exportStar(require("./misc"), exports);
20
20
  __exportStar(require("./pp"), exports);
21
21
  __exportStar(require("./set"), exports);
22
+ __exportStar(require("./solidity"), exports);
22
23
  __exportStar(require("./srcmap"), exports);
23
24
  __exportStar(require("./test_runner"), exports);
24
25
  __exportStar(require("./trace"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,wCAAsB;AACtB,yCAAuB;AACvB,uCAAqB;AACrB,wCAAsB;AACtB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,wCAAsB;AACtB,yCAAuB;AACvB,uCAAqB;AACrB,wCAAsB;AACtB,6CAA2B;AAC3B,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB"}
@@ -1,19 +1,20 @@
1
1
  import { Common } from "@ethereumjs/common";
2
2
  import { TypedTransaction, TypedTxData } from "@ethereumjs/tx";
3
3
  import { Address } from "@ethereumjs/util";
4
- import { ContractDefinition, FunctionDefinition, InferType, IntType, SourceUnit } from "solc-typed-ast";
5
- import { HexString, UnprefixedHexString } from "..";
6
- import { DataLocation, DataView, Stack, Storage } from "../debug/types";
4
+ import { AddressType, BoolType, FixedBytesType, FunctionDefinition, InferType, IntType } from "solc-typed-ast";
5
+ import { DataLocation, DataView, HexString, Stack, Storage, UnprefixedHexString } from "../debug/types";
7
6
  export declare const ZERO_ADDRESS_STRING: HexString;
8
7
  export declare const ZERO_ADDRESS: Address;
9
8
  export declare const uint256: IntType;
9
+ export declare const uint8: IntType;
10
+ export declare const bytes4: FixedBytesType;
11
+ export declare const bool: BoolType;
12
+ export declare const address: AddressType;
10
13
  export declare const MAX_ARR_DECODE_LIMIT: bigint;
11
14
  export declare function toHexString(n: number | bigint | Uint8Array, padding?: number): HexString;
12
15
  export declare function bigIntToBuf(n: bigint, size: number, endianness?: "big" | "little"): Uint8Array;
13
16
  export declare function hexStrToBuf32(v: UnprefixedHexString): Uint8Array;
14
17
  export declare function makeFakeTransaction(txData: TypedTxData, from: string, common: Common): TypedTransaction;
15
- export declare function findContractDef(units: SourceUnit[], fileName: string, contractName: string): ContractDefinition | undefined;
16
- export declare function resolveConstructor(contract: ContractDefinition): FunctionDefinition | undefined;
17
18
  /**
18
19
  * Return the (inclusive) limits of a 2's complement int type as a pair `[min, max]` `bigint`s
19
20
  */
@@ -23,12 +24,6 @@ export declare function ppLoc(loc: DataLocation): string;
23
24
  export declare function ppView(view: DataView): string;
24
25
  export declare function ppStorage(storage: Storage): string;
25
26
  export declare function ppEvmStack(stack: Stack): string;
26
- /**
27
- * Given an `offset` into some memory `buf` check that its in-bounds.
28
- * Since `offset` may be a bigint we must check that it can be cast to Number without
29
- * loss of precision and afterwards, whether it fits into the buf.
30
- */
31
- export declare function checkAddrOoB(offset: bigint | number, buf: Uint8Array): number | undefined;
32
27
  /**
33
28
  * Try to read memory from offset start to start+len. If the access is OoB return undefined
34
29
  */
@@ -55,6 +50,14 @@ export declare function bigIntToNum(n: bigint): number;
55
50
  export declare function getFunctionSelector(f: FunctionDefinition, infer: InferType): UnprefixedHexString | undefined;
56
51
  export declare function sanitizeBigintFromJson(a: any): any;
57
52
  export declare function zip<T1, T2>(a: T1[], b: T2[]): Array<[T1, T2]>;
53
+ /**
54
+ * Split a list into two lists based on a user-provided predicate.
55
+ *
56
+ * @param a
57
+ * @param pred
58
+ * @returns
59
+ */
60
+ export declare function split<T>(a: T[], pred: (x: T) => boolean): [T[], T[]];
58
61
  export declare function zip3<T1, T2, T3>(a: T1[], b: T2[], c: T3[]): Array<[T1, T2, T3]>;
59
62
  export declare function stackTop<T>(stack: T[]): T;
60
63
  /**
@@ -62,4 +65,6 @@ export declare function stackTop<T>(stack: T[]): T;
62
65
  */
63
66
  export declare function stackInd<T>(stack: T[], i: number): T;
64
67
  export declare function repeat<T>(x: T, n: number): T[];
68
+ export declare function nyi(s: string): never;
69
+ export declare function single<T>(a: T[]): T;
65
70
  //# sourceMappingURL=misc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAsB,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,UAAU,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,EAAE,YAAY,EAAoB,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1F,eAAO,MAAM,mBAAmB,EAAE,SAAwD,CAAC;AAC3F,eAAO,MAAM,YAAY,SAA0C,CAAC;AAEpE,eAAO,MAAM,OAAO,SAA0B,CAAC;AAC/C,eAAO,MAAM,oBAAoB,QAAe,CAAC;AAEjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAAE,OAAO,SAAI,GAAG,SAAS,CAcnF;AAED,wBAAgB,WAAW,CACvB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,KAAK,GAAG,QAAmB,GACxC,UAAU,CAiBZ;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAEhE;AAED,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACf,gBAAgB,CAWlB;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,UAAU,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACrB,kBAAkB,GAAG,SAAS,CAchC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,CAQ/F;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAIvD;AAGD,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAM/C;AAGD,wBAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAI7C;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAoBzF;AAED;;GAEG;AACH,wBAAgB,OAAO,CACnB,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EACnC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EACpC,GAAG,EAAE,UAAU,GAChB,UAAU,GAAG,SAAS,CAkBxB;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EACnC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EACpC,GAAG,EAAE,UAAU,GAChB,UAAU,CAMZ;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEvD;AAED,eAAO,MAAM,WAAW,QAAuC,CAAC;AAEhE,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAS5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED,wBAAgB,mBAAmB,CAC/B,CAAC,EAAE,kBAAkB,EACrB,KAAK,EAAE,SAAS,GACjB,mBAAmB,GAAG,SAAS,CAUjC;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAgBlD;AAED,wBAAgB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAU7D;AAED,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAW/E;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAEzC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAGpD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAO9C"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"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"}