sol-dbg 0.7.1 → 0.7.3

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 (102) hide show
  1. package/dist/artifacts/helpers.js +3 -3
  2. package/dist/artifacts/helpers.js.map +1 -1
  3. package/dist/artifacts/solc.d.ts +1 -1
  4. package/dist/artifacts/solc.d.ts.map +1 -1
  5. package/dist/debug/artifact_manager/artifact_manager.d.ts +2 -2
  6. package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -1
  7. package/dist/debug/artifact_manager/artifact_manager.js +2 -3
  8. package/dist/debug/artifact_manager/artifact_manager.js.map +1 -1
  9. package/dist/debug/artifact_manager/bytecode_templates.js +1 -1
  10. package/dist/debug/artifact_manager/bytecode_templates.js.map +1 -1
  11. package/dist/debug/decoding/calldata/index.d.ts +1 -1
  12. package/dist/debug/decoding/calldata/index.d.ts.map +1 -1
  13. package/dist/debug/decoding/calldata/index.js +15 -3
  14. package/dist/debug/decoding/calldata/index.js.map +1 -1
  15. package/dist/debug/decoding/calldata/view.d.ts +25 -7
  16. package/dist/debug/decoding/calldata/view.d.ts.map +1 -1
  17. package/dist/debug/decoding/calldata/view.js +107 -12
  18. package/dist/debug/decoding/calldata/view.js.map +1 -1
  19. package/dist/debug/decoding/index.d.ts +1 -0
  20. package/dist/debug/decoding/index.d.ts.map +1 -1
  21. package/dist/debug/decoding/index.js +1 -0
  22. package/dist/debug/decoding/index.js.map +1 -1
  23. package/dist/debug/decoding/memory/allocator.d.ts +22 -0
  24. package/dist/debug/decoding/memory/allocator.d.ts.map +1 -0
  25. package/dist/debug/decoding/memory/allocator.js +47 -0
  26. package/dist/debug/decoding/memory/allocator.js.map +1 -0
  27. package/dist/debug/decoding/memory/index.d.ts +2 -1
  28. package/dist/debug/decoding/memory/index.d.ts.map +1 -1
  29. package/dist/debug/decoding/memory/index.js +16 -3
  30. package/dist/debug/decoding/memory/index.js.map +1 -1
  31. package/dist/debug/decoding/memory/view.d.ts +45 -8
  32. package/dist/debug/decoding/memory/view.d.ts.map +1 -1
  33. package/dist/debug/decoding/memory/view.js +185 -15
  34. package/dist/debug/decoding/memory/view.js.map +1 -1
  35. package/dist/debug/decoding/stack/index.d.ts +1 -1
  36. package/dist/debug/decoding/stack/index.d.ts.map +1 -1
  37. package/dist/debug/decoding/stack/index.js +15 -3
  38. package/dist/debug/decoding/stack/index.js.map +1 -1
  39. package/dist/debug/decoding/stack/view.d.ts +7 -0
  40. package/dist/debug/decoding/stack/view.d.ts.map +1 -1
  41. package/dist/debug/decoding/stack/view.js +41 -1
  42. package/dist/debug/decoding/stack/view.js.map +1 -1
  43. package/dist/debug/decoding/storage/index.d.ts +1 -1
  44. package/dist/debug/decoding/storage/index.d.ts.map +1 -1
  45. package/dist/debug/decoding/storage/index.js +15 -3
  46. package/dist/debug/decoding/storage/index.js.map +1 -1
  47. package/dist/debug/decoding/storage/view.d.ts +45 -7
  48. package/dist/debug/decoding/storage/view.d.ts.map +1 -1
  49. package/dist/debug/decoding/storage/view.js +279 -16
  50. package/dist/debug/decoding/storage/view.js.map +1 -1
  51. package/dist/debug/decoding/view.d.ts +14 -1
  52. package/dist/debug/decoding/view.d.ts.map +1 -1
  53. package/dist/debug/decoding/view.js +8 -1
  54. package/dist/debug/decoding/view.js.map +1 -1
  55. package/dist/debug/foundry_cheatcodes.d.ts +15 -15
  56. package/dist/debug/foundry_cheatcodes.d.ts.map +1 -1
  57. package/dist/debug/foundry_cheatcodes.js +11 -10
  58. package/dist/debug/foundry_cheatcodes.js.map +1 -1
  59. package/dist/debug/layout.d.ts +2 -2
  60. package/dist/debug/layout.d.ts.map +1 -1
  61. package/dist/debug/layout.js +1 -1
  62. package/dist/debug/layout.js.map +1 -1
  63. package/dist/debug/opcode_interposing.js +2 -2
  64. package/dist/debug/opcode_interposing.js.map +1 -1
  65. package/dist/debug/tracers/base_tracer.d.ts +4 -4
  66. package/dist/debug/tracers/base_tracer.d.ts.map +1 -1
  67. package/dist/debug/tracers/base_tracer.js +7 -7
  68. package/dist/debug/tracers/base_tracer.js.map +1 -1
  69. package/dist/debug/tracers/storage_decode_tracer.js +1 -1
  70. package/dist/debug/tracers/storage_decode_tracer.js.map +1 -1
  71. package/dist/debug/tracers/transformers/basic_info.d.ts +2 -2
  72. package/dist/debug/tracers/transformers/basic_info.d.ts.map +1 -1
  73. package/dist/debug/tracers/transformers/basic_info.js.map +1 -1
  74. package/dist/debug/tracers/transformers/ext_stack.d.ts.map +1 -1
  75. package/dist/debug/tracers/transformers/ext_stack.js +3 -5
  76. package/dist/debug/tracers/transformers/ext_stack.js.map +1 -1
  77. package/dist/debug/types.d.ts +2 -38
  78. package/dist/debug/types.d.ts.map +1 -1
  79. package/dist/debug/types.js +1 -8
  80. package/dist/debug/types.js.map +1 -1
  81. package/dist/utils/ethereumjs_internal/exceptions.d.ts +2 -2
  82. package/dist/utils/ethereumjs_internal/opcodes.js +1 -1
  83. package/dist/utils/immutable_map.d.ts +2 -0
  84. package/dist/utils/immutable_map.d.ts.map +1 -1
  85. package/dist/utils/immutable_map.js +21 -0
  86. package/dist/utils/immutable_map.js.map +1 -1
  87. package/dist/utils/misc.d.ts +4 -3
  88. package/dist/utils/misc.d.ts.map +1 -1
  89. package/dist/utils/misc.js +25 -20
  90. package/dist/utils/misc.js.map +1 -1
  91. package/dist/utils/solidity.d.ts.map +1 -1
  92. package/dist/utils/solidity.js +23 -7
  93. package/dist/utils/solidity.js.map +1 -1
  94. package/dist/utils/test_runner.d.ts +5 -5
  95. package/dist/utils/test_runner.d.ts.map +1 -1
  96. package/dist/utils/test_runner.js +15 -14
  97. package/dist/utils/test_runner.js.map +1 -1
  98. package/package.json +13 -12
  99. package/dist/utils/types.d.ts +0 -9
  100. package/dist/utils/types.d.ts.map +0 -1
  101. package/dist/utils/types.js +0 -3
  102. package/dist/utils/types.js.map +0 -1
@@ -4,4 +4,5 @@ export * from "./memory";
4
4
  export * from "./stack";
5
5
  export * from "./storage";
6
6
  export * from "./exp_types";
7
+ export * from "./value";
7
8
  //# 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;AAC1B,cAAc,aAAa,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;AAC5B,cAAc,SAAS,CAAC"}
@@ -20,4 +20,5 @@ __exportStar(require("./memory"), exports);
20
20
  __exportStar(require("./stack"), exports);
21
21
  __exportStar(require("./storage"), exports);
22
22
  __exportStar(require("./exp_types"), exports);
23
+ __exportStar(require("./value"), exports);
23
24
  //# 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;AAC1B,8CAA4B"}
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;AAC5B,0CAAwB"}
@@ -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"}
@@ -1,2 +1,3 @@
1
- export { makeMemoryView } from "./view";
1
+ export * from "./view";
2
+ export * from "./allocator";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
@@ -1,6 +1,19 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  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; } });
17
+ __exportStar(require("./view"), exports);
18
+ __exportStar(require("./allocator"), exports);
6
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/index.ts"],"names":[],"mappings":";;;AAAA,+BAAwC;AAA/B,sGAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,8CAA4B"}
@@ -1,44 +1,81 @@
1
1
  import { AddressType, ArrayType, BoolType, BytesType, FixedBytesType, IntType, PointerType, StringType, TypeNode } from "solc-typed-ast";
2
2
  import { Memory } from "../../types";
3
- import { View } from "../view";
3
+ import { IndexableView, PointerView, StructView, View } from "../view";
4
4
  import { DecodingFailure, Struct, Value } from "../value";
5
5
  import { Address } from "@ethereumjs/util";
6
6
  import { ExpStructType, MissingType } from "../exp_types";
7
+ import { Allocator } from "./allocator";
7
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;
8
10
  protected readMemAt(off: bigint, calldata: Memory, len: bigint | number): Uint8Array | DecodingFailure;
9
11
  protected decodeIntAt(off: bigint, type: IntType, state: Memory): bigint | DecodingFailure;
10
- protected decodeBytesAt(loc: bigint, state: Memory): Uint8Array | DecodingFailure;
11
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;
12
16
  }
13
17
  export declare class IntMemView extends BaseMemoryView<bigint, IntType> {
14
18
  decode(state: Memory): bigint | DecodingFailure;
19
+ encode(value: bigint, state: Memory): void;
15
20
  }
16
21
  export declare class AddressMemView extends BaseMemoryView<Address, AddressType> {
17
22
  decode(state: Memory): Address | DecodingFailure;
23
+ encode(value: Address, state: Memory): void;
18
24
  }
19
25
  export declare class BoolMemView extends BaseMemoryView<boolean, BoolType> {
20
26
  decode(state: Memory): boolean | DecodingFailure;
27
+ encode(value: boolean, state: Memory): void;
28
+ }
29
+ /**
30
+ * We need a special SingleByteMemView for FixedBytesMemView's indexView() method.
31
+ * We cannot just re-use FixedBytesMemView, since even for a single byte, that will
32
+ * write 32 bytes with padded zeroes.
33
+ */
34
+ export declare class SingleByteMemView extends BaseMemoryView<number, FixedBytesType> {
35
+ constructor(loc: bigint);
36
+ decode(state: Memory): number | DecodingFailure;
37
+ encode(value: number, state: Memory): void;
21
38
  }
22
- export declare class FixedBytesMemView extends BaseMemoryView<Uint8Array, FixedBytesType> {
39
+ export declare class FixedBytesMemView extends BaseMemoryView<Uint8Array, FixedBytesType> implements IndexableView<bigint, Memory, SingleByteMemView> {
23
40
  decode(state: Memory): Uint8Array | DecodingFailure;
41
+ encode(value: Uint8Array<ArrayBufferLike>, state: Memory): void;
42
+ indexView(key: bigint): DecodingFailure | SingleByteMemView;
43
+ }
44
+ export declare abstract class PackedArrayMemView<V extends Value, T extends TypeNode> extends BaseMemoryView<V, T> {
45
+ protected decodeBytesAt(loc: bigint, state: Memory): Uint8Array | DecodingFailure;
46
+ protected encodeBytesAt(value: Uint8Array, off: bigint, state: Memory): void;
24
47
  }
25
- export declare class BytesMemView extends BaseMemoryView<Uint8Array, BytesType> {
48
+ export declare class BytesMemView extends PackedArrayMemView<Uint8Array, BytesType> implements IndexableView<bigint, Memory, SingleByteMemView> {
26
49
  decode(state: Memory): Uint8Array | DecodingFailure;
50
+ encode(value: Uint8Array, state: Memory): void;
51
+ indexView(key: bigint, state: Memory): DecodingFailure | SingleByteMemView;
27
52
  }
28
- export declare class StringMemView extends BaseMemoryView<string, StringType> {
53
+ export declare class StringMemView extends PackedArrayMemView<string, StringType> {
29
54
  decode(state: Memory): string | DecodingFailure;
55
+ encode(value: string, state: Memory): void;
30
56
  }
31
- export declare class ArrayMemView extends BaseMemoryView<Value[], ArrayType> {
57
+ export declare class ArrayMemView extends BaseMemoryView<Value[], ArrayType> implements IndexableView<bigint, Memory, BaseMemoryView<Value, TypeNode>> {
32
58
  decode(state: Memory): Value[] | DecodingFailure;
59
+ encode(value: Value[], state: Memory, alloc: Allocator): void;
60
+ indexView(key: bigint, state: Memory): BaseMemoryView<Value, TypeNode> | DecodingFailure;
33
61
  }
34
- export declare class StructMemView extends BaseMemoryView<Struct, ExpStructType> {
62
+ export declare class StructMemView extends BaseMemoryView<Struct, ExpStructType> implements StructView<Memory, BaseMemoryView<Value, TypeNode>> {
35
63
  decode(state: Memory): Struct;
64
+ encode(value: Struct, state: Memory, alloc: Allocator): void;
65
+ fieldView(name: string): BaseMemoryView<Value, TypeNode> | DecodingFailure;
36
66
  }
37
- export declare class PointerMemView extends BaseMemoryView<Value, PointerType> {
67
+ export declare class PointerMemView extends BaseMemoryView<Value, PointerType> implements PointerView<Memory, BaseMemoryView<Value, TypeNode>> {
38
68
  decode(state: Memory): Value | DecodingFailure;
69
+ /**
70
+ * Helper to compute how much memory we need to allocate for a pointed-to value of type t
71
+ */
72
+ static allocSize(v: Value | undefined, t: TypeNode): number;
73
+ encode(value: Value, state: Memory, alloc: Allocator): void;
74
+ toView(state: Memory): BaseMemoryView<Value, TypeNode> | DecodingFailure;
39
75
  }
40
76
  export declare class MissingMemView extends BaseMemoryView<Value, MissingType> {
41
77
  decode(): DecodingFailure;
78
+ encode(): void;
42
79
  }
43
80
  export declare function makeMemoryView(type: TypeNode, loc: bigint): BaseMemoryView<Value, TypeNode>;
44
81
  //# sourceMappingURL=view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/view.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,cAAc,EACd,OAAO,EACP,WAAW,EACX,UAAU,EACV,QAAQ,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAS1D,OAAO,EAAE,OAAO,EAAe,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG1D,8BAAsB,cAAc,CAChC,GAAG,SAAS,KAAK,EACjB,IAAI,SAAS,QAAQ,GAAG,QAAQ,CAClC,SAAQ,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;IACrC,SAAS,CAAC,SAAS,CACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GAAG,MAAM,GACrB,UAAU,GAAG,eAAe;IAa/B,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe;IAwB1F,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,eAAe;IAcjF,EAAE,IAAI,MAAM;CAGf;AAED,qBAAa,UAAW,SAAQ,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe;CAGlD;AAED,qBAAa,cAAe,SAAQ,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC;IACpE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe;CAInD;AAED,qBAAa,WAAY,SAAQ,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe;CAInD;AAED,qBAAa,iBAAkB,SAAQ,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,eAAe;CAGtD;AAED,qBAAa,YAAa,SAAQ,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC;IACnE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,eAAe;CAGtD;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;IACjE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe;CAIlD;AAED,qBAAa,YAAa,SAAQ,cAAc,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC;IAChE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,eAAe;CA+BnD;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC;IACpE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAahC;AAED,qBAAa,cAAe,SAAQ,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC;IAClE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,eAAe;CAUjD;AAED,qBAAa,cAAe,SAAQ,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC;IAClE,MAAM,IAAI,eAAe;CAK5B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CA0C3F"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/view.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MissingMemView = exports.PointerMemView = exports.StructMemView = exports.ArrayMemView = exports.StringMemView = exports.BytesMemView = exports.FixedBytesMemView = exports.BoolMemView = exports.AddressMemView = exports.IntMemView = exports.BaseMemoryView = void 0;
3
+ exports.MissingMemView = exports.PointerMemView = exports.StructMemView = exports.ArrayMemView = exports.StringMemView = exports.BytesMemView = exports.PackedArrayMemView = exports.FixedBytesMemView = exports.SingleByteMemView = exports.BoolMemView = exports.AddressMemView = exports.IntMemView = exports.BaseMemoryView = void 0;
4
4
  exports.makeMemoryView = makeMemoryView;
5
5
  const solc_typed_ast_1 = require("solc-typed-ast");
6
6
  const view_1 = require("../view");
@@ -9,7 +9,14 @@ const utils_1 = require("../../../utils");
9
9
  const util_1 = require("@ethereumjs/util");
10
10
  const exp_types_1 = require("../exp_types");
11
11
  const utils_2 = require("../utils");
12
+ const utils_3 = require("ethereum-cryptography/utils");
12
13
  class BaseMemoryView extends view_1.View {
14
+ writeMemAt(value, off, mem) {
15
+ if (off < 0n || off + BigInt(value.length) > BigInt(mem.length)) {
16
+ throw new view_1.EncodingError(`OoB writing mem at ${off} of length ${value.length} in memory of size ${mem.length}`);
17
+ }
18
+ mem.set(value, Number(off));
19
+ }
13
20
  readMemAt(off, calldata, len) {
14
21
  const res = (0, utils_1.readMem)(off, len, calldata);
15
22
  if (!res) {
@@ -35,25 +42,27 @@ class BaseMemoryView extends view_1.View {
35
42
  }
36
43
  return res;
37
44
  }
38
- decodeBytesAt(loc, state) {
39
- const len = this.decodeIntAt(loc, utils_1.uint256, state);
40
- if ((0, utils_2.isFailure)(len)) {
41
- return len;
42
- }
43
- if (len >= utils_1.MAX_ARR_DECODE_LIMIT) {
44
- return new value_1.DecodingFailure(`Bytes to decode too large - ${len}`);
45
- }
46
- return this.readMemAt(loc + 32n, state, len);
47
- }
48
45
  pp() {
49
46
  return `<${this.type.pp()}@${this.loc} in memory>`;
50
47
  }
48
+ get offset() {
49
+ return this.loc;
50
+ }
51
+ encodeIntAt(value, off, state) {
52
+ const word = new Uint8Array(32);
53
+ // Note nBytes is always 32 - an int always takes up the full word
54
+ (0, utils_1.encodeBigintInBigEndianBuf)(value, word, 32, 32);
55
+ this.writeMemAt(word, off, state);
56
+ }
51
57
  }
52
58
  exports.BaseMemoryView = BaseMemoryView;
53
59
  class IntMemView extends BaseMemoryView {
54
60
  decode(state) {
55
61
  return this.decodeIntAt(this.loc, this.type, state);
56
62
  }
63
+ encode(value, state) {
64
+ this.encodeIntAt(value, this.loc, state);
65
+ }
57
66
  }
58
67
  exports.IntMemView = IntMemView;
59
68
  class AddressMemView extends BaseMemoryView {
@@ -61,32 +70,108 @@ class AddressMemView extends BaseMemoryView {
61
70
  const m = this.readMemAt(this.loc + 12n, state, 20);
62
71
  return (0, utils_2.isFailure)(m) ? m : new util_1.Address(m);
63
72
  }
73
+ encode(value, state) {
74
+ // We write a full word to make sure the lower bytes are 0-ed out
75
+ const w = new Uint8Array(32);
76
+ w.set(value.bytes, 12);
77
+ this.writeMemAt(w, this.loc, state);
78
+ }
64
79
  }
65
80
  exports.AddressMemView = AddressMemView;
81
+ const ONE_BYTES32 = new Uint8Array(32);
82
+ ONE_BYTES32[31] = 1;
66
83
  class BoolMemView extends BaseMemoryView {
67
84
  decode(state) {
68
85
  const m = this.readMemAt(this.loc, state, 32);
69
86
  return (0, utils_2.isFailure)(m) ? m : (0, utils_1.bigEndianBufToBigint)(m) !== 0n;
70
87
  }
88
+ encode(value, state) {
89
+ this.writeMemAt(value ? ONE_BYTES32 : utils_1.ZERO_BYTES32, this.loc, state);
90
+ }
71
91
  }
72
92
  exports.BoolMemView = BoolMemView;
93
+ /**
94
+ * We need a special SingleByteMemView for FixedBytesMemView's indexView() method.
95
+ * We cannot just re-use FixedBytesMemView, since even for a single byte, that will
96
+ * write 32 bytes with padded zeroes.
97
+ */
98
+ class SingleByteMemView extends BaseMemoryView {
99
+ constructor(loc) {
100
+ super(solc_typed_ast_1.types.byte, loc);
101
+ }
102
+ decode(state) {
103
+ if (this.loc < 0 || this.loc > state.length) {
104
+ return new value_1.DecodingFailure(`OoB byte access at ${this.loc}`);
105
+ }
106
+ return state[Number(this.loc)];
107
+ }
108
+ encode(value, state) {
109
+ const w = new Uint8Array([value]);
110
+ this.writeMemAt(w, this.loc, state);
111
+ }
112
+ }
113
+ exports.SingleByteMemView = SingleByteMemView;
73
114
  class FixedBytesMemView extends BaseMemoryView {
74
115
  decode(state) {
75
116
  return this.readMemAt(this.loc, state, this.type.size);
76
117
  }
118
+ encode(value, state) {
119
+ const w = new Uint8Array(32);
120
+ w.set(value);
121
+ this.writeMemAt(w, this.loc, state);
122
+ }
123
+ indexView(key) {
124
+ if (key >= this.type.size || key < 0n) {
125
+ return new value_1.DecodingFailure(`Invalid index ${key} in ${this.type.pp()}`);
126
+ }
127
+ return new SingleByteMemView(this.loc + key);
128
+ }
77
129
  }
78
130
  exports.FixedBytesMemView = FixedBytesMemView;
79
- class BytesMemView extends BaseMemoryView {
131
+ class PackedArrayMemView extends BaseMemoryView {
132
+ decodeBytesAt(loc, state) {
133
+ const len = this.decodeIntAt(loc, utils_1.uint256, state);
134
+ if ((0, utils_2.isFailure)(len)) {
135
+ return len;
136
+ }
137
+ if (len >= utils_1.MAX_ARR_DECODE_LIMIT) {
138
+ return new value_1.DecodingFailure(`Bytes to decode too large - ${len}`);
139
+ }
140
+ return this.readMemAt(loc + 32n, state, len);
141
+ }
142
+ encodeBytesAt(value, off, state) {
143
+ this.encodeIntAt(BigInt(value.length), off, state);
144
+ this.writeMemAt(value, off + 32n, state);
145
+ }
146
+ }
147
+ exports.PackedArrayMemView = PackedArrayMemView;
148
+ class BytesMemView extends PackedArrayMemView {
80
149
  decode(state) {
81
150
  return this.decodeBytesAt(this.loc, state);
82
151
  }
152
+ encode(value, state) {
153
+ this.encodeBytesAt(value, this.loc, state);
154
+ }
155
+ indexView(key, state) {
156
+ const len = this.decodeIntAt(this.loc, utils_1.uint256, state);
157
+ if ((0, utils_2.isFailure)(len)) {
158
+ return len;
159
+ }
160
+ if (key >= len || key < 0n) {
161
+ return new value_1.DecodingFailure(`Invalid index ${key} in bytes of size ${len}`);
162
+ }
163
+ return new SingleByteMemView(this.loc + 32n + key);
164
+ }
83
165
  }
84
166
  exports.BytesMemView = BytesMemView;
85
- class StringMemView extends BaseMemoryView {
167
+ class StringMemView extends PackedArrayMemView {
86
168
  decode(state) {
87
169
  const bytes = this.decodeBytesAt(this.loc, state);
88
170
  return (0, utils_2.isFailure)(bytes) ? bytes : (0, util_1.bytesToUtf8)(bytes);
89
171
  }
172
+ encode(value, state) {
173
+ this.encodeBytesAt((0, utils_3.utf8ToBytes)(value), this.loc, state);
174
+ }
90
175
  }
91
176
  exports.StringMemView = StringMemView;
92
177
  class ArrayMemView extends BaseMemoryView {
@@ -115,6 +200,36 @@ class ArrayMemView extends BaseMemoryView {
115
200
  }
116
201
  return res;
117
202
  }
203
+ encode(value, state, alloc) {
204
+ let off = this.loc;
205
+ if (this.type.size === undefined) {
206
+ this.encodeIntAt(BigInt(value.length), off, state);
207
+ off += 32n;
208
+ }
209
+ for (const v of value) {
210
+ const view = makeMemoryView(this.type.elementT, off);
211
+ view.encode(v, state, alloc);
212
+ off += 32n;
213
+ }
214
+ }
215
+ indexView(key, state) {
216
+ let addr = this.loc;
217
+ let size;
218
+ if (this.type.size === undefined) {
219
+ size = this.decodeIntAt(addr, utils_1.uint256, state);
220
+ if ((0, utils_2.isFailure)(size)) {
221
+ return size;
222
+ }
223
+ addr += 32n;
224
+ }
225
+ else {
226
+ size = this.type.size;
227
+ }
228
+ if (key >= size || key < 0n) {
229
+ return new value_1.DecodingFailure(`Invalid index ${key} to array of size ${size}`);
230
+ }
231
+ return makeMemoryView(this.type.elementT, addr + key * 32n);
232
+ }
118
233
  }
119
234
  exports.ArrayMemView = ArrayMemView;
120
235
  class StructMemView extends BaseMemoryView {
@@ -128,16 +243,68 @@ class StructMemView extends BaseMemoryView {
128
243
  }
129
244
  return new value_1.Struct(entries);
130
245
  }
246
+ encode(value, state, alloc) {
247
+ let offset = this.loc;
248
+ (0, solc_typed_ast_1.assert)(value.entries.length === this.type.fields.length, `Mismatch in encoding struct`);
249
+ for (let i = 0; i < this.type.fields.length; i++) {
250
+ const [, type] = this.type.fields[i];
251
+ const view = makeMemoryView(type, offset);
252
+ view.encode(value.entries[i][1], state, alloc);
253
+ offset += 32n;
254
+ }
255
+ }
256
+ fieldView(name) {
257
+ let offset = this.loc;
258
+ for (const [fieldName, type] of this.type.fields) {
259
+ if (fieldName === name) {
260
+ return makeMemoryView(type, offset);
261
+ }
262
+ offset += 32n;
263
+ }
264
+ return new value_1.DecodingFailure(`No such field ${name} on struct ${this.type.pp()}`);
265
+ }
131
266
  }
132
267
  exports.StructMemView = StructMemView;
133
268
  class PointerMemView extends BaseMemoryView {
134
269
  decode(state) {
270
+ const view = this.toView(state);
271
+ if ((0, utils_2.isFailure)(view)) {
272
+ return view;
273
+ }
274
+ return view.decode(state);
275
+ }
276
+ /**
277
+ * Helper to compute how much memory we need to allocate for a pointed-to value of type t
278
+ */
279
+ static allocSize(v, t) {
280
+ if (t instanceof solc_typed_ast_1.ArrayType) {
281
+ return (v.length * PointerMemView.allocSize(undefined, t.elementT) +
282
+ (t.size !== undefined ? 0 : 32));
283
+ }
284
+ if (t instanceof exp_types_1.ExpStructType) {
285
+ let size = 0;
286
+ for (let i = 0; i < t.fields.length; i++) {
287
+ size += PointerMemView.allocSize(v.entries[i][1], t.fields[i][1]);
288
+ }
289
+ return size;
290
+ }
291
+ if (t instanceof solc_typed_ast_1.PackedArrayType) {
292
+ return Buffer.from(v).length + 32;
293
+ }
294
+ return 32;
295
+ }
296
+ encode(value, state, alloc) {
297
+ const ptr = alloc.alloc(PointerMemView.allocSize(value, this.type.to));
298
+ this.encodeIntAt(ptr, this.loc, state);
299
+ const view = makeMemoryView(this.type.to, ptr);
300
+ view.encode(value, state, alloc);
301
+ }
302
+ toView(state) {
135
303
  const offset = this.decodeIntAt(this.loc, utils_1.uint256, state);
136
304
  if ((0, utils_2.isFailure)(offset)) {
137
305
  return offset;
138
306
  }
139
- const view = makeMemoryView(this.type.to, offset);
140
- return view.decode(state);
307
+ return makeMemoryView(this.type.to, offset);
141
308
  }
142
309
  }
143
310
  exports.PointerMemView = PointerMemView;
@@ -145,6 +312,9 @@ class MissingMemView extends BaseMemoryView {
145
312
  decode() {
146
313
  return new value_1.DecodingFailure(`${this.type.rawTypeName ? this.type.rawTypeName.type : "<unknown>"}`);
147
314
  }
315
+ encode() {
316
+ throw new view_1.EncodingError(`Cannot encode missing type ${this.type.pp()}`);
317
+ }
148
318
  }
149
319
  exports.MissingMemView = MissingMemView;
150
320
  function makeMemoryView(type, loc) {
@@ -1 +1 @@
1
- {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../src/debug/decoding/memory/view.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { makeStackView } from "./view";
1
+ export * from "./view";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/decoding/stack/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -1,6 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeStackView = void 0;
4
- var view_1 = require("./view");
5
- Object.defineProperty(exports, "makeStackView", { enumerable: true, get: function () { return view_1.makeStackView; } });
17
+ __exportStar(require("./view"), exports);
6
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/decoding/stack/index.ts"],"names":[],"mappings":";;;AAAA,+BAAuC;AAA9B,qGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/decoding/stack/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}