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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exp_types.js","sourceRoot":"","sources":["../../../src/debug/decoding/exp_types.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,6 @@
1
- import { InferType, TypeNode } from "solc-typed-ast";
2
- import { DataView, StepState } from "..";
3
- import { MapKeys } from "../tracers/transformers";
4
- export declare function isCalldataType2Slots(typ: TypeNode): boolean;
5
- /**
6
- * Decode a generic value expressed as a `DataView` (i.e. a tuple of type and location) given
7
- * the dbg state `state` at some step.
8
- */
9
- export declare function decodeValue(view: DataView, state: StepState, infer: InferType, mapKeys?: MapKeys): any;
1
+ import { MapKeys } from "../tracers/transformers/keccak256_invert";
2
+ import { StepState } from "../types";
3
+ import { View } from "./view";
4
+ import { Value } from "./value";
5
+ export declare function decodeView(v: View, state: StepState, mapKeys?: MapKeys): Value;
10
6
  //# sourceMappingURL=general.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,SAAS,EAGT,QAAQ,EACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGH,QAAQ,EAGR,SAAS,EAEZ,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,OAAO,EAAe,MAAM,yBAAyB,CAAC;AAwD/D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAO3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACvB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,OAAO,GAClB,GAAG,CAqFL"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/general.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMhC,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CA+B9E"}
@@ -1,113 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCalldataType2Slots = isCalldataType2Slots;
4
- exports.decodeValue = decodeValue;
5
- const solc_typed_ast_1 = require("solc-typed-ast");
6
- const abi_1 = require("solc-typed-ast/dist/types/abi");
7
- const __1 = require("..");
8
- const __2 = require("../..");
9
- const transformers_1 = require("../tracers/transformers");
10
- const calldata_1 = require("./calldata");
11
- const memory_1 = require("./memory");
12
- const stack_1 = require("./stack");
13
- const storage_1 = require("./storage");
14
- function solLocToDataKind(loc) {
15
- if (loc === solc_typed_ast_1.DataLocation.Default) {
16
- return __1.DataLocationKind.Memory;
17
- }
18
- return loc;
19
- }
20
- /**
21
- * Helper to dispatch the decoding of a given type `typ` at a given data location `loc` in a given `state`.
22
- * to the proper decoding logic (memory, calldata, storage, stack)
23
- */
24
- function decodeValInt(typ, loc, state, infer, mapKeys) {
25
- if (loc.kind === __1.DataLocationKind.Memory) {
26
- const res = (0, memory_1.mem_decodeValue)(typ, loc, state.memory, infer);
27
- return res === undefined ? res : res[0];
28
- }
29
- if (loc.kind === __1.DataLocationKind.CallData) {
30
- const lastExtFrame = (0, transformers_1.topExtFrame)(state);
31
- let abiType;
32
- try {
33
- abiType = infer.toABIEncodedType(typ, abi_1.ABIEncoderVersion.V2);
3
+ exports.decodeView = decodeView;
4
+ const misc_1 = require("../../utils/misc");
5
+ const ext_stack_1 = require("../tracers/transformers/ext_stack");
6
+ const view_1 = require("./view");
7
+ const view_2 = require("./stack/view");
8
+ const view_3 = require("./memory/view");
9
+ const view_4 = require("./calldata/view");
10
+ const view_5 = require("./storage/view");
11
+ function decodeView(v, state, mapKeys) {
12
+ if (v instanceof view_2.BaseStackView) {
13
+ const res = v.decode(state.evmStack);
14
+ if (res instanceof view_1.View) {
15
+ return decodeView(res, state, mapKeys);
34
16
  }
35
- catch (e) {
36
- return undefined;
37
- }
38
- const res = (0, calldata_1.cd_decodeValue)(abiType, typ, loc, lastExtFrame.msgData, BigInt(4), infer);
39
- return res === undefined ? res : res[0];
17
+ return res;
40
18
  }
41
- if (loc.kind === __1.DataLocationKind.Stack) {
42
- return (0, stack_1.st_decodeValue)(typ, loc, state.evmStack, infer);
19
+ if (v instanceof view_3.BaseMemoryView) {
20
+ return v.decode(state.memory);
43
21
  }
44
- const res = (0, storage_1.stor_decodeValue)(typ, loc, state.storage, infer, mapKeys);
45
- return res === undefined ? res : res[0];
46
- }
47
- function isCalldataType2Slots(typ) {
48
- return (typ instanceof solc_typed_ast_1.PointerType &&
49
- typ.to instanceof solc_typed_ast_1.ArrayType &&
50
- typ.location === solc_typed_ast_1.DataLocation.CallData &&
51
- typ.to.size === undefined);
52
- }
53
- /**
54
- * Decode a generic value expressed as a `DataView` (i.e. a tuple of type and location) given
55
- * the dbg state `state` at some step.
56
- */
57
- function decodeValue(view, state, infer, mapKeys) {
58
- const typ = view.type;
59
- const loc = view.loc;
60
- /**
61
- * The only case where a pointer from one area of the state crosses into another
62
- * area of the state are pointers in the stack. All other pointers stay in their
63
- * own memory region
64
- */
65
- if (typ instanceof solc_typed_ast_1.PointerType && loc.kind === __1.DataLocationKind.Stack) {
66
- const off = (0, stack_1.st_decodeInt)(__2.uint256, loc, state.evmStack);
67
- if (off === undefined) {
68
- return undefined;
69
- }
70
- const kind = solLocToDataKind(typ.location);
71
- let pointedToLoc;
72
- if (isCalldataType2Slots(typ)) {
73
- const lastExtFrame = (0, transformers_1.topExtFrame)(state);
74
- let abiType;
75
- try {
76
- abiType = infer.toABIEncodedType(typ, abi_1.ABIEncoderVersion.V2);
77
- }
78
- catch (e) {
79
- return undefined;
80
- }
81
- (0, solc_typed_ast_1.assert)(abiType instanceof solc_typed_ast_1.PointerType && abiType.to instanceof solc_typed_ast_1.ArrayType, `InternalError`);
82
- const len = (0, stack_1.st_decodeInt)(__2.uint256, { kind: loc.kind, offsetFromTop: loc.offsetFromTop - 1 }, state.evmStack);
83
- if (len === undefined) {
84
- return undefined;
85
- }
86
- if (len > __2.MAX_ARR_DECODE_LIMIT) {
87
- return undefined;
88
- }
89
- const res = (0, calldata_1.cd_decodeArrayContents)(abiType.to, typ.to, off, Number(len), lastExtFrame.msgData, infer);
90
- return res === undefined ? res : res[0];
91
- }
92
- if (kind === __1.DataLocationKind.Storage) {
93
- pointedToLoc = {
94
- kind,
95
- address: off,
96
- endOffsetInWord: 32
97
- };
22
+ if (v instanceof view_4.BaseCalldataView) {
23
+ const lastExtFrame = (0, ext_stack_1.topExtFrame)(state);
24
+ const res = v.decode(lastExtFrame.msgData);
25
+ if (res instanceof view_1.View) {
26
+ return decodeView(res, state, mapKeys);
98
27
  }
99
- else {
100
- pointedToLoc = {
101
- kind,
102
- address: off
103
- };
104
- }
105
- const res = decodeValInt(typ.to, pointedToLoc, state, infer, mapKeys);
106
- //console.error(`decodeValue: res ${res}`);
107
28
  return res;
108
29
  }
109
- const res = decodeValInt(typ, loc, state, infer, mapKeys);
110
- //console.error(`decodeValue: res ${res}`);
111
- return res;
30
+ if (v instanceof view_5.BaseStorageView) {
31
+ return v.decode(state.storage, mapKeys);
32
+ }
33
+ (0, misc_1.nyi)(`View ${v.pp()}`);
112
34
  }
113
35
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../src/debug/decoding/general.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../../src/debug/decoding/general.ts"],"names":[],"mappings":";;AAWA,gCA+BC;AA1CD,2CAAuC;AACvC,iEAAgE;AAGhE,iCAA8B;AAE9B,uCAA6C;AAC7C,wCAA+C;AAC/C,0CAAmD;AACnD,yCAAiD;AAEjD,SAAgB,UAAU,CAAC,CAAO,EAAE,KAAgB,EAAE,OAAiB;IACnE,IAAI,CAAC,YAAY,oBAAa,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,GAAG,YAAY,WAAI,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,qBAAc,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,YAAY,uBAAgB,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAA,uBAAW,EAAC,KAAK,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,GAAG,YAAY,WAAI,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,CAAC,YAAY,sBAAe,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,IAAA,UAAG,EAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC"}
@@ -3,4 +3,5 @@ export * from "./general";
3
3
  export * from "./memory";
4
4
  export * from "./stack";
5
5
  export * from "./storage";
6
+ export * from "./exp_types";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
@@ -19,4 +19,5 @@ __exportStar(require("./general"), exports);
19
19
  __exportStar(require("./memory"), exports);
20
20
  __exportStar(require("./stack"), exports);
21
21
  __exportStar(require("./storage"), exports);
22
+ __exportStar(require("./exp_types"), exports);
22
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/debug/decoding/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/debug/decoding/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,8CAA4B"}
@@ -0,0 +1,22 @@
1
+ import { Memory } from "../../types";
2
+ export interface Allocator {
3
+ alloc(size: number): bigint;
4
+ }
5
+ /**
6
+ * Default allocator implementing the free-pointer allocation model of Solidity.
7
+ * Note: The allocator owns the Memory object since it initializes it internally with a resizable ArrayBuffer
8
+ */
9
+ export declare class DefaultAllocator implements Allocator {
10
+ readonly buf: ArrayBuffer;
11
+ readonly memory: Memory;
12
+ private _freeMemPtr;
13
+ constructor();
14
+ get freeMemPtr(): bigint;
15
+ /**
16
+ * Grow the memory to at least `newMemSize`
17
+ * @param newMemSize
18
+ */
19
+ grow(newMemSize: number | bigint): void;
20
+ alloc(size: number): bigint;
21
+ }
22
+ //# sourceMappingURL=allocator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allocator.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/allocator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,MAAM,WAAW,SAAS;IACtB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B;AAOD;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAC9C,SAAgB,GAAG,EAAE,WAAW,CAAC;IACjC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,WAAW,CAAa;;IAUhC,IAAI,UAAU,IAAI,MAAM,CAIvB;IAED;;;OAGG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAW9B"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultAllocator = void 0;
4
+ const solc_typed_ast_1 = require("solc-typed-ast");
5
+ const view_1 = require("./view");
6
+ const utils_1 = require("../../../utils");
7
+ const MAX_MEM_LIMIT = 64 * 1024 * 1024;
8
+ const FREE_POINTER_START = 0x40;
9
+ const RESERVED_AREA_SIZE = 0x80;
10
+ const INITIAL_SIZE = RESERVED_AREA_SIZE;
11
+ /**
12
+ * Default allocator implementing the free-pointer allocation model of Solidity.
13
+ * Note: The allocator owns the Memory object since it initializes it internally with a resizable ArrayBuffer
14
+ */
15
+ class DefaultAllocator {
16
+ constructor() {
17
+ // Initialize memory
18
+ this.buf = new ArrayBuffer(INITIAL_SIZE, { maxByteLength: MAX_MEM_LIMIT });
19
+ this.memory = new Uint8Array(this.buf);
20
+ this._freeMemPtr = (0, view_1.makeMemoryView)(utils_1.uint256, BigInt(FREE_POINTER_START));
21
+ this._freeMemPtr.encode(BigInt(RESERVED_AREA_SIZE), this.memory);
22
+ }
23
+ get freeMemPtr() {
24
+ const res = this._freeMemPtr.decode(this.memory);
25
+ (0, solc_typed_ast_1.assert)(typeof res === "bigint", `Internal error getting free mem pointer: ${res}`);
26
+ return res;
27
+ }
28
+ /**
29
+ * Grow the memory to at least `newMemSize`
30
+ * @param newMemSize
31
+ */
32
+ grow(newMemSize) {
33
+ (0, solc_typed_ast_1.assert)(BigInt(newMemSize) <= MAX_MEM_LIMIT, `Memory grew too large: ${newMemSize}`);
34
+ this.buf.resize(Number(newMemSize));
35
+ }
36
+ alloc(size) {
37
+ const res = this.freeMemPtr;
38
+ const newRegionEnd = res + BigInt(size);
39
+ if (newRegionEnd > BigInt(this.memory.length)) {
40
+ this.grow(newRegionEnd);
41
+ }
42
+ this._freeMemPtr.encode(newRegionEnd, this.memory);
43
+ return res;
44
+ }
45
+ }
46
+ exports.DefaultAllocator = DefaultAllocator;
47
+ //# sourceMappingURL=allocator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allocator.js","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/allocator.ts"],"names":[],"mappings":";;;AAAA,mDAAwC;AAExC,iCAAoD;AACpD,0CAAyC;AAMzC,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC;;;GAGG;AACH,MAAa,gBAAgB;IAKzB;QACI,oBAAoB;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,IAAA,qBAAc,EAAC,eAAO,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAe,CAAC;QACrF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,UAAU;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAA,uBAAM,EAAC,OAAO,GAAG,KAAK,QAAQ,EAAE,4CAA4C,GAAG,EAAE,CAAC,CAAC;QACnF,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,UAA2B;QAC5B,IAAA,uBAAM,EAAC,MAAM,CAAC,UAAU,CAAC,IAAI,aAAa,EAAE,0BAA0B,UAAU,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAY;QACd,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,MAAM,YAAY,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAvCD,4CAuCC"}
@@ -0,0 +1,2 @@
1
+ export { makeMemoryView } from "./view";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeMemoryView = void 0;
4
+ var view_1 = require("./view");
5
+ Object.defineProperty(exports, "makeMemoryView", { enumerable: true, get: function () { return view_1.makeMemoryView; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/index.ts"],"names":[],"mappings":";;;AAAA,+BAAwC;AAA/B,sGAAA,cAAc,OAAA"}
@@ -0,0 +1,66 @@
1
+ import { AddressType, ArrayType, BoolType, BytesType, FixedBytesType, IntType, PointerType, StringType, TypeNode } from "solc-typed-ast";
2
+ import { Memory } from "../../types";
3
+ import { View } from "../view";
4
+ import { DecodingFailure, Struct, Value } from "../value";
5
+ import { Address } from "@ethereumjs/util";
6
+ import { ExpStructType, MissingType } from "../exp_types";
7
+ import { Allocator } from "./allocator";
8
+ export declare abstract class BaseMemoryView<Val extends Value, Type extends TypeNode = TypeNode> extends View<Memory, Val, bigint, Type> {
9
+ protected writeMemAt(value: Uint8Array, off: bigint, mem: Memory): void;
10
+ protected readMemAt(off: bigint, calldata: Memory, len: bigint | number): Uint8Array | DecodingFailure;
11
+ protected decodeIntAt(off: bigint, type: IntType, state: Memory): bigint | DecodingFailure;
12
+ pp(): string;
13
+ get offset(): bigint;
14
+ protected encodeIntAt(value: bigint, off: bigint, state: Memory): void;
15
+ abstract encode(value: Val, state: Memory, alloc: Allocator): void;
16
+ }
17
+ export declare class IntMemView extends BaseMemoryView<bigint, IntType> {
18
+ decode(state: Memory): bigint | DecodingFailure;
19
+ encode(value: bigint, state: Memory): void;
20
+ }
21
+ export declare class AddressMemView extends BaseMemoryView<Address, AddressType> {
22
+ decode(state: Memory): Address | DecodingFailure;
23
+ encode(value: Address, state: Memory): void;
24
+ }
25
+ export declare class BoolMemView extends BaseMemoryView<boolean, BoolType> {
26
+ decode(state: Memory): boolean | DecodingFailure;
27
+ encode(value: boolean, state: Memory): void;
28
+ }
29
+ export declare class FixedBytesMemView extends BaseMemoryView<Uint8Array, FixedBytesType> {
30
+ decode(state: Memory): Uint8Array | DecodingFailure;
31
+ encode(value: Uint8Array<ArrayBufferLike>, state: Memory): void;
32
+ }
33
+ export declare abstract class PackedArrayMemView<V extends Value, T extends TypeNode> extends BaseMemoryView<V, T> {
34
+ protected decodeBytesAt(loc: bigint, state: Memory): Uint8Array | DecodingFailure;
35
+ protected encodeBytesAt(value: Uint8Array, off: bigint, state: Memory): void;
36
+ }
37
+ export declare class BytesMemView extends PackedArrayMemView<Uint8Array, BytesType> {
38
+ decode(state: Memory): Uint8Array | DecodingFailure;
39
+ encode(value: Uint8Array, state: Memory): void;
40
+ }
41
+ export declare class StringMemView extends PackedArrayMemView<string, StringType> {
42
+ decode(state: Memory): string | DecodingFailure;
43
+ encode(value: string, state: Memory): void;
44
+ }
45
+ export declare class ArrayMemView extends BaseMemoryView<Value[], ArrayType> {
46
+ decode(state: Memory): Value[] | DecodingFailure;
47
+ encode(value: Value[], state: Memory, alloc: Allocator): void;
48
+ }
49
+ export declare class StructMemView extends BaseMemoryView<Struct, ExpStructType> {
50
+ decode(state: Memory): Struct;
51
+ encode(value: Struct, state: Memory, alloc: Allocator): void;
52
+ }
53
+ export declare class PointerMemView extends BaseMemoryView<Value, PointerType> {
54
+ decode(state: Memory): Value | DecodingFailure;
55
+ /**
56
+ * Helper to compute how much memory we need to allocate for a pointed-to value of type t
57
+ */
58
+ static allocSize(v: Value | undefined, t: TypeNode): number;
59
+ encode(value: Value, state: Memory, alloc: Allocator): void;
60
+ }
61
+ export declare class MissingMemView extends BaseMemoryView<Value, MissingType> {
62
+ decode(): DecodingFailure;
63
+ encode(): void;
64
+ }
65
+ export declare function makeMemoryView(type: TypeNode, loc: bigint): BaseMemoryView<Value, TypeNode>;
66
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/view.ts"],"names":[],"mappings":"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"}