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/abi.js
CHANGED
|
@@ -1,98 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.isTypeUnknownContract = isTypeUnknownContract;
|
|
6
|
-
exports.buildMsgDataViews = buildMsgDataViews;
|
|
7
|
-
exports.toABIEncodedType = toABIEncodedType;
|
|
8
|
-
exports.isABITypeStaticSized = isABITypeStaticSized;
|
|
9
|
-
exports.findMethodBySelector = findMethodBySelector;
|
|
3
|
+
exports.buildMsgViews = buildMsgViews;
|
|
4
|
+
exports.buildEventViews = buildEventViews;
|
|
10
5
|
exports.decodeEvent = decodeEvent;
|
|
11
|
-
const utils_1 = require("ethereum-cryptography/utils");
|
|
12
6
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return new solc_typed_ast_1.PointerType(changeToLocation(typ.to, newLoc), newLoc, typ.kind);
|
|
19
|
-
}
|
|
20
|
-
if (typ instanceof solc_typed_ast_1.ArrayType) {
|
|
21
|
-
return new solc_typed_ast_1.ArrayType(changeToLocation(typ.elementT, newLoc), typ.size);
|
|
22
|
-
}
|
|
23
|
-
if (typ instanceof solc_typed_ast_1.MappingType) {
|
|
24
|
-
(0, solc_typed_ast_1.assert)(newLoc === solc_typed_ast_1.DataLocation.Storage, `Cannot change type of mapping ${typ.pp()} to ${newLoc}`);
|
|
25
|
-
return typ;
|
|
26
|
-
}
|
|
27
|
-
if (typ instanceof solc_typed_ast_1.TupleType) {
|
|
28
|
-
return new solc_typed_ast_1.TupleType(typ.elements.map((elT) => changeToLocation(elT, newLoc)));
|
|
29
|
-
}
|
|
30
|
-
if (typ instanceof solc_typed_ast_1.IntType ||
|
|
31
|
-
typ instanceof solc_typed_ast_1.BoolType ||
|
|
32
|
-
typ instanceof solc_typed_ast_1.AddressType ||
|
|
33
|
-
typ instanceof solc_typed_ast_1.FixedBytesType ||
|
|
34
|
-
typ instanceof solc_typed_ast_1.StringType ||
|
|
35
|
-
typ instanceof solc_typed_ast_1.BytesType ||
|
|
36
|
-
typ instanceof solc_typed_ast_1.UserDefinedType) {
|
|
37
|
-
return typ;
|
|
38
|
-
}
|
|
39
|
-
throw new Error(`Cannot change location of type ${typ.pp()}`);
|
|
40
|
-
}
|
|
7
|
+
const view_1 = require("./decoding/view");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
const view_2 = require("./decoding/calldata/view");
|
|
10
|
+
const value_1 = require("./decoding/value");
|
|
11
|
+
const decoding_1 = require("./decoding");
|
|
41
12
|
/**
|
|
42
|
-
* Return
|
|
43
|
-
*
|
|
13
|
+
* Return true if the given callee requires a selector
|
|
14
|
+
* @param callee
|
|
15
|
+
* @returns
|
|
44
16
|
*/
|
|
45
|
-
function
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
typ instanceof solc_typed_ast_1.FixedBytesType ||
|
|
49
|
-
typ instanceof solc_typed_ast_1.BoolType ||
|
|
50
|
-
typ instanceof solc_typed_ast_1.PointerType) {
|
|
51
|
-
return 32;
|
|
52
|
-
}
|
|
53
|
-
if (typ instanceof solc_typed_ast_1.UserDefinedType) {
|
|
54
|
-
const def = typ.definition;
|
|
55
|
-
if (def instanceof solc_typed_ast_1.EnumDefinition ||
|
|
56
|
-
def instanceof solc_typed_ast_1.ContractDefinition ||
|
|
57
|
-
def instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
|
|
58
|
-
return 32;
|
|
59
|
-
}
|
|
60
|
-
throw new Error(`NYI decoding user-defined type ${typ.pp()}`);
|
|
61
|
-
}
|
|
62
|
-
if (typ instanceof solc_typed_ast_1.TupleType) {
|
|
63
|
-
let res = 0;
|
|
64
|
-
for (const elT of typ.elements) {
|
|
65
|
-
(0, solc_typed_ast_1.assert)(elT !== null, ``);
|
|
66
|
-
res += abiStaticTypeSize(elT);
|
|
67
|
-
}
|
|
68
|
-
return res;
|
|
17
|
+
function hasSelector(callee) {
|
|
18
|
+
if (callee instanceof solc_typed_ast_1.VariableDeclaration) {
|
|
19
|
+
return true;
|
|
69
20
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* corresponding to a getter), some msg `data`, that lives in location
|
|
75
|
-
* determined by `kind`, a type inference class as well as an `encoderVersion`
|
|
76
|
-
* try and decode the function arguments for that particular callee from the
|
|
77
|
-
* data.
|
|
78
|
-
*/
|
|
79
|
-
function decodeMethodArgs(callee, data, kind, infer, encoderVersion) {
|
|
80
|
-
const dataViews = buildMsgDataViews(callee, data, kind, infer, encoderVersion);
|
|
81
|
-
const res = [];
|
|
82
|
-
for (let i = 0; i < dataViews.length; i++) {
|
|
83
|
-
const name = dataViews[i][0];
|
|
84
|
-
const view = dataViews[i][1];
|
|
85
|
-
if (view === undefined) {
|
|
86
|
-
res.push([name, undefined]);
|
|
87
|
-
continue;
|
|
88
|
-
}
|
|
89
|
-
(0, solc_typed_ast_1.assert)(view.abiType !== undefined && view.loc.kind === _1.DataLocationKind.CallData, ``);
|
|
90
|
-
const val = (0, _1.cd_decodeValue)(view.abiType, view.type, view.loc, data, BigInt(4), infer);
|
|
91
|
-
res.push([name, val ? val[0] : val]);
|
|
21
|
+
if (callee.isConstructor ||
|
|
22
|
+
callee.kind === solc_typed_ast_1.FunctionKind.Receive ||
|
|
23
|
+
callee.kind === solc_typed_ast_1.FunctionKind.Fallback) {
|
|
24
|
+
return false;
|
|
92
25
|
}
|
|
93
|
-
return
|
|
26
|
+
return true;
|
|
94
27
|
}
|
|
95
|
-
// @todo migrate to solc-typed-ast
|
|
96
28
|
function isTypeUnknownContract(t) {
|
|
97
29
|
return (t instanceof solc_typed_ast_1.UserDefinedTypeName &&
|
|
98
30
|
t.referencedDeclaration < 0 &&
|
|
@@ -100,17 +32,13 @@ function isTypeUnknownContract(t) {
|
|
|
100
32
|
t.typeString.startsWith("interface ") ||
|
|
101
33
|
t.typeString.startsWith("library ")));
|
|
102
34
|
}
|
|
103
|
-
|
|
104
|
-
* An ABI-decoder implementation that is resilient to failures in some arguments decoding.
|
|
105
|
-
* This function will return partial decoding results. This is needed since the fuzzer may not
|
|
106
|
-
* always produce inputs that decode in their entirety.
|
|
107
|
-
*/
|
|
108
|
-
function buildMsgDataViews(callee, data, kind, infer, encoderVersion) {
|
|
35
|
+
function buildMsgViews(callee, infer) {
|
|
109
36
|
const res = [];
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
37
|
+
let base = 0n;
|
|
38
|
+
if (hasSelector(callee)) {
|
|
39
|
+
res.push(["<selector>", (0, view_2.makeCalldataView)(utils_1.bytes4, 0n, base)]);
|
|
40
|
+
base = 4n;
|
|
41
|
+
}
|
|
114
42
|
const formals = callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
115
43
|
? callee.vParameters.vParameters.map((argDef) => [
|
|
116
44
|
argDef.name,
|
|
@@ -121,194 +49,51 @@ function buildMsgDataViews(callee, data, kind, infer, encoderVersion) {
|
|
|
121
49
|
: infer
|
|
122
50
|
.getterArgsAndReturn(callee)[0]
|
|
123
51
|
.map((typ, i) => [`ARG_${i}`, typ]);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
for (const [name, originalType] of formals) {
|
|
127
|
-
const typ = toABIEncodedType(originalType, infer, encoderVersion);
|
|
128
|
-
const staticSize = abiStaticTypeSize(typ);
|
|
129
|
-
const loc = staticOff + staticSize <= len ? { kind, address: BigInt(staticOff) } : undefined;
|
|
130
|
-
staticOff += staticSize;
|
|
131
|
-
const val = loc ? { type: originalType, abiType: typ, loc } : undefined;
|
|
132
|
-
res.push([name, val]);
|
|
133
|
-
}
|
|
52
|
+
const views = (0, view_2.makeCalldataViews)(formals.map((x) => (0, decoding_1.simplifyType)(x[1], infer, solc_typed_ast_1.DataLocation.CallData)), base);
|
|
53
|
+
res.push(...(0, utils_1.zip)(formals.map((x) => x[0]), views));
|
|
134
54
|
return res;
|
|
135
55
|
}
|
|
136
|
-
|
|
137
|
-
* Determine if the specified type `typ` is dynamic or not. Dynamic means
|
|
138
|
-
* that if we are trying to read `typ` at location `loc`, in `loc` there should be just a
|
|
139
|
-
* uint256 offset into memory/storage/calldata, where the actual data lives. Otherwise
|
|
140
|
-
* (if the type is "static"), the direct encoding of the data will start at `loc`.
|
|
141
|
-
*
|
|
142
|
-
* Usually "static" types are just the value types - i.e. anything of statically
|
|
143
|
-
* known size that fits in a uint256. As per https://docs.soliditylang.org/en/latest/abi-spec.html#formal-specification-of-the-encoding
|
|
144
|
-
* there are several exceptions to the rule when encoding types in calldata:
|
|
145
|
-
*
|
|
146
|
-
* 1. Fixed size arrays with fixed-sized element types
|
|
147
|
-
* 2. Tuples where all the tuple elements are fixed-size
|
|
148
|
-
*
|
|
149
|
-
* TODO(dimo):
|
|
150
|
-
* 1. Check again that its not possible for tuples in internal calls to somehow get encoded on the stack
|
|
151
|
-
* 2. What happens with return tuples? Are they always in memory?
|
|
152
|
-
*/
|
|
153
|
-
function isTypeEncodingDynamic(typ) {
|
|
154
|
-
if (typ instanceof solc_typed_ast_1.PointerType ||
|
|
155
|
-
typ instanceof solc_typed_ast_1.ArrayType ||
|
|
156
|
-
typ instanceof solc_typed_ast_1.StringType ||
|
|
157
|
-
typ instanceof solc_typed_ast_1.BytesType) {
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
// Tuples in calldata with static elements
|
|
161
|
-
if (typ instanceof solc_typed_ast_1.TupleType) {
|
|
162
|
-
for (const elT of typ.elements) {
|
|
163
|
-
(0, solc_typed_ast_1.assert)(elT !== null, ``);
|
|
164
|
-
if (isTypeEncodingDynamic(elT)) {
|
|
165
|
-
return true;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return false;
|
|
169
|
-
}
|
|
170
|
-
return false;
|
|
56
|
+
class BaseEventView extends view_1.View {
|
|
171
57
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
*
|
|
176
|
-
* 1. Contract definitions turned to address.
|
|
177
|
-
* 2. Enum definitions turned to uint of minimal fitting size.
|
|
178
|
-
* 3. Any storage pointer types are converted to memory pointer types.
|
|
179
|
-
* 4. Throw an error on any nested mapping types.
|
|
180
|
-
* 5. Fixed-size arrays with fixed-sized element types are encoded as inlined tuples
|
|
181
|
-
* 6. Structs with fixed-sized elements are encoded as inlined tuples
|
|
182
|
-
*
|
|
183
|
-
* @see https://docs.soliditylang.org/en/latest/abi-spec.html
|
|
184
|
-
*/
|
|
185
|
-
function toABIEncodedType(type, infer, encoderVersion) {
|
|
186
|
-
if (type instanceof solc_typed_ast_1.MappingType) {
|
|
187
|
-
throw new Error("Cannot abi-encode mapping types");
|
|
58
|
+
class EventPayloadView extends BaseEventView {
|
|
59
|
+
decode(state) {
|
|
60
|
+
return this.loc.decode(state.payload);
|
|
188
61
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
if (type.size !== undefined) {
|
|
192
|
-
const elements = [];
|
|
193
|
-
for (let i = 0; i < type.size; i++) {
|
|
194
|
-
elements.push(encodedElementT);
|
|
195
|
-
}
|
|
196
|
-
return new solc_typed_ast_1.TupleType(elements);
|
|
197
|
-
}
|
|
198
|
-
return new solc_typed_ast_1.ArrayType(encodedElementT, type.size);
|
|
199
|
-
}
|
|
200
|
-
if (type instanceof solc_typed_ast_1.PointerType) {
|
|
201
|
-
const toT = toABIEncodedType(type.to, infer, encoderVersion);
|
|
202
|
-
return isTypeEncodingDynamic(toT) ? new solc_typed_ast_1.PointerType(toT, type.location) : toT;
|
|
203
|
-
}
|
|
204
|
-
if (type instanceof solc_typed_ast_1.UserDefinedType) {
|
|
205
|
-
if (type.definition instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
|
|
206
|
-
return infer.typeNameToTypeNode(type.definition.underlyingType);
|
|
207
|
-
}
|
|
208
|
-
if (type.definition instanceof solc_typed_ast_1.ContractDefinition) {
|
|
209
|
-
return new solc_typed_ast_1.AddressType(false);
|
|
210
|
-
}
|
|
211
|
-
if (type.definition instanceof solc_typed_ast_1.EnumDefinition) {
|
|
212
|
-
return (0, solc_typed_ast_1.enumToIntType)(type.definition);
|
|
213
|
-
}
|
|
214
|
-
if (type.definition instanceof solc_typed_ast_1.StructDefinition) {
|
|
215
|
-
(0, solc_typed_ast_1.assert)(encoderVersion !== abi_1.ABIEncoderVersion.V1, "Getters of struct return type are not supported by ABI encoder v1");
|
|
216
|
-
const fieldTs = type.definition.vMembers.map((fieldT) => infer.variableDeclarationToTypeNode(fieldT));
|
|
217
|
-
return new solc_typed_ast_1.TupleType(fieldTs.map((fieldT) => toABIEncodedType(fieldT, infer, encoderVersion)));
|
|
218
|
-
}
|
|
62
|
+
pp() {
|
|
63
|
+
return `<${this.type.pp()}@${this.loc} in event payload>`;
|
|
219
64
|
}
|
|
220
|
-
return type;
|
|
221
65
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
if (type instanceof solc_typed_ast_1.PointerType) {
|
|
227
|
-
return isABITypeStaticSized(type.to);
|
|
228
|
-
}
|
|
229
|
-
if (type instanceof solc_typed_ast_1.TupleType) {
|
|
230
|
-
for (const elT of type.elements) {
|
|
231
|
-
(0, solc_typed_ast_1.assert)(elT !== null, ``);
|
|
232
|
-
if (!isABITypeStaticSized(elT)) {
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
66
|
+
class TopicPayloadView extends BaseEventView {
|
|
67
|
+
decode(state) {
|
|
68
|
+
if (this.type instanceof solc_typed_ast_1.PointerType) {
|
|
69
|
+
return new value_1.DecodingFailure(`Cannot decode indexed complex type ${this.type.pp()}`);
|
|
235
70
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
if (type instanceof solc_typed_ast_1.StringType || type instanceof solc_typed_ast_1.BytesType) {
|
|
239
|
-
return false;
|
|
71
|
+
const inner = (0, view_2.makeCalldataView)(this.type, 0n, 0n);
|
|
72
|
+
return inner.decode(state.topics[this.loc]);
|
|
240
73
|
}
|
|
241
|
-
|
|
242
|
-
type
|
|
243
|
-
type instanceof solc_typed_ast_1.BoolType ||
|
|
244
|
-
type instanceof solc_typed_ast_1.FixedBytesType) {
|
|
245
|
-
return true;
|
|
246
|
-
}
|
|
247
|
-
throw new Error(`NYI isABITypeStaticSized(${type.pp()})`);
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Given a 4-byte selector, a target contract and an `InferType` object return
|
|
251
|
-
* the ASTNode that corresponds to the target callee. Must be either a
|
|
252
|
-
* `FunctionDefinition`, a `VariableDeclaration` (for public state var getters),
|
|
253
|
-
* or undefined (if we cannot identify it)
|
|
254
|
-
*/
|
|
255
|
-
function findMethodBySelector(selector, contract, infer) {
|
|
256
|
-
const strSelector = typeof selector === "string" ? selector : (0, utils_1.bytesToHex)(selector);
|
|
257
|
-
for (const base of contract.vLinearizedBaseContracts) {
|
|
258
|
-
if (!base) {
|
|
259
|
-
continue;
|
|
260
|
-
}
|
|
261
|
-
for (const fun of base.vFunctions) {
|
|
262
|
-
const funSel = (0, utils_2.getFunctionSelector)(fun, infer);
|
|
263
|
-
if (funSel == strSelector) {
|
|
264
|
-
return fun;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
for (const v of base.vStateVariables) {
|
|
268
|
-
if (v.visibility !== solc_typed_ast_1.StateVariableVisibility.Public) {
|
|
269
|
-
continue;
|
|
270
|
-
}
|
|
271
|
-
let hash;
|
|
272
|
-
try {
|
|
273
|
-
hash = infer.signatureHash(v);
|
|
274
|
-
}
|
|
275
|
-
catch (e) {
|
|
276
|
-
continue;
|
|
277
|
-
}
|
|
278
|
-
if (hash == strSelector) {
|
|
279
|
-
return v;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
74
|
+
pp() {
|
|
75
|
+
return `<${this.type.pp()} in topic ${this.loc}>`;
|
|
282
76
|
}
|
|
283
|
-
return undefined;
|
|
284
77
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
* Supports decoding indexed arguments.
|
|
288
|
-
*/
|
|
289
|
-
function buildEventDataViews(evtDef, evtDesc, infer) {
|
|
290
|
-
let staticOff = 0;
|
|
291
|
-
const res = [];
|
|
292
|
-
const len = evtDesc.payload.length;
|
|
78
|
+
function buildEventViews(evtDef, infer) {
|
|
79
|
+
const [indexedArgs, nonIndexedArgs] = (0, utils_1.split)(evtDef.args.map((x, i) => [i, x]), ([, [, , indexed]]) => indexed);
|
|
293
80
|
let topicIdx = evtDef.definition.anonymous ? 0 : 1;
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
return res;
|
|
81
|
+
const indexedViews = indexedArgs.map(([, [, type]]) => new TopicPayloadView((0, decoding_1.simplifyType)(type, infer, solc_typed_ast_1.DataLocation.CallData), topicIdx++));
|
|
82
|
+
const nonIndexedViews = (0, view_2.makeCalldataViews)(nonIndexedArgs.map(([, [, type]]) => (0, decoding_1.simplifyType)(type, infer, solc_typed_ast_1.DataLocation.CallData)), 0n).map((v) => new EventPayloadView(v.type, v));
|
|
83
|
+
const allArgDesc = [
|
|
84
|
+
...indexedViews.map((view, i) => [
|
|
85
|
+
indexedArgs[i][0],
|
|
86
|
+
indexedArgs[i][1][0],
|
|
87
|
+
view
|
|
88
|
+
]),
|
|
89
|
+
...nonIndexedViews.map((view, i) => [
|
|
90
|
+
nonIndexedArgs[i][0],
|
|
91
|
+
nonIndexedArgs[i][1][0],
|
|
92
|
+
view
|
|
93
|
+
])
|
|
94
|
+
];
|
|
95
|
+
allArgDesc.sort();
|
|
96
|
+
return allArgDesc.map(([, name, view]) => [name, view]);
|
|
312
97
|
}
|
|
313
98
|
/**
|
|
314
99
|
* Decode a raw event. Currently only supports non-anonmyous events.
|
|
@@ -322,27 +107,8 @@ function decodeEvent(artifactManager, evt) {
|
|
|
322
107
|
return undefined;
|
|
323
108
|
}
|
|
324
109
|
const infer = artifactManager.infer(defInfo.artifact.compilerVersion);
|
|
325
|
-
const dataViews =
|
|
326
|
-
const argVals = [];
|
|
327
|
-
for (const [[name, view], [, type]] of (0, utils_2.zip)(dataViews, defInfo.args)) {
|
|
328
|
-
if (view === undefined) {
|
|
329
|
-
// Failed building a view
|
|
330
|
-
argVals.push([name, undefined]);
|
|
331
|
-
continue;
|
|
332
|
-
}
|
|
333
|
-
if (typeof view === "number") {
|
|
334
|
-
if ((0, solc_typed_ast_1.isReferenceType)(type)) {
|
|
335
|
-
// For indexed reference types just a hash of the value is
|
|
336
|
-
// stored in the topic. Can't decode.
|
|
337
|
-
argVals.push([name, undefined]);
|
|
338
|
-
}
|
|
339
|
-
const decodedVal = (0, _1.mem_decodeValue)(type, { kind: _1.DataLocationKind.Memory, address: 0n }, evt.topics[view], infer);
|
|
340
|
-
argVals.push([name, decodedVal ? decodedVal[0] : undefined]);
|
|
341
|
-
continue;
|
|
342
|
-
}
|
|
343
|
-
const decodedVal = (0, _1.mem_decodeValue)(type, view.loc, evt.payload, infer);
|
|
344
|
-
argVals.push([name, decodedVal ? decodedVal[0] : undefined]);
|
|
345
|
-
}
|
|
110
|
+
const dataViews = buildEventViews(defInfo, infer);
|
|
111
|
+
const argVals = dataViews.map(([name, view]) => [name, view.decode(evt)]);
|
|
346
112
|
return {
|
|
347
113
|
def: defInfo,
|
|
348
114
|
args: argVals
|
package/dist/debug/abi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { ContractDefinition, FunctionDefinition, InferType, VariableDeclaration } from "solc-typed-ast";
|
|
2
|
+
import { PartialSolcOutput } from "../../artifacts/solc";
|
|
3
|
+
import { DecodedBytecodeSourceMapEntry } from "../../utils/srcmap";
|
|
4
|
+
import { EventDefInfo, EventDesc, HexString } from "../types";
|
|
5
|
+
import { ArtifactInfo, BytecodeInfo, ContractInfo, SourceFileInfo } from "./types";
|
|
6
6
|
export interface IArtifactManager {
|
|
7
7
|
getContractFromDeployedBytecode(code: Uint8Array): ContractInfo | undefined;
|
|
8
8
|
getContractFromCreationBytecode(code: Uint8Array): ContractInfo | undefined;
|
|
@@ -12,43 +12,9 @@ export interface IArtifactManager {
|
|
|
12
12
|
getFileById(id: number, code: Uint8Array, isCreation: boolean): SourceFileInfo | undefined;
|
|
13
13
|
infer(version: string): InferType;
|
|
14
14
|
findMethod(selector: HexString | Uint8Array): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
15
|
+
findEntryPoint(data: Uint8Array, contract: ContractInfo): FunctionDefinition | VariableDeclaration | undefined;
|
|
15
16
|
getEventDefInfo(topic: bigint | Uint8Array | EventDesc): EventDefInfo | undefined;
|
|
16
|
-
|
|
17
|
-
export interface BytecodeInfo {
|
|
18
|
-
generatedFileMap: Map<number, SourceFileInfo>;
|
|
19
|
-
srcMap: DecodedBytecodeSourceMapEntry[];
|
|
20
|
-
offsetToIndexMap: Map<number, number>;
|
|
21
|
-
}
|
|
22
|
-
export interface ContractInfo {
|
|
23
|
-
artifact: ArtifactInfo;
|
|
24
|
-
contractArtifact: PartialCompiledContract;
|
|
25
|
-
contractName: string;
|
|
26
|
-
fileName: string;
|
|
27
|
-
ast: ContractDefinition | undefined;
|
|
28
|
-
bytecode: BytecodeInfo;
|
|
29
|
-
deployedBytecode: BytecodeInfo;
|
|
30
|
-
mdHash: PrefixedHexString | undefined;
|
|
31
|
-
}
|
|
32
|
-
export interface ArtifactInfo {
|
|
33
|
-
artifact: PartialSolcOutput;
|
|
34
|
-
units: SourceUnit[];
|
|
35
|
-
ctx: ASTContext;
|
|
36
|
-
compilerVersion: string;
|
|
37
|
-
abiEncoderVersion: ABIEncoderVersion;
|
|
38
|
-
fileMap: Map<number, SourceFileInfo>;
|
|
39
|
-
srcMap: Map<string, ASTNode>;
|
|
40
|
-
}
|
|
41
|
-
export declare enum SourceFileType {
|
|
42
|
-
Solidity = "solidity",
|
|
43
|
-
InternalYul = "internal_yul"
|
|
44
|
-
}
|
|
45
|
-
export interface SourceFileInfo {
|
|
46
|
-
contents: string | undefined;
|
|
47
|
-
rawAst: RawAST;
|
|
48
|
-
ast: SourceUnit | undefined;
|
|
49
|
-
name: string;
|
|
50
|
-
fileIndex: number;
|
|
51
|
-
type: SourceFileType;
|
|
17
|
+
getContractInfo(contract: ContractDefinition): ContractInfo | undefined;
|
|
52
18
|
}
|
|
53
19
|
export declare function getOffsetSrc(off: number, bytecode: BytecodeInfo): DecodedBytecodeSourceMapEntry;
|
|
54
20
|
/**
|
|
@@ -71,13 +37,22 @@ export declare class ArtifactManager implements IArtifactManager {
|
|
|
71
37
|
private pickABIEncoderVersion;
|
|
72
38
|
constructor(artifacts: Array<PartialSolcOutput | [PartialSolcOutput, string]>);
|
|
73
39
|
artifacts(): ArtifactInfo[];
|
|
40
|
+
getContractInfo(contract: ContractDefinition): ContractInfo | undefined;
|
|
74
41
|
getContractFromMDHash(hash: HexString): ContractInfo | undefined;
|
|
75
42
|
getContractFromDeployedBytecode(bytecode: Uint8Array): ContractInfo | undefined;
|
|
76
43
|
getContractFromCreationBytecode(creationBytecode: Uint8Array): ContractInfo | undefined;
|
|
77
44
|
getFileById(id: number, arg: Uint8Array | ContractInfo, isCreation: boolean): SourceFileInfo | undefined;
|
|
78
45
|
contracts(): ContractInfo[];
|
|
79
46
|
infer(version: string): InferType;
|
|
80
|
-
findMethod(selector: HexString | Uint8Array): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
47
|
+
findMethod(selector: HexString | Uint8Array, info?: ContractInfo): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Given a msg.data and a target contract, compute the intended AST entry point. If any.
|
|
50
|
+
* This handles the following cases:
|
|
51
|
+
* - receive functions
|
|
52
|
+
* - fallback functions
|
|
53
|
+
* - normal function match
|
|
54
|
+
*/
|
|
55
|
+
findEntryPoint(data: Uint8Array, info: ContractInfo): FunctionDefinition | VariableDeclaration | undefined;
|
|
81
56
|
getEventDefInfo(arg: bigint | Uint8Array | EventDesc): EventDefInfo | undefined;
|
|
82
57
|
}
|
|
83
58
|
//# sourceMappingURL=artifact_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../../src/debug/artifact_manager/artifact_manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../../src/debug/artifact_manager/artifact_manager.ts"],"names":[],"mappings":"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"}
|