sol-dbg 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/debug/abi.d.ts +3 -3
- package/dist/debug/abi.d.ts.map +1 -1
- package/dist/debug/abi.js +14 -12
- package/dist/debug/abi.js.map +1 -1
- package/dist/debug/artifact_manager.d.ts +10 -1
- package/dist/debug/artifact_manager.d.ts.map +1 -1
- package/dist/debug/artifact_manager.js +21 -1
- package/dist/debug/artifact_manager.js.map +1 -1
- package/dist/debug/decoding/calldata.d.ts +4 -3
- package/dist/debug/decoding/calldata.d.ts.map +1 -1
- package/dist/debug/decoding/calldata.js +55 -15
- package/dist/debug/decoding/calldata.js.map +1 -1
- package/dist/debug/decoding/general.d.ts +2 -2
- package/dist/debug/decoding/general.d.ts.map +1 -1
- package/dist/debug/decoding/general.js +11 -12
- package/dist/debug/decoding/general.js.map +1 -1
- package/dist/debug/decoding/memory.d.ts +2 -2
- package/dist/debug/decoding/memory.d.ts.map +1 -1
- package/dist/debug/decoding/memory.js +17 -16
- package/dist/debug/decoding/memory.js.map +1 -1
- package/dist/debug/decoding/stack.d.ts +2 -2
- package/dist/debug/decoding/stack.d.ts.map +1 -1
- package/dist/debug/decoding/stack.js +3 -3
- package/dist/debug/decoding/stack.js.map +1 -1
- package/dist/debug/decoding/storage.d.ts +2 -2
- package/dist/debug/decoding/storage.d.ts.map +1 -1
- package/dist/debug/decoding/storage.js +22 -22
- package/dist/debug/decoding/storage.js.map +1 -1
- package/dist/debug/sol_debugger.d.ts +1 -1
- package/dist/debug/sol_debugger.d.ts.map +1 -1
- package/dist/debug/sol_debugger.js +12 -9
- package/dist/debug/sol_debugger.js.map +1 -1
- package/dist/utils/misc.d.ts +2 -3
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +2 -3
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/srcmap.d.ts +1 -0
- package/dist/utils/srcmap.d.ts.map +1 -1
- package/dist/utils/srcmap.js +61 -1
- package/dist/utils/srcmap.js.map +1 -1
- package/package.json +14 -20
package/README.md
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
[](https://github.com/ConsenSys/sol-dbg/actions/workflows/node.js.yml)
|
|
2
|
+
[](https://codecov.io/gh/ConsenSys/sol-dbg)
|
|
3
|
+
[](https://www.npmjs.com/package/sol-dbg)
|
|
4
|
+
[](https://www.npmjs.com/package/sol-dbg)
|
|
2
5
|
[](./LICENSE)
|
|
3
6
|
|
|
4
7
|
# sol-dbg
|
package/dist/debug/abi.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { DataLocation as SolDataLocation, FunctionDefinition, TypeNode, VariableDeclaration } from "solc-typed-ast";
|
|
2
|
+
import { DataLocation as SolDataLocation, FunctionDefinition, InferType, TypeNode, VariableDeclaration } from "solc-typed-ast";
|
|
3
3
|
import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
|
|
4
4
|
import { DataLocationKind, DataView } from ".";
|
|
5
5
|
export declare function changeToLocation(typ: TypeNode, newLoc: SolDataLocation): TypeNode;
|
|
@@ -12,7 +12,7 @@ export declare function changeToLocation(typ: TypeNode, newLoc: SolDataLocation)
|
|
|
12
12
|
* into msg.data that match a specific function signature. Also this should be moved into sol_debugger, in the same place
|
|
13
13
|
* where `SolTxDebugger.decodeFunArgs` lives.
|
|
14
14
|
*/
|
|
15
|
-
export declare function decodeMsgData(callee: FunctionDefinition | VariableDeclaration, data: Buffer, kind: DataLocationKind.Memory | DataLocationKind.CallData, encoderVersion: ABIEncoderVersion): Array<[string, DataView | undefined]>;
|
|
15
|
+
export declare function decodeMsgData(callee: FunctionDefinition | VariableDeclaration, data: Buffer, kind: DataLocationKind.Memory | DataLocationKind.CallData, infer: InferType, encoderVersion: ABIEncoderVersion): Array<[string, DataView | undefined]>;
|
|
16
16
|
/**
|
|
17
17
|
* Convert an internal TypeNode to the external TypeNode that would correspond to it
|
|
18
18
|
* after ABI-encoding with encoder version `encoderVersion`. Follows the following rules:
|
|
@@ -26,5 +26,5 @@ export declare function decodeMsgData(callee: FunctionDefinition | VariableDecla
|
|
|
26
26
|
*
|
|
27
27
|
* @see https://docs.soliditylang.org/en/latest/abi-spec.html
|
|
28
28
|
*/
|
|
29
|
-
export declare function toABIEncodedType(type: TypeNode, encoderVersion: ABIEncoderVersion): TypeNode;
|
|
29
|
+
export declare function toABIEncodedType(type: TypeNode, infer: InferType, encoderVersion: ABIEncoderVersion): TypeNode;
|
|
30
30
|
//# sourceMappingURL=abi.d.ts.map
|
package/dist/debug/abi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":";AAAA,OAAO,EAOH,YAAY,IAAI,eAAe,EAI/B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":";AAAA,OAAO,EAOH,YAAY,IAAI,eAAe,EAI/B,kBAAkB,EAClB,SAAS,EAOT,QAAQ,EAGR,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;AAG/C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,QAAQ,CAmCjF;AA6CD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CACzB,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,EAChD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EACzD,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,iBAAiB,GAClC,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAuCvC;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,iBAAiB,GAClC,QAAQ,CAyDV"}
|
package/dist/debug/abi.js
CHANGED
|
@@ -54,6 +54,7 @@ function abiStaticTypeSize(typ) {
|
|
|
54
54
|
if (typ instanceof solc_typed_ast_1.TupleType) {
|
|
55
55
|
let res = 0;
|
|
56
56
|
for (const elT of typ.elements) {
|
|
57
|
+
(0, solc_typed_ast_1.assert)(elT !== null, ``);
|
|
57
58
|
res += abiStaticTypeSize(elT);
|
|
58
59
|
}
|
|
59
60
|
return res;
|
|
@@ -69,22 +70,22 @@ function abiStaticTypeSize(typ) {
|
|
|
69
70
|
* into msg.data that match a specific function signature. Also this should be moved into sol_debugger, in the same place
|
|
70
71
|
* where `SolTxDebugger.decodeFunArgs` lives.
|
|
71
72
|
*/
|
|
72
|
-
function decodeMsgData(callee, data, kind, encoderVersion) {
|
|
73
|
+
function decodeMsgData(callee, data, kind, infer, encoderVersion) {
|
|
73
74
|
const res = [];
|
|
74
75
|
const selector = callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
75
|
-
? (0, utils_1.getFunctionSelector)(callee,
|
|
76
|
-
:
|
|
76
|
+
? (0, utils_1.getFunctionSelector)(callee, infer)
|
|
77
|
+
: infer.signatureHash(callee);
|
|
77
78
|
(0, solc_typed_ast_1.assert)(selector === data.slice(0, 4).toString("hex"), `Expected selector ${selector} instead got ${data.slice(0, 4)}`);
|
|
78
79
|
const formals = callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
79
80
|
? callee.vParameters.vParameters.map((argDef) => [
|
|
80
81
|
argDef.name,
|
|
81
|
-
|
|
82
|
+
infer.variableDeclarationToTypeNode(argDef)
|
|
82
83
|
])
|
|
83
|
-
:
|
|
84
|
+
: infer.getterArgsAndReturn(callee)[0].map((typ, i) => [`ARG_${i}`, typ]);
|
|
84
85
|
let staticOff = 4;
|
|
85
86
|
const len = data.length;
|
|
86
87
|
for (const [name, originalType] of formals) {
|
|
87
|
-
const typ = toABIEncodedType(originalType, encoderVersion);
|
|
88
|
+
const typ = toABIEncodedType(originalType, infer, encoderVersion);
|
|
88
89
|
const staticSize = abiStaticTypeSize(typ);
|
|
89
90
|
const loc = staticOff + staticSize <= len ? { kind, address: BigInt(staticOff) } : undefined;
|
|
90
91
|
staticOff += staticSize;
|
|
@@ -121,6 +122,7 @@ function isTypeEncodingDynamic(typ) {
|
|
|
121
122
|
// Tuples in calldata with static elements
|
|
122
123
|
if (typ instanceof solc_typed_ast_1.TupleType) {
|
|
123
124
|
for (const elT of typ.elements) {
|
|
125
|
+
(0, solc_typed_ast_1.assert)(elT !== null, ``);
|
|
124
126
|
if (isTypeEncodingDynamic(elT)) {
|
|
125
127
|
return true;
|
|
126
128
|
}
|
|
@@ -142,12 +144,12 @@ function isTypeEncodingDynamic(typ) {
|
|
|
142
144
|
*
|
|
143
145
|
* @see https://docs.soliditylang.org/en/latest/abi-spec.html
|
|
144
146
|
*/
|
|
145
|
-
function toABIEncodedType(type, encoderVersion) {
|
|
147
|
+
function toABIEncodedType(type, infer, encoderVersion) {
|
|
146
148
|
if (type instanceof solc_typed_ast_1.MappingType) {
|
|
147
149
|
throw new Error("Cannot abi-encode mapping types");
|
|
148
150
|
}
|
|
149
151
|
if (type instanceof solc_typed_ast_1.ArrayType) {
|
|
150
|
-
const encodedElementT = toABIEncodedType(type.elementT, encoderVersion);
|
|
152
|
+
const encodedElementT = toABIEncodedType(type.elementT, infer, encoderVersion);
|
|
151
153
|
if (type.size !== undefined) {
|
|
152
154
|
const elements = [];
|
|
153
155
|
for (let i = 0; i < type.size; i++) {
|
|
@@ -158,12 +160,12 @@ function toABIEncodedType(type, encoderVersion) {
|
|
|
158
160
|
return new solc_typed_ast_1.ArrayType(encodedElementT, type.size);
|
|
159
161
|
}
|
|
160
162
|
if (type instanceof solc_typed_ast_1.PointerType) {
|
|
161
|
-
const toT = toABIEncodedType(type.to, encoderVersion);
|
|
163
|
+
const toT = toABIEncodedType(type.to, infer, encoderVersion);
|
|
162
164
|
return isTypeEncodingDynamic(toT) ? new solc_typed_ast_1.PointerType(toT, type.location) : toT;
|
|
163
165
|
}
|
|
164
166
|
if (type instanceof solc_typed_ast_1.UserDefinedType) {
|
|
165
167
|
if (type.definition instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
|
|
166
|
-
return
|
|
168
|
+
return infer.typeNameToTypeNode(type.definition.underlyingType);
|
|
167
169
|
}
|
|
168
170
|
if (type.definition instanceof solc_typed_ast_1.ContractDefinition) {
|
|
169
171
|
return new solc_typed_ast_1.AddressType(false);
|
|
@@ -173,8 +175,8 @@ function toABIEncodedType(type, encoderVersion) {
|
|
|
173
175
|
}
|
|
174
176
|
if (type.definition instanceof solc_typed_ast_1.StructDefinition) {
|
|
175
177
|
(0, solc_typed_ast_1.assert)(encoderVersion !== abi_1.ABIEncoderVersion.V1, "Getters of struct return type are not supported by ABI encoder v1");
|
|
176
|
-
const fieldTs = type.definition.vMembers.map((fieldT) =>
|
|
177
|
-
return new solc_typed_ast_1.TupleType(fieldTs.map((fieldT) => toABIEncodedType(fieldT, encoderVersion)));
|
|
178
|
+
const fieldTs = type.definition.vMembers.map((fieldT) => infer.variableDeclarationToTypeNode(fieldT));
|
|
179
|
+
return new solc_typed_ast_1.TupleType(fieldTs.map((fieldT) => toABIEncodedType(fieldT, infer, encoderVersion)));
|
|
178
180
|
}
|
|
179
181
|
}
|
|
180
182
|
return type;
|
package/dist/debug/abi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { PrefixedHexString } from "ethereumjs-util";
|
|
3
|
-
import { ASTContext, ASTNode, ContractDefinition, SourceUnit } from "solc-typed-ast";
|
|
3
|
+
import { ASTContext, ASTNode, ContractDefinition, InferType, SourceUnit } from "solc-typed-ast";
|
|
4
4
|
import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
|
|
5
5
|
import { DecodedBytecodeSourceMapEntry, PartialCompiledContract, PartialSolcOutput, RawAST } from "..";
|
|
6
6
|
import { HexString } from "../artifacts";
|
|
@@ -11,6 +11,7 @@ export interface IArtifactManager {
|
|
|
11
11
|
artifacts(): ArtifactInfo[];
|
|
12
12
|
contracts(): ContractInfo[];
|
|
13
13
|
getFileById(id: number, code: string | Buffer, isCreation: boolean): SourceFileInfo | undefined;
|
|
14
|
+
infer(version: string): InferType;
|
|
14
15
|
}
|
|
15
16
|
export interface BytecodeInfo {
|
|
16
17
|
generatedFileMap: Map<number, SourceFileInfo>;
|
|
@@ -57,6 +58,13 @@ export declare class ArtifactManager implements IArtifactManager {
|
|
|
57
58
|
private _artifacts;
|
|
58
59
|
private _contracts;
|
|
59
60
|
private _mdHashToContractInfo;
|
|
61
|
+
private _inferCache;
|
|
62
|
+
/**
|
|
63
|
+
* Helper to pick a canonical ABI encode version for a set of units.
|
|
64
|
+
* For now just pick the highest version among the files
|
|
65
|
+
* @todo (dimo) I am not sure this function is correct. Seems to work for now
|
|
66
|
+
*/
|
|
67
|
+
private pickABIEncoderVersion;
|
|
60
68
|
constructor(artifacts: PartialSolcOutput[]);
|
|
61
69
|
artifacts(): ArtifactInfo[];
|
|
62
70
|
getContractFromMDHash(hash: HexString): ContractInfo | undefined;
|
|
@@ -64,5 +72,6 @@ export declare class ArtifactManager implements IArtifactManager {
|
|
|
64
72
|
getContractFromCreationBytecode(creationBytecode: string | Buffer): ContractInfo | undefined;
|
|
65
73
|
getFileById(id: number, arg: string | Buffer | ContractInfo, isCreation: boolean): SourceFileInfo | undefined;
|
|
66
74
|
contracts(): ContractInfo[];
|
|
75
|
+
infer(version: string): InferType;
|
|
67
76
|
}
|
|
68
77
|
//# sourceMappingURL=artifact_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAEH,UAAU,EACV,OAAO,EAEP,kBAAkB,EAElB,UAAU,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACH,6BAA6B,EAO7B,uBAAuB,EACvB,iBAAiB,EACjB,MAAM,EAET,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,WAAW,gBAAgB;IAC7B,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACjF,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACjF,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;IACjE,SAAS,IAAI,YAAY,EAAE,CAAC;IAC5B,SAAS,IAAI,YAAY,EAAE,CAAC;IAE5B,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ArtifactManager = exports.getOffsetSrc = exports.SourceFileType = void 0;
|
|
4
4
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
5
|
+
const abi_1 = require("solc-typed-ast/dist/types/abi");
|
|
5
6
|
const __1 = require("..");
|
|
6
7
|
const opcodes_1 = require("./opcodes");
|
|
7
8
|
var SourceFileType;
|
|
@@ -42,6 +43,7 @@ exports.getOffsetSrc = getOffsetSrc;
|
|
|
42
43
|
*/
|
|
43
44
|
class ArtifactManager {
|
|
44
45
|
constructor(artifacts) {
|
|
46
|
+
this._inferCache = new Map();
|
|
45
47
|
this._artifacts = [];
|
|
46
48
|
this._contracts = [];
|
|
47
49
|
this._mdHashToContractInfo = new Map();
|
|
@@ -50,7 +52,7 @@ class ArtifactManager {
|
|
|
50
52
|
const compilerVersion = (0, __1.getArtifactCompilerVersion)(artifact);
|
|
51
53
|
(0, solc_typed_ast_1.assert)(compilerVersion !== undefined, `Couldn't find compiler version for artifact`);
|
|
52
54
|
const units = reader.read(artifact);
|
|
53
|
-
const abiEncoderVersion =
|
|
55
|
+
const abiEncoderVersion = this.pickABIEncoderVersion(units, compilerVersion);
|
|
54
56
|
const fileMap = new Map();
|
|
55
57
|
const unitMap = new Map(units.map((unit) => [unit.id, unit]));
|
|
56
58
|
for (const fileName in artifact.sources) {
|
|
@@ -132,6 +134,18 @@ class ArtifactManager {
|
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Helper to pick a canonical ABI encode version for a set of units.
|
|
139
|
+
* For now just pick the highest version among the files
|
|
140
|
+
* @todo (dimo) I am not sure this function is correct. Seems to work for now
|
|
141
|
+
*/
|
|
142
|
+
pickABIEncoderVersion(units, compilerVersion) {
|
|
143
|
+
const versions = new Set(units.map((unit) => (0, solc_typed_ast_1.getABIEncoderVersion)(unit, compilerVersion)));
|
|
144
|
+
if (versions.has(abi_1.ABIEncoderVersion.V2)) {
|
|
145
|
+
return abi_1.ABIEncoderVersion.V2;
|
|
146
|
+
}
|
|
147
|
+
return abi_1.ABIEncoderVersion.V1;
|
|
148
|
+
}
|
|
135
149
|
artifacts() {
|
|
136
150
|
return this._artifacts;
|
|
137
151
|
}
|
|
@@ -177,6 +191,12 @@ class ArtifactManager {
|
|
|
177
191
|
contracts() {
|
|
178
192
|
return this._contracts;
|
|
179
193
|
}
|
|
194
|
+
infer(version) {
|
|
195
|
+
if (!this._inferCache.has(version)) {
|
|
196
|
+
this._inferCache.set(version, new solc_typed_ast_1.InferType(version));
|
|
197
|
+
}
|
|
198
|
+
return this._inferCache.get(version);
|
|
199
|
+
}
|
|
180
200
|
}
|
|
181
201
|
exports.ArtifactManager = ArtifactManager;
|
|
182
202
|
//# sourceMappingURL=artifact_manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ArrayType, TypeNode } from "solc-typed-ast";
|
|
1
|
+
import { ArrayType, InferType, TypeNode } from "solc-typed-ast";
|
|
2
2
|
import { CalldataLocation } from "..";
|
|
3
3
|
import { Memory } from "../..";
|
|
4
|
-
export declare function cd_decodeArrayContents(abiType: ArrayType, origType: ArrayType | undefined, arrOffset: bigint, numLen: number, calldata: Memory): undefined | [any[], number];
|
|
5
|
-
export declare function
|
|
4
|
+
export declare function cd_decodeArrayContents(abiType: ArrayType, origType: ArrayType | undefined, arrOffset: bigint, numLen: number, calldata: Memory, infer: InferType): undefined | [any[], number];
|
|
5
|
+
export declare function isABITypeStaticSized(type: TypeNode): boolean;
|
|
6
|
+
export declare function cd_decodeValue(abiType: TypeNode, origType: TypeNode | undefined, loc: CalldataLocation, calldata: Memory, callDataBaseOff: bigint | undefined, infer: InferType): undefined | [any, number];
|
|
6
7
|
//# sourceMappingURL=calldata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calldata.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/calldata.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,SAAS,
|
|
1
|
+
{"version":3,"file":"calldata.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/calldata.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,SAAS,EAMT,SAAS,EAMT,QAAQ,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAoD,MAAM,IAAI,CAAC;AACxF,OAAO,EAKH,MAAM,EAET,MAAM,OAAO,CAAC;AAwHf,wBAAgB,sBAAsB,CAClC,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,SAAS,GAAG,SAAS,EAC/B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,GACjB,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CA+B7B;AA4LD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAkC5D;AAED,wBAAgB,cAAc,CAC1B,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAC9B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,eAAe,oBAAY,EAC3B,KAAK,EAAE,SAAS,GACjB,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAsE3B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cd_decodeValue = exports.cd_decodeArrayContents = void 0;
|
|
3
|
+
exports.cd_decodeValue = exports.isABITypeStaticSized = exports.cd_decodeArrayContents = void 0;
|
|
4
4
|
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
5
5
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
6
6
|
const __1 = require("..");
|
|
@@ -79,13 +79,13 @@ function cd_decodeString(loc, calldata) {
|
|
|
79
79
|
const str = bytes[0].toString("utf-8");
|
|
80
80
|
return [str, bytes[1]];
|
|
81
81
|
}
|
|
82
|
-
function cd_decodeArrayContents(abiType, origType, arrOffset, numLen, calldata) {
|
|
82
|
+
function cd_decodeArrayContents(abiType, origType, arrOffset, numLen, calldata, infer) {
|
|
83
83
|
let arrBytesSize = 0;
|
|
84
84
|
const arrBaseOffset = arrOffset;
|
|
85
85
|
const res = [];
|
|
86
86
|
const elT = origType !== undefined ? origType.elementT : undefined;
|
|
87
87
|
for (let i = 0; i < numLen; i++) {
|
|
88
|
-
const elementTuple = cd_decodeValue(abiType.elementT, elT, { kind: __1.DataLocationKind.CallData, address: arrOffset }, calldata, arrBaseOffset);
|
|
88
|
+
const elementTuple = cd_decodeValue(abiType.elementT, elT, { kind: __1.DataLocationKind.CallData, address: arrOffset }, calldata, arrBaseOffset, infer);
|
|
89
89
|
if (elementTuple === undefined) {
|
|
90
90
|
return undefined;
|
|
91
91
|
}
|
|
@@ -97,10 +97,16 @@ function cd_decodeArrayContents(abiType, origType, arrOffset, numLen, calldata)
|
|
|
97
97
|
return [res, arrBytesSize];
|
|
98
98
|
}
|
|
99
99
|
exports.cd_decodeArrayContents = cd_decodeArrayContents;
|
|
100
|
-
function cd_decodeArray(abiType, origType, loc, calldata) {
|
|
100
|
+
function cd_decodeArray(abiType, origType, loc, calldata, infer) {
|
|
101
101
|
let arrOffset = loc.address;
|
|
102
102
|
let arrBytesSize = 0;
|
|
103
|
-
|
|
103
|
+
let len;
|
|
104
|
+
if (abiType.size !== undefined) {
|
|
105
|
+
len = [abiType.size, 0];
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
len = cd_decodeInt(__2.uint256, loc, calldata);
|
|
109
|
+
}
|
|
104
110
|
if (len == undefined) {
|
|
105
111
|
return undefined;
|
|
106
112
|
}
|
|
@@ -110,13 +116,13 @@ function cd_decodeArray(abiType, origType, loc, calldata) {
|
|
|
110
116
|
const numLen = Number(len[0]);
|
|
111
117
|
arrOffset += BigInt(len[1]);
|
|
112
118
|
arrBytesSize += len[1];
|
|
113
|
-
const contentsRes = cd_decodeArrayContents(abiType, origType, arrOffset, numLen, calldata);
|
|
119
|
+
const contentsRes = cd_decodeArrayContents(abiType, origType, arrOffset, numLen, calldata, infer);
|
|
114
120
|
if (contentsRes === undefined) {
|
|
115
121
|
return undefined;
|
|
116
122
|
}
|
|
117
123
|
return [contentsRes[0], arrBytesSize + contentsRes[1]];
|
|
118
124
|
}
|
|
119
|
-
function cd_decodeTuple(abiType, origType, loc, calldata) {
|
|
125
|
+
function cd_decodeTuple(abiType, origType, loc, calldata, infer) {
|
|
120
126
|
let tupleOffset = loc.address;
|
|
121
127
|
let size = 0;
|
|
122
128
|
const tupleRes = [];
|
|
@@ -133,7 +139,7 @@ function cd_decodeTuple(abiType, origType, loc, calldata) {
|
|
|
133
139
|
const def = origType.definition;
|
|
134
140
|
(0, solc_typed_ast_1.assert)(def instanceof solc_typed_ast_1.StructDefinition && def.vMembers.length === abiType.elements.length, `Expected struct with ${abiType.elements.length} fields not {0}`, origType);
|
|
135
141
|
try {
|
|
136
|
-
origElementTs = def.vMembers.map((fieldDef) => (0, __1.changeToLocation)(
|
|
142
|
+
origElementTs = def.vMembers.map((fieldDef) => (0, __1.changeToLocation)(infer.variableDeclarationToTypeNode(fieldDef), solc_typed_ast_1.DataLocation.CallData));
|
|
137
143
|
}
|
|
138
144
|
catch (e) {
|
|
139
145
|
return undefined;
|
|
@@ -149,7 +155,8 @@ function cd_decodeTuple(abiType, origType, loc, calldata) {
|
|
|
149
155
|
: origElementTs instanceof solc_typed_ast_1.TypeNode
|
|
150
156
|
? origElementTs
|
|
151
157
|
: origElementTs[i];
|
|
152
|
-
|
|
158
|
+
(0, solc_typed_ast_1.assert)(fieldT !== null, ``);
|
|
159
|
+
const decodeRes = cd_decodeValue(fieldT, origElementT, { kind: loc.kind, address: tupleOffset }, calldata, tupleBase, infer);
|
|
153
160
|
if (decodeRes === undefined) {
|
|
154
161
|
return undefined;
|
|
155
162
|
}
|
|
@@ -168,7 +175,7 @@ function cd_decodeTuple(abiType, origType, loc, calldata) {
|
|
|
168
175
|
}
|
|
169
176
|
return [structRes, size];
|
|
170
177
|
}
|
|
171
|
-
function cd_decodePointer(abiType, origType, loc, calldata, callDataBaseOff) {
|
|
178
|
+
function cd_decodePointer(abiType, origType, loc, calldata, callDataBaseOff, infer) {
|
|
172
179
|
const offRes = cd_decodeInt(__2.uint256, loc, calldata);
|
|
173
180
|
if (offRes === undefined) {
|
|
174
181
|
return undefined;
|
|
@@ -181,13 +188,41 @@ function cd_decodePointer(abiType, origType, loc, calldata, callDataBaseOff) {
|
|
|
181
188
|
address: off
|
|
182
189
|
};
|
|
183
190
|
const origPointedToType = origType === undefined ? undefined : origType.to;
|
|
184
|
-
const pointedToValue = cd_decodeValue(abiType.to, origPointedToType, pointedToLoc, calldata, callDataBaseOff);
|
|
191
|
+
const pointedToValue = cd_decodeValue(abiType.to, origPointedToType, pointedToLoc, calldata, callDataBaseOff, infer);
|
|
185
192
|
if (pointedToValue === undefined) {
|
|
186
193
|
return undefined;
|
|
187
194
|
}
|
|
188
195
|
return [pointedToValue[0], size];
|
|
189
196
|
}
|
|
190
|
-
function
|
|
197
|
+
function isABITypeStaticSized(type) {
|
|
198
|
+
if (type instanceof solc_typed_ast_1.ArrayType) {
|
|
199
|
+
return type.size !== undefined && isABITypeStaticSized(type.elementT);
|
|
200
|
+
}
|
|
201
|
+
if (type instanceof solc_typed_ast_1.PointerType) {
|
|
202
|
+
return isABITypeStaticSized(type.to);
|
|
203
|
+
}
|
|
204
|
+
if (type instanceof solc_typed_ast_1.TupleType) {
|
|
205
|
+
for (const elT of type.elements) {
|
|
206
|
+
(0, solc_typed_ast_1.assert)(elT !== null, ``);
|
|
207
|
+
if (!isABITypeStaticSized(elT)) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
if (type instanceof solc_typed_ast_1.StringType || type instanceof solc_typed_ast_1.BytesType) {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
if (type instanceof solc_typed_ast_1.IntType ||
|
|
217
|
+
type instanceof solc_typed_ast_1.AddressType ||
|
|
218
|
+
type instanceof solc_typed_ast_1.BoolType ||
|
|
219
|
+
type instanceof solc_typed_ast_1.FixedBytesType) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
throw new Error(`NYI isABITypeStaticSized(${type.pp()})`);
|
|
223
|
+
}
|
|
224
|
+
exports.isABITypeStaticSized = isABITypeStaticSized;
|
|
225
|
+
function cd_decodeValue(abiType, origType, loc, calldata, callDataBaseOff = BigInt(4), infer) {
|
|
191
226
|
/*
|
|
192
227
|
console.error(
|
|
193
228
|
`cd_decodeValue(${abiType.pp()}, ${origType ? origType.pp() : undefined}, ${ppLoc(loc)})`
|
|
@@ -207,7 +242,7 @@ function cd_decodeValue(abiType, origType, loc, calldata, callDataBaseOff = BigI
|
|
|
207
242
|
}
|
|
208
243
|
if (abiType instanceof solc_typed_ast_1.ArrayType) {
|
|
209
244
|
(0, solc_typed_ast_1.assert)(origType === undefined || origType instanceof solc_typed_ast_1.ArrayType, `Unexpected original type {0}`, origType);
|
|
210
|
-
return cd_decodeArray(abiType, origType, loc, calldata);
|
|
245
|
+
return cd_decodeArray(abiType, origType, loc, calldata, infer);
|
|
211
246
|
}
|
|
212
247
|
if (abiType instanceof solc_typed_ast_1.BytesType) {
|
|
213
248
|
return cd_decodeBytes(loc, calldata);
|
|
@@ -216,11 +251,16 @@ function cd_decodeValue(abiType, origType, loc, calldata, callDataBaseOff = BigI
|
|
|
216
251
|
return cd_decodeString(loc, calldata);
|
|
217
252
|
}
|
|
218
253
|
if (abiType instanceof solc_typed_ast_1.TupleType) {
|
|
219
|
-
return cd_decodeTuple(abiType, origType, loc, calldata);
|
|
254
|
+
return cd_decodeTuple(abiType, origType, loc, calldata, infer);
|
|
220
255
|
}
|
|
221
256
|
if (abiType instanceof solc_typed_ast_1.PointerType) {
|
|
222
257
|
(0, solc_typed_ast_1.assert)(origType === undefined || origType instanceof solc_typed_ast_1.PointerType, `Unexpected original type {0}`, origType);
|
|
223
|
-
|
|
258
|
+
// Fixed-sized data types are emitted inline, not in the dynamic region
|
|
259
|
+
if (isABITypeStaticSized(abiType)) {
|
|
260
|
+
const origPointedToType = origType === undefined ? undefined : origType.to;
|
|
261
|
+
return cd_decodeValue(abiType.to, origPointedToType, loc, calldata, callDataBaseOff, infer);
|
|
262
|
+
}
|
|
263
|
+
return cd_decodePointer(abiType, origType, loc, calldata, callDataBaseOff, infer);
|
|
224
264
|
}
|
|
225
265
|
throw new Error(`NYI decoding ${abiType.pp()}`);
|
|
226
266
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calldata.js","sourceRoot":"","sources":["../../../src/debug/decoding/calldata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calldata.js","sourceRoot":"","sources":["../../../src/debug/decoding/calldata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { TypeNode } from "solc-typed-ast";
|
|
1
|
+
import { InferType, TypeNode } from "solc-typed-ast";
|
|
2
2
|
import { DataView, StepState } from "..";
|
|
3
3
|
export declare function isCalldataType2Slots(typ: TypeNode): boolean;
|
|
4
4
|
/**
|
|
5
5
|
* Decode a generic value expressed as a `DataView` (i.e. a tuple of type and location) given
|
|
6
6
|
* the dbg state `state` at some step.
|
|
7
7
|
*/
|
|
8
|
-
export declare function decodeValue(view: DataView, state: StepState): any;
|
|
8
|
+
export declare function decodeValue(view: DataView, state: StepState, infer: InferType): any;
|
|
9
9
|
//# sourceMappingURL=general.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/general.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,SAAS,EAET,QAAQ,EACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGH,QAAQ,EAIR,SAAS,EAEZ,MAAM,IAAI,CAAC;AAmDZ,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAO3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,GAAG,CAqFnF"}
|
|
@@ -19,27 +19,27 @@ function solLocToDataKind(loc) {
|
|
|
19
19
|
* Helper to dispatch the decoding of a given type `typ` at a given data location `loc` in a given `state`.
|
|
20
20
|
* to the proper decoding logic (memory, calldata, storage, stack)
|
|
21
21
|
*/
|
|
22
|
-
function decodeValInt(typ, loc, state) {
|
|
22
|
+
function decodeValInt(typ, loc, state, infer) {
|
|
23
23
|
if (loc.kind === __1.DataLocationKind.Memory) {
|
|
24
|
-
const res = (0, memory_1.mem_decodeValue)(typ, loc, state.memory);
|
|
24
|
+
const res = (0, memory_1.mem_decodeValue)(typ, loc, state.memory, infer);
|
|
25
25
|
return res === undefined ? res : res[0];
|
|
26
26
|
}
|
|
27
27
|
if (loc.kind === __1.DataLocationKind.CallData) {
|
|
28
28
|
const lastExtFrame = (0, __1.lastExternalFrame)(state.stack);
|
|
29
29
|
let abiType;
|
|
30
30
|
try {
|
|
31
|
-
abiType =
|
|
31
|
+
abiType = infer.toABIEncodedType(typ, abi_1.ABIEncoderVersion.V2);
|
|
32
32
|
}
|
|
33
33
|
catch (e) {
|
|
34
34
|
return undefined;
|
|
35
35
|
}
|
|
36
|
-
const res = (0, calldata_1.cd_decodeValue)(abiType, typ, loc, lastExtFrame.msgData, BigInt(4));
|
|
36
|
+
const res = (0, calldata_1.cd_decodeValue)(abiType, typ, loc, lastExtFrame.msgData, BigInt(4), infer);
|
|
37
37
|
return res === undefined ? res : res[0];
|
|
38
38
|
}
|
|
39
39
|
if (loc.kind === __1.DataLocationKind.Stack) {
|
|
40
|
-
return (0, stack_1.st_decodeValue)(typ, loc, state.evmStack);
|
|
40
|
+
return (0, stack_1.st_decodeValue)(typ, loc, state.evmStack, infer);
|
|
41
41
|
}
|
|
42
|
-
const res = (0, storage_1.stor_decodeValue)(typ, loc, state.storage);
|
|
42
|
+
const res = (0, storage_1.stor_decodeValue)(typ, loc, state.storage, infer);
|
|
43
43
|
return res === undefined ? res : res[0];
|
|
44
44
|
}
|
|
45
45
|
function isCalldataType2Slots(typ) {
|
|
@@ -53,8 +53,7 @@ exports.isCalldataType2Slots = isCalldataType2Slots;
|
|
|
53
53
|
* Decode a generic value expressed as a `DataView` (i.e. a tuple of type and location) given
|
|
54
54
|
* the dbg state `state` at some step.
|
|
55
55
|
*/
|
|
56
|
-
function decodeValue(view, state) {
|
|
57
|
-
//console.error(`decodeValue(${ppView(view)})`);
|
|
56
|
+
function decodeValue(view, state, infer) {
|
|
58
57
|
const typ = view.type;
|
|
59
58
|
const loc = view.loc;
|
|
60
59
|
/**
|
|
@@ -73,7 +72,7 @@ function decodeValue(view, state) {
|
|
|
73
72
|
const lastExtFrame = (0, __1.lastExternalFrame)(state.stack);
|
|
74
73
|
let abiType;
|
|
75
74
|
try {
|
|
76
|
-
abiType =
|
|
75
|
+
abiType = infer.toABIEncodedType(typ, abi_1.ABIEncoderVersion.V2);
|
|
77
76
|
}
|
|
78
77
|
catch (e) {
|
|
79
78
|
return undefined;
|
|
@@ -86,7 +85,7 @@ function decodeValue(view, state) {
|
|
|
86
85
|
if (len > __2.MAX_ARR_DECODE_LIMIT) {
|
|
87
86
|
return undefined;
|
|
88
87
|
}
|
|
89
|
-
const res = (0, calldata_1.cd_decodeArrayContents)(abiType.to, typ.to, off, Number(len), lastExtFrame.msgData);
|
|
88
|
+
const res = (0, calldata_1.cd_decodeArrayContents)(abiType.to, typ.to, off, Number(len), lastExtFrame.msgData, infer);
|
|
90
89
|
return res === undefined ? res : res[0];
|
|
91
90
|
}
|
|
92
91
|
if (kind === __1.DataLocationKind.Storage) {
|
|
@@ -102,11 +101,11 @@ function decodeValue(view, state) {
|
|
|
102
101
|
address: off
|
|
103
102
|
};
|
|
104
103
|
}
|
|
105
|
-
const res = decodeValInt(typ.to, pointedToLoc, state);
|
|
104
|
+
const res = decodeValInt(typ.to, pointedToLoc, state, infer);
|
|
106
105
|
//console.error(`decodeValue: res ${res}`);
|
|
107
106
|
return res;
|
|
108
107
|
}
|
|
109
|
-
const res = decodeValInt(typ, loc, state);
|
|
108
|
+
const res = decodeValInt(typ, loc, state, infer);
|
|
110
109
|
//console.error(`decodeValue: res ${res}`);
|
|
111
110
|
return res;
|
|
112
111
|
}
|