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.
- package/dist/artifacts/helpers.d.ts +3 -3
- package/dist/artifacts/helpers.d.ts.map +1 -1
- package/dist/artifacts/helpers.js +17 -53
- package/dist/artifacts/helpers.js.map +1 -1
- package/dist/artifacts/solc.d.ts +1 -8
- package/dist/artifacts/solc.d.ts.map +1 -1
- package/dist/debug/abi.d.ts +11 -41
- package/dist/debug/abi.d.ts.map +1 -1
- package/dist/debug/abi.js +60 -294
- package/dist/debug/abi.js.map +1 -1
- package/dist/debug/artifact_manager/artifact_manager.d.ts +17 -42
- package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -1
- package/dist/debug/artifact_manager/artifact_manager.js +82 -21
- package/dist/debug/artifact_manager/artifact_manager.js.map +1 -1
- package/dist/debug/artifact_manager/bytecode_templates.d.ts +1 -1
- package/dist/debug/artifact_manager/bytecode_templates.d.ts.map +1 -1
- package/dist/debug/artifact_manager/bytecode_templates.js +3 -2
- package/dist/debug/artifact_manager/bytecode_templates.js.map +1 -1
- package/dist/debug/artifact_manager/index.d.ts +1 -0
- package/dist/debug/artifact_manager/index.d.ts.map +1 -1
- package/dist/debug/artifact_manager/index.js +1 -0
- package/dist/debug/artifact_manager/index.js.map +1 -1
- package/dist/debug/artifact_manager/types.d.ts +129 -0
- package/dist/debug/artifact_manager/types.d.ts.map +1 -0
- package/dist/debug/artifact_manager/types.js +12 -0
- package/dist/debug/artifact_manager/types.js.map +1 -0
- package/dist/debug/decoding/calldata/index.d.ts +2 -0
- package/dist/debug/decoding/calldata/index.d.ts.map +1 -0
- package/dist/debug/decoding/calldata/index.js +6 -0
- package/dist/debug/decoding/calldata/index.js.map +1 -0
- package/dist/debug/decoding/calldata/view.d.ts +74 -0
- package/dist/debug/decoding/calldata/view.d.ts.map +1 -0
- package/dist/debug/decoding/calldata/view.js +397 -0
- package/dist/debug/decoding/calldata/view.js.map +1 -0
- package/dist/debug/decoding/exp_types.d.ts +46 -0
- package/dist/debug/decoding/exp_types.d.ts.map +1 -0
- package/dist/debug/decoding/exp_types.js +202 -0
- package/dist/debug/decoding/exp_types.js.map +1 -0
- package/dist/debug/decoding/general.d.ts +5 -9
- package/dist/debug/decoding/general.d.ts.map +1 -1
- package/dist/debug/decoding/general.js +25 -103
- package/dist/debug/decoding/general.js.map +1 -1
- package/dist/debug/decoding/index.d.ts +1 -0
- package/dist/debug/decoding/index.d.ts.map +1 -1
- package/dist/debug/decoding/index.js +1 -0
- package/dist/debug/decoding/index.js.map +1 -1
- package/dist/debug/decoding/memory/index.d.ts +2 -0
- package/dist/debug/decoding/memory/index.d.ts.map +1 -0
- package/dist/debug/decoding/memory/index.js +6 -0
- package/dist/debug/decoding/memory/index.js.map +1 -0
- package/dist/debug/decoding/memory/view.d.ts +44 -0
- package/dist/debug/decoding/memory/view.d.ts.map +1 -0
- package/dist/debug/decoding/memory/view.js +183 -0
- package/dist/debug/decoding/memory/view.js.map +1 -0
- package/dist/debug/decoding/stack/index.d.ts +2 -0
- package/dist/debug/decoding/stack/index.d.ts.map +1 -0
- package/dist/debug/decoding/stack/index.js +6 -0
- package/dist/debug/decoding/stack/index.js.map +1 -0
- package/dist/debug/decoding/stack/view.d.ts +29 -0
- package/dist/debug/decoding/stack/view.d.ts.map +1 -0
- package/dist/debug/decoding/stack/view.js +116 -0
- package/dist/debug/decoding/stack/view.js.map +1 -0
- package/dist/debug/decoding/storage/index.d.ts +2 -0
- package/dist/debug/decoding/storage/index.d.ts.map +1 -0
- package/dist/debug/decoding/storage/index.js +6 -0
- package/dist/debug/decoding/storage/index.js.map +1 -0
- package/dist/debug/decoding/storage/view.d.ts +90 -0
- package/dist/debug/decoding/storage/view.d.ts.map +1 -0
- package/dist/debug/decoding/storage/view.js +465 -0
- package/dist/debug/decoding/storage/view.js.map +1 -0
- package/dist/debug/decoding/utils.d.ts +17 -0
- package/dist/debug/decoding/utils.d.ts.map +1 -0
- package/dist/debug/decoding/utils.js +43 -0
- package/dist/debug/decoding/utils.js.map +1 -0
- package/dist/debug/decoding/value.d.ts +50 -0
- package/dist/debug/decoding/value.d.ts.map +1 -0
- package/dist/debug/decoding/value.js +106 -0
- package/dist/debug/decoding/value.js.map +1 -0
- package/dist/debug/decoding/view.d.ts +20 -0
- package/dist/debug/decoding/view.d.ts.map +1 -0
- package/dist/debug/decoding/view.js +15 -0
- package/dist/debug/decoding/view.js.map +1 -0
- package/dist/debug/foundry_cheatcodes.js +6 -6
- package/dist/debug/foundry_cheatcodes.js.map +1 -1
- package/dist/debug/layout.d.ts +4 -6
- package/dist/debug/layout.d.ts.map +1 -1
- package/dist/debug/layout.js +13 -77
- package/dist/debug/layout.js.map +1 -1
- package/dist/debug/opcode_interposing.js +3 -3
- package/dist/debug/opcode_interposing.js.map +1 -1
- package/dist/debug/opcodes.d.ts.map +1 -1
- package/dist/debug/opcodes.js +3 -1
- package/dist/debug/opcodes.js.map +1 -1
- package/dist/debug/tracers/sol_debugger.d.ts.map +1 -1
- package/dist/debug/tracers/sol_debugger.js +2 -1
- package/dist/debug/tracers/sol_debugger.js.map +1 -1
- package/dist/debug/tracers/transformers/basic_info.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/basic_info.js +4 -3
- package/dist/debug/tracers/transformers/basic_info.js.map +1 -1
- package/dist/debug/tracers/transformers/events.js +2 -2
- package/dist/debug/tracers/transformers/events.js.map +1 -1
- package/dist/debug/tracers/transformers/exc_info.d.ts +15 -0
- package/dist/debug/tracers/transformers/exc_info.d.ts.map +1 -0
- package/dist/debug/tracers/transformers/exc_info.js +39 -0
- package/dist/debug/tracers/transformers/exc_info.js.map +1 -0
- package/dist/debug/tracers/transformers/ext_stack.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/ext_stack.js +11 -26
- package/dist/debug/tracers/transformers/ext_stack.js.map +1 -1
- package/dist/debug/tracers/transformers/index.d.ts +1 -0
- package/dist/debug/tracers/transformers/index.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/index.js +1 -0
- package/dist/debug/tracers/transformers/index.js.map +1 -1
- package/dist/debug/tracers/transformers/int_stack.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/int_stack.js +5 -13
- package/dist/debug/tracers/transformers/int_stack.js.map +1 -1
- package/dist/debug/tracers/transformers/keccak256_invert.js +4 -4
- package/dist/debug/tracers/transformers/keccak256_invert.js.map +1 -1
- package/dist/debug/tracers/transformers/ret_info.d.ts +1 -1
- package/dist/debug/tracers/transformers/ret_info.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/ret_info.js +46 -32
- package/dist/debug/tracers/transformers/ret_info.js.map +1 -1
- package/dist/debug/types.d.ts +63 -22
- package/dist/debug/types.d.ts.map +1 -1
- package/dist/debug/types.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/misc.d.ts +16 -11
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +37 -49
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/pp.d.ts +3 -1
- package/dist/utils/pp.d.ts.map +1 -1
- package/dist/utils/pp.js +10 -27
- package/dist/utils/pp.js.map +1 -1
- package/dist/utils/solidity.d.ts +11 -0
- package/dist/utils/solidity.d.ts.map +1 -0
- package/dist/utils/solidity.js +69 -0
- package/dist/utils/solidity.js.map +1 -0
- package/dist/utils/test_runner.d.ts +5 -2
- package/dist/utils/test_runner.d.ts.map +1 -1
- package/dist/utils/test_runner.js +11 -7
- package/dist/utils/test_runner.js.map +1 -1
- package/dist/utils/trace.d.ts +5 -1
- package/dist/utils/trace.d.ts.map +1 -1
- package/dist/utils/trace.js +16 -0
- package/dist/utils/trace.js.map +1 -1
- package/dist/utils/types.d.ts +9 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +8 -4
- package/dist/debug/decoding/calldata.d.ts +0 -6
- package/dist/debug/decoding/calldata.d.ts.map +0 -1
- package/dist/debug/decoding/calldata.js +0 -244
- package/dist/debug/decoding/calldata.js.map +0 -1
- package/dist/debug/decoding/memory.d.ts +0 -4
- package/dist/debug/decoding/memory.d.ts.map +0 -1
- package/dist/debug/decoding/memory.js +0 -216
- package/dist/debug/decoding/memory.js.map +0 -1
- package/dist/debug/decoding/stack.d.ts +0 -9
- package/dist/debug/decoding/stack.d.ts.map +0 -1
- package/dist/debug/decoding/stack.js +0 -84
- package/dist/debug/decoding/stack.js.map +0 -1
- package/dist/debug/decoding/storage.d.ts +0 -7
- package/dist/debug/decoding/storage.d.ts.map +0 -1
- package/dist/debug/decoding/storage.js +0 -393
- package/dist/debug/decoding/storage.js.map +0 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isCalldataArrayType = isCalldataArrayType;
|
|
4
|
+
exports.inRange = inRange;
|
|
5
|
+
exports.isFailure = isFailure;
|
|
6
|
+
exports.isTypeStringDynamicArray = isTypeStringDynamicArray;
|
|
7
|
+
exports.isTypeStringMapping = isTypeStringMapping;
|
|
8
|
+
exports.isTypeStringStruct = isTypeStringStruct;
|
|
9
|
+
exports.isTypeStringStatic32BytesInStorage = isTypeStringStatic32BytesInStorage;
|
|
10
|
+
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
11
|
+
const value_1 = require("./value");
|
|
12
|
+
function isCalldataArrayType(typ) {
|
|
13
|
+
return (typ instanceof solc_typed_ast_1.PointerType &&
|
|
14
|
+
((typ.to instanceof solc_typed_ast_1.ArrayType && typ.to.size === undefined) ||
|
|
15
|
+
typ.to instanceof solc_typed_ast_1.PackedArrayType) &&
|
|
16
|
+
typ.location === solc_typed_ast_1.DataLocation.CallData);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Returns true IFF the n >= min && n <= max
|
|
20
|
+
*
|
|
21
|
+
* @param n
|
|
22
|
+
* @param min
|
|
23
|
+
* @param max
|
|
24
|
+
*/
|
|
25
|
+
function inRange(n, min, max) {
|
|
26
|
+
return BigInt(n) >= BigInt(min) && BigInt(n) <= BigInt(max);
|
|
27
|
+
}
|
|
28
|
+
function isFailure(t) {
|
|
29
|
+
return t instanceof value_1.DecodingFailure;
|
|
30
|
+
}
|
|
31
|
+
function isTypeStringDynamicArray(t) {
|
|
32
|
+
return t.endsWith("[]");
|
|
33
|
+
}
|
|
34
|
+
function isTypeStringMapping(t) {
|
|
35
|
+
return t.startsWith("mapping(");
|
|
36
|
+
}
|
|
37
|
+
function isTypeStringStruct(t) {
|
|
38
|
+
return t.startsWith("struct ");
|
|
39
|
+
}
|
|
40
|
+
function isTypeStringStatic32BytesInStorage(t) {
|
|
41
|
+
return isTypeStringDynamicArray(t) || isTypeStringMapping(t);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/debug/decoding/utils.ts"],"names":[],"mappings":";;AASA,kDAOC;AASD,0BAEC;AAED,8BAEC;AAED,4DAEC;AAED,kDAEC;AAED,gDAEC;AAED,gFAEC;AA/CD,mDAMwB;AACxB,mCAAiD;AAEjD,SAAgB,mBAAmB,CAAC,GAAa;IAC7C,OAAO,CACH,GAAG,YAAY,4BAAW;QAC1B,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,0BAAS,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;YACvD,GAAG,CAAC,EAAE,YAAY,gCAAe,CAAC;QACtC,GAAG,CAAC,QAAQ,KAAK,6BAAe,CAAC,QAAQ,CAC5C,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,CAAkB,EAAE,GAAoB,EAAE,GAAoB;IAClF,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,SAAS,CAAC,CAAQ;IAC9B,OAAO,CAAC,YAAY,uBAAe,CAAC;AACxC,CAAC;AAED,SAAgB,wBAAwB,CAAC,CAAS;IAC9C,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,mBAAmB,CAAC,CAAS;IACzC,OAAO,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,kBAAkB,CAAC,CAAS;IACxC,OAAO,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,kCAAkC,CAAC,CAAS;IACxD,OAAO,wBAAwB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Address } from "@ethereumjs/util";
|
|
2
|
+
import { FunctionDefinition, TypeNode } from "solc-typed-ast";
|
|
3
|
+
import { View } from "./view";
|
|
4
|
+
export declare class ExternalFunRef {
|
|
5
|
+
readonly address: Address;
|
|
6
|
+
readonly selector: Uint8Array;
|
|
7
|
+
constructor(address: Address, selector: Uint8Array);
|
|
8
|
+
}
|
|
9
|
+
export declare class InternalFunRef {
|
|
10
|
+
readonly fun: FunctionDefinition;
|
|
11
|
+
constructor(fun: FunctionDefinition);
|
|
12
|
+
}
|
|
13
|
+
export type FunctionValue = ExternalFunRef | InternalFunRef;
|
|
14
|
+
export declare class Struct {
|
|
15
|
+
readonly entries: Array<[string, Value]>;
|
|
16
|
+
constructor(entries: Array<[string, Value]>);
|
|
17
|
+
field(name: string): Value;
|
|
18
|
+
}
|
|
19
|
+
export declare class Slice {
|
|
20
|
+
readonly array: Value[];
|
|
21
|
+
readonly start: number;
|
|
22
|
+
readonly end: number;
|
|
23
|
+
constructor(array: Value[], start: number, end: number);
|
|
24
|
+
}
|
|
25
|
+
export declare abstract class Poison {
|
|
26
|
+
abstract pp(): string;
|
|
27
|
+
}
|
|
28
|
+
export declare class DecodingFailure extends Poison {
|
|
29
|
+
readonly reason: string;
|
|
30
|
+
constructor(reason: string);
|
|
31
|
+
pp(): string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Return true if `v` is a type of Poison.
|
|
35
|
+
* @param v
|
|
36
|
+
* @returns
|
|
37
|
+
*/
|
|
38
|
+
export declare function isPoison(v: Value): v is Poison;
|
|
39
|
+
/**
|
|
40
|
+
* Return true if `v` contains any Poison inside.
|
|
41
|
+
* @param v
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
export declare function hasPoison(v: Value): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Typescript types corresponding to various Solidity types.
|
|
47
|
+
* Includes both primitive (value) types and compound types
|
|
48
|
+
*/
|
|
49
|
+
export type Value = bigint | boolean | Uint8Array | string | number | Address | FunctionValue | Value[] | Slice | Struct | Map<Value, Value> | View<any, Value, any, TypeNode> | Poison;
|
|
50
|
+
//# sourceMappingURL=value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAU,kBAAkB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,cAAc;aAEH,OAAO,EAAE,OAAO;aAChB,QAAQ,EAAE,UAAU;gBADpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU;CAE3C;AAED,qBAAa,cAAc;aACK,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;CACtD;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;AAE5D,qBAAa,MAAM;aACa,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAA/B,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;CAS7B;AAED,qBAAa,KAAK;aAEM,KAAK,EAAE,KAAK,EAAE;aACd,KAAK,EAAE,MAAM;aACb,GAAG,EAAE,MAAM;gBAFX,KAAK,EAAE,KAAK,EAAE,EACd,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM;CAElC;AAED,8BAAsB,MAAM;IACxB,QAAQ,CAAC,EAAE,IAAI,MAAM;CACxB;AAED,qBAAa,eAAgB,SAAQ,MAAM;aACX,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAI1C,EAAE,IAAI,MAAM;CAGf;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CA8C3C;AAED;;;GAGG;AACH,MAAM,MAAM,KAAK,GACX,MAAM,GACN,OAAO,GACP,UAAU,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,aAAa,GACb,KAAK,EAAE,GACP,KAAK,GACL,MAAM,GACN,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAGjB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,GAC/B,MAAM,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DecodingFailure = exports.Poison = exports.Slice = exports.Struct = exports.InternalFunRef = exports.ExternalFunRef = void 0;
|
|
4
|
+
exports.isPoison = isPoison;
|
|
5
|
+
exports.hasPoison = hasPoison;
|
|
6
|
+
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
7
|
+
class ExternalFunRef {
|
|
8
|
+
constructor(address, selector) {
|
|
9
|
+
this.address = address;
|
|
10
|
+
this.selector = selector;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ExternalFunRef = ExternalFunRef;
|
|
14
|
+
class InternalFunRef {
|
|
15
|
+
constructor(fun) {
|
|
16
|
+
this.fun = fun;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.InternalFunRef = InternalFunRef;
|
|
20
|
+
class Struct {
|
|
21
|
+
constructor(entries) {
|
|
22
|
+
this.entries = entries;
|
|
23
|
+
}
|
|
24
|
+
field(name) {
|
|
25
|
+
for (const [fieldName, val] of this.entries) {
|
|
26
|
+
if (name === fieldName) {
|
|
27
|
+
return val;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
(0, solc_typed_ast_1.assert)(false, `No field ${name} in ${this.entries}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Struct = Struct;
|
|
34
|
+
class Slice {
|
|
35
|
+
constructor(array, start, end) {
|
|
36
|
+
this.array = array;
|
|
37
|
+
this.start = start;
|
|
38
|
+
this.end = end;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.Slice = Slice;
|
|
42
|
+
class Poison {
|
|
43
|
+
}
|
|
44
|
+
exports.Poison = Poison;
|
|
45
|
+
class DecodingFailure extends Poison {
|
|
46
|
+
constructor(reason) {
|
|
47
|
+
super();
|
|
48
|
+
this.reason = reason;
|
|
49
|
+
}
|
|
50
|
+
pp() {
|
|
51
|
+
return `<err:${this.reason}>`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.DecodingFailure = DecodingFailure;
|
|
55
|
+
/**
|
|
56
|
+
* Return true if `v` is a type of Poison.
|
|
57
|
+
* @param v
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
function isPoison(v) {
|
|
61
|
+
return v instanceof Poison;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Return true if `v` contains any Poison inside.
|
|
65
|
+
* @param v
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
function hasPoison(v) {
|
|
69
|
+
if (isPoison(v)) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
if (v instanceof Array) {
|
|
73
|
+
for (const el of v) {
|
|
74
|
+
if (hasPoison(el)) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (v instanceof Slice) {
|
|
81
|
+
for (const el of v.array.slice(v.start, v.end)) {
|
|
82
|
+
if (hasPoison(el)) {
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if (v instanceof Struct) {
|
|
89
|
+
for (const [, field] of v.entries) {
|
|
90
|
+
if (hasPoison(field)) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
if (v instanceof Map) {
|
|
97
|
+
for (const [key, val] of v.entries()) {
|
|
98
|
+
if (hasPoison(key) || hasPoison(val)) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=value.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value.js","sourceRoot":"","sources":["../../../src/debug/decoding/value.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TypeNode } from "solc-typed-ast";
|
|
2
|
+
import { DecodingFailure, Value } from "./value";
|
|
3
|
+
import { Memory, Stack } from "../types";
|
|
4
|
+
export type StateArea = Memory | Stack | Storage;
|
|
5
|
+
/**
|
|
6
|
+
* Base class for all data {@link View}s. Views are parametrized by the {@link State} they project from (e.g. Memory, Storage, Calldata),
|
|
7
|
+
* the Solidity {@link Type} of the element they are decoding as well as Typescript type of the {@link Value} they decode.
|
|
8
|
+
*/
|
|
9
|
+
export declare abstract class View<State = StateArea, Val extends Value = Value, Loc = any, Type extends TypeNode = TypeNode> {
|
|
10
|
+
readonly type: Type;
|
|
11
|
+
protected loc: Loc;
|
|
12
|
+
constructor(type: Type, loc: Loc);
|
|
13
|
+
/**
|
|
14
|
+
* Decode a value from the given State
|
|
15
|
+
* @param state
|
|
16
|
+
*/
|
|
17
|
+
abstract decode(state: State): Val | DecodingFailure;
|
|
18
|
+
abstract pp(): string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjD;;;GAGG;AACH,8BAAsB,IAAI,CACtB,KAAK,GAAG,SAAS,EACjB,GAAG,SAAS,KAAK,GAAG,KAAK,EACzB,GAAG,GAAG,GAAG,EACT,IAAI,SAAS,QAAQ,GAAG,QAAQ;aAGZ,IAAI,EAAE,IAAI;IAC1B,SAAS,CAAC,GAAG,EAAE,GAAG;gBADF,IAAI,EAAE,IAAI,EAChB,GAAG,EAAE,GAAG;IAGtB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,GAAG,eAAe;IACpD,QAAQ,CAAC,EAAE,IAAI,MAAM;CAExB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.View = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Base class for all data {@link View}s. Views are parametrized by the {@link State} they project from (e.g. Memory, Storage, Calldata),
|
|
6
|
+
* the Solidity {@link Type} of the element they are decoding as well as Typescript type of the {@link Value} they decode.
|
|
7
|
+
*/
|
|
8
|
+
class View {
|
|
9
|
+
constructor(type, loc) {
|
|
10
|
+
this.type = type;
|
|
11
|
+
this.loc = loc;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.View = View;
|
|
15
|
+
//# sourceMappingURL=view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/debug/decoding/view.ts"],"names":[],"mappings":";;;AAMA;;;GAGG;AACH,MAAsB,IAAI;IAMtB,YACoB,IAAU,EAChB,GAAQ;QADF,SAAI,GAAJ,IAAI,CAAM;QAChB,QAAG,GAAH,GAAG,CAAK;IACnB,CAAC;CASP;AAlBD,oBAkBC"}
|
|
@@ -8,8 +8,8 @@ const evm_1 = require("@ethereumjs/evm");
|
|
|
8
8
|
const util_1 = require("@ethereumjs/util");
|
|
9
9
|
const keccak_js_1 = require("ethereum-cryptography/keccak.js");
|
|
10
10
|
const utils_1 = require("ethereum-cryptography/utils");
|
|
11
|
-
const utils_2 = require("../utils");
|
|
12
11
|
const exceptions_1 = require("../utils/ethereumjs_internal/exceptions");
|
|
12
|
+
const misc_1 = require("../utils/misc");
|
|
13
13
|
/**
|
|
14
14
|
* Each test/cases/debug session is associated with a unique VM. And there are
|
|
15
15
|
* multiple interpreter instances per VM. We keep 1 event emitter per VM, so
|
|
@@ -81,7 +81,7 @@ function returnStateMatchesRevert(ret, state, expected) {
|
|
|
81
81
|
if (excDataSize < 4n || excData.length < 4) {
|
|
82
82
|
return false;
|
|
83
83
|
}
|
|
84
|
-
const actualSelector = (0,
|
|
84
|
+
const actualSelector = (0, misc_1.bigEndianBufToBigint)(excData.slice(0, 4));
|
|
85
85
|
return expected === actualSelector;
|
|
86
86
|
}
|
|
87
87
|
let actualBytes;
|
|
@@ -288,8 +288,8 @@ function makeFoundryCheatcodePrecompile() {
|
|
|
288
288
|
const pk = input.data.slice(4, 36);
|
|
289
289
|
const digest = input.data.slice(36, 68);
|
|
290
290
|
const sig = secp256k1.sign(digest, pk);
|
|
291
|
-
const r = (0,
|
|
292
|
-
const s = (0,
|
|
291
|
+
const r = (0, misc_1.bigIntToBuf)(sig.r, 32, "big");
|
|
292
|
+
const s = (0, misc_1.bigIntToBuf)(sig.s, 32, "big");
|
|
293
293
|
const v = (0, util_1.setLengthLeft)(new Uint8Array([sig.recovery + 27]), 32);
|
|
294
294
|
return {
|
|
295
295
|
executionGasUsed: 0n,
|
|
@@ -415,7 +415,7 @@ function makeFoundryCheatcodePrecompile() {
|
|
|
415
415
|
return (0, exceptions_1.EvmErrorResult)(new evm_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
|
|
416
416
|
}
|
|
417
417
|
const selector = input.data.slice(4, 8);
|
|
418
|
-
ctx.expectRevert((0,
|
|
418
|
+
ctx.expectRevert((0, misc_1.bigEndianBufToBigint)(selector));
|
|
419
419
|
return {
|
|
420
420
|
executionGasUsed: 0n,
|
|
421
421
|
returnValue: new Uint8Array()
|
|
@@ -425,7 +425,7 @@ function makeFoundryCheatcodePrecompile() {
|
|
|
425
425
|
if (input.data.length < 68) {
|
|
426
426
|
return (0, exceptions_1.EvmErrorResult)(new evm_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
|
|
427
427
|
}
|
|
428
|
-
const len = Number((0,
|
|
428
|
+
const len = Number((0, misc_1.bigEndianBufToBigint)(input.data.slice(36, 68)));
|
|
429
429
|
if (input.data.length < 68 + len) {
|
|
430
430
|
return (0, exceptions_1.EvmErrorResult)(new evm_1.EvmError(exceptions_1.ERROR.REVERT), 0n);
|
|
431
431
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundry_cheatcodes.js","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foundry_cheatcodes.js","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":"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"}
|
package/dist/debug/layout.d.ts
CHANGED
|
@@ -2,14 +2,12 @@ import { EVMStateManagerInterface } from "@ethereumjs/common";
|
|
|
2
2
|
import { Address } from "@ethereumjs/util";
|
|
3
3
|
import { ContractDefinition, InferType } from "solc-typed-ast";
|
|
4
4
|
import { IArtifactManager } from "./artifact_manager";
|
|
5
|
-
import { KeccakPreimageMap, MapKeys } from "./tracers";
|
|
5
|
+
import { KeccakPreimageMap, MapKeys } from "./tracers/transformers/keccak256_invert";
|
|
6
6
|
import { Storage } from "./types";
|
|
7
|
-
|
|
8
|
-
[key: string]: any;
|
|
9
|
-
}
|
|
7
|
+
import { Struct } from "./decoding/value";
|
|
10
8
|
export type ContractStates = {
|
|
11
|
-
[addres: string]:
|
|
9
|
+
[addres: string]: Struct;
|
|
12
10
|
};
|
|
13
11
|
export declare function decodeContractStates(artifactManager: IArtifactManager, contracts: Iterable<Address>, state: EVMStateManagerInterface, preimages: KeccakPreimageMap): Promise<ContractStates>;
|
|
14
|
-
export declare function decodeContractState(
|
|
12
|
+
export declare function decodeContractState(infer: InferType, contract: ContractDefinition, storage: Storage, mapKeys?: MapKeys): Struct;
|
|
15
13
|
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAU,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAc,iBAAiB,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AACjG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGlC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AAE1D,wBAAsB,oBAAoB,CACtC,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC5B,KAAK,EAAE,wBAAwB,EAC/B,SAAS,EAAE,iBAAiB,GAC7B,OAAO,CAAC,cAAc,CAAC,CAuBzB;AAED,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,GAClB,MAAM,CAQR"}
|
package/dist/debug/layout.js
CHANGED
|
@@ -3,15 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.decodeContractStates = decodeContractStates;
|
|
4
4
|
exports.decodeContractState = decodeContractState;
|
|
5
5
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
6
|
+
const basic_info_1 = require("./tracers/transformers/basic_info");
|
|
7
|
+
const keccak256_invert_1 = require("./tracers/transformers/keccak256_invert");
|
|
6
8
|
const decoding_1 = require("./decoding");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
function isTypeStringStatic32Bytes(t) {
|
|
10
|
-
return t.endsWith("[]") || t.includes("mapping(");
|
|
11
|
-
}
|
|
9
|
+
const utils_1 = require("./decoding/utils");
|
|
10
|
+
const value_1 = require("./decoding/value");
|
|
12
11
|
async function decodeContractStates(artifactManager, contracts, state, preimages) {
|
|
13
12
|
const res = {};
|
|
14
|
-
const mapKeys = (0,
|
|
13
|
+
const mapKeys = (0, keccak256_invert_1.getMapKeys)(preimages);
|
|
15
14
|
for (const addr of contracts) {
|
|
16
15
|
const code = await state.getContractCode(addr);
|
|
17
16
|
const info = artifactManager.getContractFromDeployedBytecode(code);
|
|
@@ -19,82 +18,19 @@ async function decodeContractStates(artifactManager, contracts, state, preimages
|
|
|
19
18
|
continue;
|
|
20
19
|
}
|
|
21
20
|
const infer = artifactManager.infer(info.artifact.compilerVersion);
|
|
22
|
-
const storage = await (0,
|
|
23
|
-
const contractState = decodeContractState(
|
|
21
|
+
const storage = await (0, basic_info_1.getStorage)(state, addr);
|
|
22
|
+
const contractState = decodeContractState(infer, info.ast, storage, mapKeys);
|
|
24
23
|
if (contractState) {
|
|
25
24
|
res[addr.toString()] = contractState;
|
|
26
25
|
}
|
|
27
26
|
}
|
|
28
27
|
return res;
|
|
29
28
|
}
|
|
30
|
-
function decodeContractState(
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
// If this is set, we set all remaining state vars in res to `undefined`.
|
|
38
|
-
// This is set when a failure in decoding prevents us from computing the rest of the
|
|
39
|
-
// contract layout. This could be due to a missing base contract or a missing type definition
|
|
40
|
-
// for a struct or user-defined value type.
|
|
41
|
-
let cannotDecodeRemaining = false;
|
|
42
|
-
for (const base of [...contract.vLinearizedBaseContracts].reverse()) {
|
|
43
|
-
if (base === null || base === undefined) {
|
|
44
|
-
cannotDecodeRemaining = true;
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
for (const varDecl of base.vStateVariables) {
|
|
48
|
-
// Not part of layout
|
|
49
|
-
if (varDecl.mutability === solc_typed_ast_1.Mutability.Constant ||
|
|
50
|
-
varDecl.mutability === solc_typed_ast_1.Mutability.Immutable) {
|
|
51
|
-
// @todo Support decoding constant state variables
|
|
52
|
-
res[varDecl.name] = undefined;
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
if (cannotDecodeRemaining) {
|
|
56
|
-
res[varDecl.name] = undefined;
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
let typeNode;
|
|
60
|
-
try {
|
|
61
|
-
typeNode = infer.variableDeclarationToTypeNode(varDecl);
|
|
62
|
-
}
|
|
63
|
-
catch (e) {
|
|
64
|
-
/**
|
|
65
|
-
* Missing type info. If this is a:
|
|
66
|
-
* - map type
|
|
67
|
-
* - array type
|
|
68
|
-
*
|
|
69
|
-
* then we can continue decoding as it takes exactly 32 bytes
|
|
70
|
-
* statically in the layout. Otherwise we have to abort decoding
|
|
71
|
-
*/
|
|
72
|
-
res[varDecl.name] = undefined;
|
|
73
|
-
if (isTypeStringStatic32Bytes(varDecl.typeString)) {
|
|
74
|
-
loc = (0, decoding_1.nextWord)(loc.endOffsetInWord === 32 ? loc : (0, decoding_1.nextWord)(loc));
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
cannotDecodeRemaining = true;
|
|
78
|
-
}
|
|
79
|
-
continue;
|
|
80
|
-
}
|
|
81
|
-
loc = (0, decoding_1.roundLocToType)(loc, typeNode, infer);
|
|
82
|
-
const arg = (0, decoding_1.stor_decodeValue)(typeNode, loc, storage, infer, mapKeys);
|
|
83
|
-
if (arg === undefined) {
|
|
84
|
-
if (typeNode instanceof solc_typed_ast_1.PointerType &&
|
|
85
|
-
(typeNode.to instanceof solc_typed_ast_1.ArrayType || typeNode.to instanceof solc_typed_ast_1.MappingType)) {
|
|
86
|
-
loc = (0, decoding_1.nextWord)(loc.endOffsetInWord === 32 ? loc : (0, decoding_1.nextWord)(loc));
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
cannotDecodeRemaining = true;
|
|
90
|
-
}
|
|
91
|
-
continue;
|
|
92
|
-
}
|
|
93
|
-
const [value, nextLoc] = arg;
|
|
94
|
-
res[varDecl.name] = value;
|
|
95
|
-
loc = nextLoc;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return res;
|
|
29
|
+
function decodeContractState(infer, contract, storage, mapKeys) {
|
|
30
|
+
const [layout] = (0, decoding_1.getContractLayoutType)(contract, infer);
|
|
31
|
+
const view = (0, decoding_1.makeStorageView)(layout, [0n, 32]);
|
|
32
|
+
const structState = view.decode(storage, mapKeys);
|
|
33
|
+
(0, solc_typed_ast_1.assert)(!(0, utils_1.isFailure)(structState) && structState instanceof value_1.Struct, ``);
|
|
34
|
+
return structState;
|
|
99
35
|
}
|
|
100
36
|
//# sourceMappingURL=layout.js.map
|
package/dist/debug/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":";;AAaA,oDA4BC;AAED,kDAaC;AAtDD,mDAAuE;AAEvE,kEAA+D;AAC/D,8EAAiG;AAEjG,yCAAoE;AACpE,4CAA6C;AAC7C,4CAA0C;AAInC,KAAK,UAAU,oBAAoB,CACtC,eAAiC,EACjC,SAA4B,EAC5B,KAA+B,EAC/B,SAA4B;IAE5B,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAA,6BAAU,EAAC,SAAS,CAAC,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,SAAS;QACb,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9C,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7E,IAAI,aAAa,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,aAAa,CAAC;QACzC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAgB,mBAAmB,CAC/B,KAAgB,EAChB,QAA4B,EAC5B,OAAgB,EAChB,OAAiB;IAEjB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,gCAAqB,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAA,0BAAe,EAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAElD,IAAA,uBAAM,EAAC,CAAC,IAAA,iBAAS,EAAC,WAAW,CAAC,IAAI,WAAW,YAAY,cAAM,EAAE,EAAE,CAAC,CAAC;IAErE,OAAO,WAAW,CAAC;AACvB,CAAC"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.foundryInterposedOps = foundryInterposedOps;
|
|
4
4
|
const util_1 = require("@ethereumjs/util");
|
|
5
|
-
const utils_1 = require("../utils");
|
|
6
5
|
const ethereumjs_internal_1 = require("../utils/ethereumjs_internal");
|
|
7
6
|
const exceptions_1 = require("../utils/ethereumjs_internal/exceptions");
|
|
7
|
+
const misc_1 = require("../utils/misc");
|
|
8
8
|
const foundry_cheatcodes_1 = require("./foundry_cheatcodes");
|
|
9
9
|
function interopseOnOp(code, opcodes, handler) {
|
|
10
10
|
const originalOp = opcodes.opcodes.get(code);
|
|
@@ -43,7 +43,7 @@ function foundryInterposedOps(opcodes, foundryCtx) {
|
|
|
43
43
|
(runState) => {
|
|
44
44
|
const [, prankOrigin] = foundryCtx.matchPrank(true);
|
|
45
45
|
const origin = prankOrigin instanceof util_1.Address
|
|
46
|
-
? (0,
|
|
46
|
+
? (0, misc_1.bigEndianBufToBigint)(prankOrigin.toBytes())
|
|
47
47
|
: runState.interpreter.getTxOrigin();
|
|
48
48
|
runState.stack.push(origin);
|
|
49
49
|
}
|
|
@@ -53,7 +53,7 @@ function foundryInterposedOps(opcodes, foundryCtx) {
|
|
|
53
53
|
(runState) => {
|
|
54
54
|
const [prankSender] = foundryCtx.matchPrank(false);
|
|
55
55
|
const caller = prankSender instanceof util_1.Address
|
|
56
|
-
? (0,
|
|
56
|
+
? (0, misc_1.bigEndianBufToBigint)(prankSender.toBytes())
|
|
57
57
|
: runState.interpreter.getCaller();
|
|
58
58
|
runState.stack.push(caller);
|
|
59
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opcode_interposing.js","sourceRoot":"","sources":["../../src/debug/opcode_interposing.ts"],"names":[],"mappings":";;AAwCA,oDA0PC;AAjSD,2CAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"opcode_interposing.js","sourceRoot":"","sources":["../../src/debug/opcode_interposing.ts"],"names":[],"mappings":"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"}
|