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.
- 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 -22
- 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 +4 -3
- 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 +75 -0
- package/dist/debug/decoding/calldata/view.d.ts.map +1 -0
- package/dist/debug/decoding/calldata/view.js +400 -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/allocator.d.ts +22 -0
- package/dist/debug/decoding/memory/allocator.d.ts.map +1 -0
- package/dist/debug/decoding/memory/allocator.js +47 -0
- package/dist/debug/decoding/memory/allocator.js.map +1 -0
- 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 +66 -0
- package/dist/debug/decoding/memory/view.d.ts.map +1 -0
- package/dist/debug/decoding/memory/view.js +283 -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 +36 -0
- package/dist/debug/decoding/stack/view.d.ts.map +1 -0
- package/dist/debug/decoding/stack/view.js +156 -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 +105 -0
- package/dist/debug/decoding/storage/view.d.ts.map +1 -0
- package/dist/debug/decoding/storage/view.js +603 -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 +24 -0
- package/dist/debug/decoding/view.d.ts.map +1 -0
- package/dist/debug/decoding/view.js +22 -0
- package/dist/debug/decoding/view.js.map +1 -0
- package/dist/debug/foundry_cheatcodes.d.ts +15 -15
- package/dist/debug/foundry_cheatcodes.d.ts.map +1 -1
- package/dist/debug/foundry_cheatcodes.js +17 -16
- package/dist/debug/foundry_cheatcodes.js.map +1 -1
- package/dist/debug/layout.d.ts +6 -8
- package/dist/debug/layout.d.ts.map +1 -1
- package/dist/debug/layout.js +14 -78
- package/dist/debug/layout.js.map +1 -1
- package/dist/debug/opcode_interposing.js +5 -5
- package/dist/debug/opcode_interposing.js.map +1 -1
- package/dist/debug/tracers/base_tracer.d.ts +4 -4
- package/dist/debug/tracers/base_tracer.d.ts.map +1 -1
- package/dist/debug/tracers/base_tracer.js +7 -7
- package/dist/debug/tracers/base_tracer.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/storage_decode_tracer.js +1 -1
- package/dist/debug/tracers/storage_decode_tracer.js.map +1 -1
- package/dist/debug/tracers/transformers/basic_info.d.ts +2 -2
- 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 +13 -30
- 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 +22 -46
- package/dist/debug/tracers/transformers/ret_info.js.map +1 -1
- package/dist/debug/types.d.ts +64 -23
- package/dist/debug/types.d.ts.map +1 -1
- package/dist/debug/types.js.map +1 -1
- package/dist/utils/ethereumjs_internal/exceptions.d.ts +2 -2
- package/dist/utils/ethereumjs_internal/opcodes.js +1 -1
- package/dist/utils/immutable_map.d.ts +2 -0
- package/dist/utils/immutable_map.d.ts.map +1 -1
- package/dist/utils/immutable_map.js +21 -0
- package/dist/utils/immutable_map.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 +19 -11
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +61 -53
- 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 +85 -0
- package/dist/utils/solidity.js.map +1 -0
- package/dist/utils/test_runner.d.ts +9 -6
- package/dist/utils/test_runner.d.ts.map +1 -1
- package/dist/utils/test_runner.js +26 -21
- 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/package.json +19 -14
- 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
package/dist/debug/layout.js
CHANGED
|
@@ -3,98 +3,34 @@ 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
|
-
const code = await state.
|
|
15
|
+
const code = await state.getCode(addr);
|
|
17
16
|
const info = artifactManager.getContractFromDeployedBytecode(code);
|
|
18
17
|
if (!info || !info.ast) {
|
|
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,KAA4B,EAC5B,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,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,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
|
}
|
|
@@ -66,7 +66,7 @@ function foundryInterposedOps(opcodes, foundryCtx) {
|
|
|
66
66
|
const expectedRevert = getExpectedRevert(foundryCtx);
|
|
67
67
|
const [value, offset, length] = runState.stack.popN(3);
|
|
68
68
|
if (common.isActivatedEIP(3860) &&
|
|
69
|
-
length > Number(common.param("
|
|
69
|
+
length > Number(common.param("maxInitCodeSize")) &&
|
|
70
70
|
!runState.interpreter._evm.allowUnlimitedInitCodeSize) {
|
|
71
71
|
(0, ethereumjs_internal_1.trap)(exceptions_1.ERROR.INITCODE_SIZE_VIOLATION);
|
|
72
72
|
}
|
|
@@ -90,7 +90,7 @@ function foundryInterposedOps(opcodes, foundryCtx) {
|
|
|
90
90
|
}
|
|
91
91
|
const [value, offset, length, salt] = runState.stack.popN(4);
|
|
92
92
|
if (common.isActivatedEIP(3860) &&
|
|
93
|
-
length > Number(common.param("
|
|
93
|
+
length > Number(common.param("maxInitCodeSize")) &&
|
|
94
94
|
!runState.interpreter._evm.allowUnlimitedInitCodeSize) {
|
|
95
95
|
(0, ethereumjs_internal_1.trap)(exceptions_1.ERROR.INITCODE_SIZE_VIOLATION);
|
|
96
96
|
}
|
|
@@ -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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Block } from "@ethereumjs/block";
|
|
2
|
-
import {
|
|
2
|
+
import { StateManagerInterface } from "@ethereumjs/common";
|
|
3
3
|
import { InterpreterStep } from "@ethereumjs/evm";
|
|
4
4
|
import { TypedTransaction } from "@ethereumjs/tx";
|
|
5
5
|
import { RunTxResult, VM } from "@ethereumjs/vm";
|
|
@@ -34,7 +34,7 @@ export declare abstract class BaseSolTxTracer<TraceT, CtxT> {
|
|
|
34
34
|
* used.
|
|
35
35
|
*/
|
|
36
36
|
static releaseVM(vm: VM): void;
|
|
37
|
-
static createVm(stateManager:
|
|
37
|
+
static createVm(stateManager: StateManagerInterface | undefined, foundryCheatcodes: boolean): Promise<VM>;
|
|
38
38
|
abstract processRawTraceStep(vm: VM, step: InterpreterStep, trace: TraceT[], tx: TypedTransaction, ctx: CtxT): Promise<[TraceT, CtxT]>;
|
|
39
39
|
/**
|
|
40
40
|
* Run a TX with the specified "transformers" returning a quadruple including:
|
|
@@ -45,9 +45,9 @@ export declare abstract class BaseSolTxTracer<TraceT, CtxT> {
|
|
|
45
45
|
* 4. The final (reduced) context `CtxT`
|
|
46
46
|
*/
|
|
47
47
|
debugTx(tx: TypedTransaction, block: Block | undefined, // TODO: Make block required and add to processRawTraceStep
|
|
48
|
-
stateBefore:
|
|
48
|
+
stateBefore: StateManagerInterface, ctx: CtxT): Promise<[TraceT[], FoundryTxResult, StateManagerInterface, CtxT]>;
|
|
49
49
|
}
|
|
50
50
|
export declare abstract class MapOnlyTracer<TraceT> extends BaseSolTxTracer<TraceT, null> {
|
|
51
|
-
debugTx(tx: TypedTransaction, block: Block | undefined, stateBefore:
|
|
51
|
+
debugTx(tx: TypedTransaction, block: Block | undefined, stateBefore: StateManagerInterface): Promise<[TraceT[], FoundryTxResult, StateManagerInterface, null]>;
|
|
52
52
|
}
|
|
53
53
|
//# sourceMappingURL=base_tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_tracer.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,
|
|
1
|
+
{"version":3,"file":"base_tracer.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAmB,qBAAqB,EAAY,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAmC,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAmB,WAAW,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAChD,UAAU,EAAE,OAAO,CAAC;CACvB;AAQD;;;;;;;;GAQG;AACH,8BAAsB,eAAe,CAAC,MAAM,EAAE,IAAI;IAC9C,eAAe,EAAG,gBAAgB,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAElC,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,UAAU;mBAgB3C,MAAM;IA8B3B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI;WAUjB,QAAQ,CACjB,YAAY,EAAE,qBAAqB,GAAG,SAAS,EAC/C,iBAAiB,EAAE,OAAO,GAC3B,OAAO,CAAC,EAAE,CAAC;IA0Bd,QAAQ,CAAC,mBAAmB,CACxB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,EAAE,EAAE,gBAAgB,EACpB,GAAG,EAAE,IAAI,GACV,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1B;;;;;;;OAOG;IACG,OAAO,CACT,EAAE,EAAE,gBAAgB,EACpB,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,2DAA2D;IACrF,WAAW,EAAE,qBAAqB,EAClC,GAAG,EAAE,IAAI,GACV,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;CA2CvE;AAED,8BAAsB,aAAa,CAAC,MAAM,CAAE,SAAQ,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;IACvE,OAAO,CACT,EAAE,EAAE,gBAAgB,EACpB,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,WAAW,EAAE,qBAAqB,GACnC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC;CAGvE"}
|
|
@@ -37,7 +37,7 @@ class BaseSolTxTracer {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
static async getEVM(opts, foundryCheatcodes) {
|
|
40
|
-
const tmpEvm = await evm_1.
|
|
40
|
+
const tmpEvm = await (0, evm_1.createEVM)(opts);
|
|
41
41
|
if (!foundryCheatcodes) {
|
|
42
42
|
return tmpEvm;
|
|
43
43
|
}
|
|
@@ -57,7 +57,7 @@ class BaseSolTxTracer {
|
|
|
57
57
|
}
|
|
58
58
|
]
|
|
59
59
|
};
|
|
60
|
-
const res = await evm_1.
|
|
60
|
+
const res = await (0, evm_1.createEVM)(optsCopy);
|
|
61
61
|
foundry_cheatcodes_1.foundryCtxMap.set(res, foundryCtx);
|
|
62
62
|
return res;
|
|
63
63
|
}
|
|
@@ -76,13 +76,13 @@ class BaseSolTxTracer {
|
|
|
76
76
|
vmToEVMMap.delete(vm);
|
|
77
77
|
}
|
|
78
78
|
static async createVm(stateManager, foundryCheatcodes) {
|
|
79
|
-
const common = new common_1.Common({ chain: common_1.
|
|
80
|
-
const blockchain = await blockchain_1.
|
|
79
|
+
const common = new common_1.Common({ chain: common_1.Mainnet, hardfork: common_1.Hardfork.Shanghai });
|
|
80
|
+
const blockchain = await (0, blockchain_1.createBlockchain)({ common });
|
|
81
81
|
if (!stateManager) {
|
|
82
|
-
stateManager = new statemanager_1.
|
|
82
|
+
stateManager = new statemanager_1.MerkleStateManager();
|
|
83
83
|
}
|
|
84
84
|
const evm = await BaseSolTxTracer.getEVM({ common, blockchain, stateManager, allowUnlimitedContractSize: true }, foundryCheatcodes);
|
|
85
|
-
const vm = await vm_1.
|
|
85
|
+
const vm = await (0, vm_1.createVM)({
|
|
86
86
|
common,
|
|
87
87
|
blockchain,
|
|
88
88
|
stateManager,
|
|
@@ -111,7 +111,7 @@ class BaseSolTxTracer {
|
|
|
111
111
|
trace.push(curStep);
|
|
112
112
|
next();
|
|
113
113
|
});
|
|
114
|
-
const txRes = await
|
|
114
|
+
const txRes = await (0, vm_1.runTx)(vm, {
|
|
115
115
|
tx,
|
|
116
116
|
block,
|
|
117
117
|
skipBalance: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"base_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sol_debugger.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sol_debugger.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAc9C,qBAAa,aAAc,SAAQ,aAAa,CAAC,SAAS,CAAC;IACjD,mBAAmB,CACrB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,SAAS,EAAE,EAClB,EAAE,EAAE,gBAAgB,GACrB,OAAO,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CA+BhC"}
|
|
@@ -14,7 +14,8 @@ class SolTxDebugger extends base_tracer_1.MapOnlyTracer {
|
|
|
14
14
|
const basicInfo = await (0, transformers_1.addBasicInfo)(vm, step, opInfo, trace);
|
|
15
15
|
const extFrameInfo = await (0, ext_stack_1.addExternalFrame)(vm, step, basicInfo, trace, this.artifactManager, tx);
|
|
16
16
|
const retInfo = await (0, ret_info_1.addReturnInfo)(vm, step, extFrameInfo, trace, this.artifactManager);
|
|
17
|
-
const
|
|
17
|
+
const excInfo = await (0, transformers_1.addExceptionInfo)(vm, step, retInfo, trace, this.artifactManager);
|
|
18
|
+
const source = await (0, source_1.addSource)(vm, step, excInfo);
|
|
18
19
|
const intStack = await (0, int_stack_1.addInternalFrameInfo)(vm, step, source, trace, this.artifactManager, this.strict);
|
|
19
20
|
const events = await (0, events_1.addEventInfo)(vm, step, intStack, this.artifactManager);
|
|
20
21
|
const contractLifetime = await (0, transformers_1.addContractLifetimeInfo)(vm, step, events, trace);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sol_debugger.js","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":";;;AAIA,+CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"sol_debugger.js","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":";;;AAIA,+CAA8C;AAC9C,iDAMwB;AACxB,kDAAqD;AACrD,wDAA4D;AAC5D,wDAAgE;AAChE,sDAAwD;AACxD,kDAAkD;AAElD,MAAa,aAAc,SAAQ,2BAAwB;IACvD,KAAK,CAAC,mBAAmB,CACrB,EAAM,EACN,IAAqB,EACrB,KAAkB,EAClB,EAAoB;QAEpB,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAY,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAgB,EACvC,EAAE,EACF,IAAI,EACJ,SAAS,EACT,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,EAAE,CACL,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAa,EAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAgB,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAoB,EACvC,EAAE,EACF,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,MAAM,CACd,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAY,EAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE5E,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAuB,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAEhF,MAAM,eAAe,GAAG,MAAM,IAAA,kCAAmB,EAAC,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAErF,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ;AArCD,sCAqCC"}
|
|
@@ -34,7 +34,7 @@ class StorageDecodeTracer extends base_tracer_1.BaseSolTxTracer {
|
|
|
34
34
|
return [keccakInfo, ctx];
|
|
35
35
|
}
|
|
36
36
|
const state = vm.stateManager;
|
|
37
|
-
const decodedStorage = await (0, layout_1.decodeContractStates)(this.artifactManager, [...ctx.liveContracts].map(util_1.
|
|
37
|
+
const decodedStorage = await (0, layout_1.decodeContractStates)(this.artifactManager, [...ctx.liveContracts].map(util_1.createAddressFromString), state, ctx.preimages);
|
|
38
38
|
return [
|
|
39
39
|
{
|
|
40
40
|
...keccakInfo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage_decode_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/storage_decode_tracer.ts"],"names":[],"mappings":";;;AAmCA,oEAeC;AAhDD,
|
|
1
|
+
{"version":3,"file":"storage_decode_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/storage_decode_tracer.ts"],"names":[],"mappings":";;;AAmCA,oEAeC;AAhDD,2CAA2D;AAE3D,sCAAiE;AACjE,+CAAgD;AAChD,iDAWwB;AAkBxB,SAAgB,4BAA4B,CACxC,KAAiD,EACjD,GAA2B;IAE3B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;AACL,CAAC;AACD;;;;GAIG;AACH,MAAa,mBAAoB,SAAQ,6BAGxC;IACG,KAAK,CAAC,mBAAmB,CACrB,EAAM,EACN,IAAqB,EACrB,KAAgC,EAChC,EAAoB,EACpB,GAA2B;QAE3B,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAY,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAgB,EACvC,EAAE,EACF,IAAI,EACJ,SAAS,EACT,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,EAAE,CACL,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAA,sCAAuB,EAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,IAAA,kCAAmB,EAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAE7E,4BAA4B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAE9C,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC;QAC9B,MAAM,cAAc,GAAmB,MAAM,IAAA,6BAAoB,EAC7D,IAAI,CAAC,eAAe,EACpB,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,8BAAuB,CAAC,EACnD,KAAK,EACL,GAAG,CAAC,SAAS,CAChB,CAAC;QAEF,OAAO;YACH;gBACI,GAAG,UAAU;gBACb,cAAc;aACjB;YACD,GAAG;SACN,CAAC;IACN,CAAC;CACJ;AA9CD,kDA8CC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StateManagerInterface } from "@ethereumjs/common";
|
|
2
2
|
import { InterpreterStep } from "@ethereumjs/evm";
|
|
3
3
|
import { Address } from "@ethereumjs/util";
|
|
4
4
|
import { VM } from "@ethereumjs/vm";
|
|
5
5
|
import { EVMOpInfo } from "../../opcodes";
|
|
6
6
|
import { Memory, Stack, Storage } from "../../types";
|
|
7
7
|
import { OpInfo } from "./op";
|
|
8
|
-
export declare function getStorage(manager:
|
|
8
|
+
export declare function getStorage(manager: StateManagerInterface, addr: Address): Promise<Storage>;
|
|
9
9
|
export interface BasicStepInfo {
|
|
10
10
|
evmStack: Stack;
|
|
11
11
|
memory: Memory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic_info.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/basic_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"basic_info.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/basic_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAKpC,OAAO,EAAE,SAAS,EAA0B,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG9B,wBAAsB,UAAU,CAAC,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAahG;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EACxD,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,GAChC,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,CAiC5B"}
|
|
@@ -6,7 +6,8 @@ const rlp_1 = require("@ethereumjs/rlp");
|
|
|
6
6
|
const util_1 = require("@ethereumjs/util");
|
|
7
7
|
const utils_1 = require("ethereum-cryptography/utils");
|
|
8
8
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
9
|
-
const
|
|
9
|
+
const immutable_map_1 = require("../../../utils/immutable_map");
|
|
10
|
+
const misc_1 = require("../../../utils/misc");
|
|
10
11
|
const opcodes_1 = require("../../opcodes");
|
|
11
12
|
async function getStorage(manager, addr) {
|
|
12
13
|
const rawStorage = await manager.dumpStorage(addr);
|
|
@@ -17,13 +18,13 @@ async function getStorage(manager, addr) {
|
|
|
17
18
|
const valBuf = (0, util_1.setLengthLeft)(decoded, 32);
|
|
18
19
|
storageEntries.push([BigInt(keyStr), valBuf]);
|
|
19
20
|
}
|
|
20
|
-
return
|
|
21
|
+
return immutable_map_1.ImmMap.fromEntries(storageEntries);
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* Adds cleaner typed version of the low-level debugging information
|
|
24
25
|
*/
|
|
25
26
|
async function addBasicInfo(vm, step, state, trace) {
|
|
26
|
-
const evmStack = step.stack.map((word) => (0,
|
|
27
|
+
const evmStack = step.stack.map((word) => (0, misc_1.bigIntToBuf)(word, 32, "big"));
|
|
27
28
|
const lastStep = trace.length > 0 ? trace[trace.length - 1] : undefined;
|
|
28
29
|
const memory = lastStep === undefined || (0, opcodes_1.changesMemory)(lastStep.op)
|
|
29
30
|
? new Uint8Array(step.memory)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic_info.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/basic_info.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"basic_info.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/basic_info.ts"],"names":[],"mappings":";;AAcA,gCAaC;AAkBD,oCAsCC;AAjFD,yCAAsC;AACtC,2CAA0D;AAE1D,uDAAyD;AACzD,mDAAwC;AACxC,gEAAsD;AACtD,8CAAkD;AAClD,2CAAkE;AAK3D,KAAK,UAAU,UAAU,CAAC,OAA8B,EAAE,IAAa;IAC1E,MAAM,UAAU,GAAG,MAAO,OAA8B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAgC,EAAE,CAAC;IAEvD,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,MAAM,OAAO,GAAG,SAAG,CAAC,MAAM,CAAC,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAA,uBAAM,EAAC,OAAO,YAAY,UAAU,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAE1C,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,sBAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AAC9C,CAAC;AAeD;;GAEG;AACI,KAAK,UAAU,YAAY,CAC9B,EAAM,EACN,IAAqB,EACrB,KAAQ,EACR,KAA+B;IAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,kBAAW,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExE,MAAM,MAAM,GACR,QAAQ,KAAK,SAAS,IAAI,IAAA,uBAAa,EAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;IAE1B,IAAI,OAAgB,CAAC;IAErB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,MAAM,EAAE,CAAC;QAClE,4FAA4F;QAC5F,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACJ,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAE/F,OAAO;QACH,QAAQ;QACR,MAAM;QACN,OAAO;QACP,GAAG,KAAK;QACR,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO;QACP,cAAc;QACd,GAAG,EAAE,IAAI,CAAC,OAAO;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;KACxB,CAAC;AACN,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addEventInfo = addEventInfo;
|
|
4
|
-
const
|
|
4
|
+
const misc_1 = require("../../../utils/misc");
|
|
5
5
|
const abi_1 = require("../../abi");
|
|
6
6
|
/**
|
|
7
7
|
* Adds source info for each step (if available)
|
|
@@ -13,7 +13,7 @@ async function addEventInfo(vm, step, state, artifactManager) {
|
|
|
13
13
|
if (step.opcode.name.startsWith("LOG")) {
|
|
14
14
|
const stack = state.evmStack;
|
|
15
15
|
const nTopics = step.opcode.name[3] - "0";
|
|
16
|
-
const payload = (0,
|
|
16
|
+
const payload = (0, misc_1.mustReadMem)((0, misc_1.stackTop)(stack), (0, misc_1.stackInd)(stack, 1), state.memory);
|
|
17
17
|
emittedEvent = {
|
|
18
18
|
payload,
|
|
19
19
|
topics: stack.slice(stack.length - 2 - nTopics, stack.length - 2).reverse()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/events.ts"],"names":[],"mappings":";;AAgBA,oCA6BC;AA3CD,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/events.ts"],"names":[],"mappings":";;AAgBA,oCA6BC;AA3CD,8CAAsE;AACtE,mCAAwC;AAUxC;;GAEG;AACI,KAAK,UAAU,YAAY,CAC9B,EAAM,EACN,IAAqB,EACrB,KAAQ,EACR,eAAiC;IAEjC,IAAI,YAAY,GAA0B,SAAS,CAAC;IACpD,IAAI,YAAY,GAAiC,SAAS,CAAC;IAE3D,2DAA2D;IAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC;QAE7B,MAAM,OAAO,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,GAAI,GAAW,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAA,kBAAW,EAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,IAAA,eAAQ,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAE/E,YAAY,GAAG;YACX,OAAO;YACP,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;SAC9E,CAAC;QAEF,YAAY,GAAG,IAAA,iBAAW,EAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACH,YAAY;QACZ,YAAY;QACZ,GAAG,KAAK;KACX,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { InterpreterStep } from "@ethereumjs/evm";
|
|
2
|
+
import { VM } from "@ethereumjs/vm";
|
|
3
|
+
import { IArtifactManager } from "../../artifact_manager";
|
|
4
|
+
import { BasicStepInfo } from "./basic_info";
|
|
5
|
+
import { ExternalFrameInfo } from "./ext_stack";
|
|
6
|
+
export interface ExceptionInfo {
|
|
7
|
+
excInfo?: {
|
|
8
|
+
data: Uint8Array;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Adds exception info for steps that revert for some reason.
|
|
13
|
+
*/
|
|
14
|
+
export declare function addExceptionInfo<T extends object & BasicStepInfo & ExternalFrameInfo>(vm: VM, step: InterpreterStep, state: T, trace: Array<T & ExceptionInfo>, artifactManager: IArtifactManager): Promise<T & ExceptionInfo>;
|
|
15
|
+
//# sourceMappingURL=exc_info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exc_info.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/exc_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE;QACN,IAAI,EAAE,UAAU,CAAC;KAEpB,CAAC;CACL;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,GAAG,iBAAiB,EACvF,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EAER,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,aAAa,CAAC,EAE/B,eAAe,EAAE,gBAAgB,GAClC,OAAO,CAAC,CAAC,GAAG,aAAa,CAAC,CA6B5B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addExceptionInfo = addExceptionInfo;
|
|
4
|
+
const util_1 = require("@ethereumjs/util");
|
|
5
|
+
const misc_1 = require("../../../utils/misc");
|
|
6
|
+
const opcodes_1 = require("../../opcodes");
|
|
7
|
+
/**
|
|
8
|
+
* Adds exception info for steps that revert for some reason.
|
|
9
|
+
*/
|
|
10
|
+
async function addExceptionInfo(vm, step, state,
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
12
|
+
trace,
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
|
+
artifactManager) {
|
|
15
|
+
// INVALID
|
|
16
|
+
if (!state.op.valid) {
|
|
17
|
+
return {
|
|
18
|
+
...state,
|
|
19
|
+
excInfo: {
|
|
20
|
+
data: new Uint8Array()
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
// REVERT
|
|
25
|
+
if (state.op.opcode === opcodes_1.OPCODES.REVERT) {
|
|
26
|
+
const off = (0, util_1.bytesToBigInt)((0, misc_1.stackTop)(state.evmStack));
|
|
27
|
+
const len = (0, util_1.bytesToBigInt)((0, misc_1.stackInd)(state.evmStack, 1));
|
|
28
|
+
return {
|
|
29
|
+
...state,
|
|
30
|
+
excInfo: {
|
|
31
|
+
data: (0, misc_1.mustReadMem)(off, len, state.memory)
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
// @todo try and decode revert
|
|
35
|
+
}
|
|
36
|
+
// @todo GAS?
|
|
37
|
+
return state;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=exc_info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exc_info.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/exc_info.ts"],"names":[],"mappings":";;AAmBA,4CAqCC;AAvDD,2CAAiD;AAEjD,8CAAsE;AAEtE,2CAAwC;AAWxC;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAClC,EAAM,EACN,IAAqB,EACrB,KAAQ;AACR,6DAA6D;AAC7D,KAA+B;AAC/B,6DAA6D;AAC7D,eAAiC;IAEjC,UAAU;IACV,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO;YACH,GAAG,KAAK;YACR,OAAO,EAAE;gBACL,IAAI,EAAE,IAAI,UAAU,EAAE;aACzB;SACJ,CAAC;IACN,CAAC;IAED,SAAS;IACT,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAA,oBAAa,EAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAA,oBAAa,EAAC,IAAA,eAAQ,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvD,OAAO;YACH,GAAG,KAAK;YACR,OAAO,EAAE;gBACL,IAAI,EAAE,IAAA,kBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;aAC5C;SACJ,CAAC;QAEF,8BAA8B;IAClC,CAAC;IAED,aAAa;IAEb,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ext_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ext_stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ext_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ext_stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAIpC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAA4B,aAAa,EAAwB,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,aAAa,CAEjE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAEjF;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAE3D;AAuHD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,EACnE,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,EACnC,eAAe,EAAE,gBAAgB,EACjC,EAAE,EAAE,gBAAgB,GACrB,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAgHhC"}
|