sol-dbg 0.3.6 → 0.4.0
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 +5 -5
- package/dist/artifacts/helpers.d.ts +2 -3
- package/dist/artifacts/helpers.d.ts.map +1 -1
- package/dist/artifacts/helpers.js +48 -21
- package/dist/artifacts/helpers.js.map +1 -1
- package/dist/debug/abi.d.ts +12 -5
- package/dist/debug/abi.d.ts.map +1 -1
- package/dist/debug/abi.js +54 -13
- package/dist/debug/abi.js.map +1 -1
- package/dist/debug/artifact_manager.d.ts +9 -10
- package/dist/debug/artifact_manager.d.ts.map +1 -1
- package/dist/debug/artifact_manager.js +7 -6
- package/dist/debug/artifact_manager.js.map +1 -1
- package/dist/debug/decoding/calldata.d.ts.map +1 -1
- package/dist/debug/decoding/calldata.js +5 -6
- package/dist/debug/decoding/calldata.js.map +1 -1
- package/dist/debug/decoding/general.js +2 -3
- package/dist/debug/decoding/general.js.map +1 -1
- package/dist/debug/decoding/memory.d.ts.map +1 -1
- package/dist/debug/decoding/memory.js +4 -5
- package/dist/debug/decoding/memory.js.map +1 -1
- package/dist/debug/decoding/stack.js +2 -3
- package/dist/debug/decoding/stack.js.map +1 -1
- package/dist/debug/decoding/storage.d.ts.map +1 -1
- package/dist/debug/decoding/storage.js +9 -9
- package/dist/debug/decoding/storage.js.map +1 -1
- package/dist/debug/foundry_cheatcodes.d.ts +26 -25
- package/dist/debug/foundry_cheatcodes.d.ts.map +1 -1
- package/dist/debug/foundry_cheatcodes.js +114 -113
- package/dist/debug/foundry_cheatcodes.js.map +1 -1
- package/dist/debug/opcode_interposing.d.ts +2 -1
- package/dist/debug/opcode_interposing.d.ts.map +1 -1
- package/dist/debug/opcode_interposing.js +41 -39
- package/dist/debug/opcode_interposing.js.map +1 -1
- package/dist/debug/opcodes.js +6 -6
- package/dist/debug/opcodes.js.map +1 -1
- package/dist/debug/sol_debugger.d.ts +10 -165
- package/dist/debug/sol_debugger.d.ts.map +1 -1
- package/dist/debug/sol_debugger.js +74 -97
- package/dist/debug/sol_debugger.js.map +1 -1
- package/dist/debug/types.d.ts +157 -0
- package/dist/debug/types.d.ts.map +1 -1
- package/dist/debug/types.js +14 -0
- package/dist/debug/types.js.map +1 -1
- package/dist/utils/immutable_map.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/misc.d.ts +12 -20
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +39 -83
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/pp.d.ts.map +1 -1
- package/dist/utils/pp.js +17 -10
- package/dist/utils/pp.js.map +1 -1
- package/dist/utils/srcmap.js +2 -3
- package/dist/utils/srcmap.js.map +1 -1
- package/dist/utils/test_runner.d.ts +6 -6
- package/dist/utils/test_runner.d.ts.map +1 -1
- package/dist/utils/test_runner.js +11 -9
- package/dist/utils/test_runner.js.map +1 -1
- package/package.json +31 -30
package/README.md
CHANGED
|
@@ -21,11 +21,11 @@ Currently the debugger gets a trace from the EthereumJS VM, and for each step of
|
|
|
21
21
|
|
|
22
22
|
The main part missing to make this a full-fledged debugger is stack-map inference and computing the values of locals.
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# Quickstart
|
|
25
25
|
|
|
26
26
|
To use the debugger you need 3 things:
|
|
27
27
|
|
|
28
|
-
1. The state of the EthereumJS before the problematic transaction. This can be obtained by calling `vm.stateManager.copy()` right before
|
|
28
|
+
1. The state of the EthereumJS before the problematic transaction. This can be obtained by calling `vm.stateManager.copy()` right before it's executed. For example on keeping track of this state check out the [VMTestRunner](https://github.com/ConsenSys/sol-dbg/blob/main/test/utils/test_runner.ts#L81) class.
|
|
29
29
|
|
|
30
30
|
2. The actual failing `Transaction` and the `Block` in which you wish it to be replayed. These can be built by calling(where the ... are standard JSON descriptions of the tx/block):
|
|
31
31
|
|
|
@@ -92,7 +92,7 @@ export interface StepState {
|
|
|
92
92
|
astNode: ASTNode | undefined;
|
|
93
93
|
// If an event is emitted by this instruction, the event payload and topics
|
|
94
94
|
emittedEvent: EventDesc | undefined;
|
|
95
|
-
// General information about the given contract (if we have a compiler artifact for it). May contain name, code
|
|
95
|
+
// General information about the given contract (if we have a compiler artifact for it). May contain name, code, sourcemaps, ASTs, metadata /// hash, etc.
|
|
96
96
|
contractInfo: ContractInfo | undefined;
|
|
97
97
|
}
|
|
98
98
|
```
|
|
@@ -101,8 +101,8 @@ export interface StepState {
|
|
|
101
101
|
|
|
102
102
|
A stack trace is a list of stack frames. There are 2 kinds of stack frames - an `ExternalFrame` and an `InternalCallFrame`. As the name suggests, an `ExternalCall` frame corresponds to an external call, and an `InternalCallFrame` corresponds to a call for an internal function in a contract.
|
|
103
103
|
|
|
104
|
-
All frames have an optional `callee` field, which is either an `ASTNode` or `undefined`. `callee` is `undefined` when we don't have enough debugging information to determine the target of this call. Otherwise
|
|
104
|
+
All frames have an optional `callee` field, which is either an `ASTNode` or `undefined`. `callee` is `undefined` when we don't have enough debugging information to determine the target of this call. Otherwise it's the `ASTNode` that corresponds to this call. This is usually a `FunctionDefinition`, but can sometimes be other nodes. For example when calling a public state variable getter the `callee` is a `VariableDeclaration`. When calling an implicit constructor of a contract, the `callee` will be a `ContractDefinition`. Also we are planning on adding support for recognizing compiler-generated functions, in which case the `callee` will be a `YulFunctionDefinition`.
|
|
105
105
|
|
|
106
106
|
All frames have an optional `arguments` field, with any decoded Solidity-level arguments. Note that the debugger will do its best to decode as many arguments as possible, and will attempt to decode an argument even if some other arguments fail. Arguments decoding may fail due to missing debugging information, in which case either the whole `arguments` array, or some entries in it may be undefined.
|
|
107
107
|
|
|
108
|
-
Finally note that for a given external call `Contract.Function()` we will have both an `ExternalFrame` for `Contract.Function()` and an internal frame for `Contract.Function()` (if we have enough debug info).
|
|
108
|
+
Finally note that for a given external call `Contract.Function()` we will have both an `ExternalFrame` for `Contract.Function()` and an internal frame for `Contract.Function()` (if we have enough debug info). It's up to the users of this library to filter out those duplicates.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { HexString, PartialSolcOutput, UnprefixedHexString } from "./solc";
|
|
3
|
-
export declare function getCodeHash(deplBytecode: UnprefixedHexString |
|
|
4
|
-
export declare function getCreationCodeHash(creationBytecode: UnprefixedHexString |
|
|
2
|
+
export declare function getCodeHash(deplBytecode: UnprefixedHexString | Uint8Array): HexString | undefined;
|
|
3
|
+
export declare function getCreationCodeHash(creationBytecode: UnprefixedHexString | Uint8Array): HexString | undefined;
|
|
5
4
|
/**
|
|
6
5
|
* Given a standard solc JSON output `artifact` find the compiler version used
|
|
7
6
|
* to compute the contracts. We do this by walking over all of the bytecodes in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/artifacts/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/artifacts/helpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAuM3E,wBAAgB,WAAW,CAAC,YAAY,EAAE,mBAAmB,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAiBjG;AAED,wBAAgB,mBAAmB,CAC/B,gBAAgB,EAAE,mBAAmB,GAAG,UAAU,GACnD,SAAS,GAAG,SAAS,CAiBvB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAmB1F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,iBAAiB,CAEtE"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getCodeHash = getCodeHash;
|
|
4
|
+
exports.getCreationCodeHash = getCreationCodeHash;
|
|
5
|
+
exports.getArtifactCompilerVersion = getArtifactCompilerVersion;
|
|
6
|
+
exports.isPartialSolcOutput = isPartialSolcOutput;
|
|
4
7
|
const cbor_1 = require("cbor");
|
|
8
|
+
const utils_1 = require("ethereum-cryptography/utils");
|
|
5
9
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
6
10
|
const __1 = require("..");
|
|
7
11
|
function getAllStringsAfterPrefix(hay, prefix, expLen) {
|
|
@@ -18,12 +22,43 @@ function getAllStringsAfterPrefix(hay, prefix, expLen) {
|
|
|
18
22
|
res.push(hay.slice(off + prefix.length, off + prefix.length + expLen));
|
|
19
23
|
}
|
|
20
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Find the last (right-most) index in hay where `needle` appears. If `off` is specified, search before `off` (`off` inclusive).
|
|
27
|
+
* If `needle` is not found, return -1;
|
|
28
|
+
*/
|
|
29
|
+
function lastIndexOfArr(hay, needle, off) {
|
|
30
|
+
(0, solc_typed_ast_1.assert)(needle.length > 0, ``);
|
|
31
|
+
let res = hay.length - 1;
|
|
32
|
+
res = off != undefined ? Math.min(off, res) : res;
|
|
33
|
+
while (res >= 0) {
|
|
34
|
+
res = hay.lastIndexOf(needle[0], res);
|
|
35
|
+
if (res < 0) {
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
if (res + needle.length > hay.length) {
|
|
39
|
+
res--;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
let match = true;
|
|
43
|
+
for (let i = 1; i < needle.length; i++) {
|
|
44
|
+
if (hay[res + i] !== needle[i]) {
|
|
45
|
+
match = false;
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (match) {
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
res--;
|
|
53
|
+
}
|
|
54
|
+
return res;
|
|
55
|
+
}
|
|
21
56
|
function getAllBuffersAfterPrefix(hay, prefix, expLen) {
|
|
22
57
|
const res = [];
|
|
23
58
|
let off = hay.length;
|
|
24
59
|
while (true) {
|
|
25
|
-
off = hay
|
|
26
|
-
if (off
|
|
60
|
+
off = lastIndexOfArr(hay, prefix, off - 1);
|
|
61
|
+
if (off < 0) {
|
|
27
62
|
return res;
|
|
28
63
|
}
|
|
29
64
|
if (off + prefix.length + expLen >= hay.length) {
|
|
@@ -33,11 +68,11 @@ function getAllBuffersAfterPrefix(hay, prefix, expLen) {
|
|
|
33
68
|
}
|
|
34
69
|
}
|
|
35
70
|
const ipfsStrPrefix = "64697066735822";
|
|
36
|
-
const ipfsBufPrefix =
|
|
71
|
+
const ipfsBufPrefix = (0, utils_1.hexToBytes)(ipfsStrPrefix);
|
|
37
72
|
const bzzr0 = "65627a7a72305820";
|
|
38
|
-
const bzzr0BufPrefix =
|
|
73
|
+
const bzzr0BufPrefix = (0, utils_1.hexToBytes)(bzzr0);
|
|
39
74
|
const bzzr1 = "65627a7a72315820";
|
|
40
|
-
const bzzr1BufPrefix =
|
|
75
|
+
const bzzr1BufPrefix = (0, utils_1.hexToBytes)(bzzr1);
|
|
41
76
|
function getBytecodeHashHacky(bytecode) {
|
|
42
77
|
if (typeof bytecode === "string") {
|
|
43
78
|
const ipfsCandidates = new Set(getAllStringsAfterPrefix(bytecode, ipfsStrPrefix, 34));
|
|
@@ -49,12 +84,10 @@ function getBytecodeHashHacky(bytecode) {
|
|
|
49
84
|
if (ipfsCandidates.size === 1) {
|
|
50
85
|
return { ipfs: [...ipfsCandidates][0] };
|
|
51
86
|
}
|
|
52
|
-
|
|
87
|
+
if (bzzr0Candidates.size === 1) {
|
|
53
88
|
return { bzzr0: [...bzzr0Candidates][0] };
|
|
54
89
|
}
|
|
55
|
-
|
|
56
|
-
return { bzzr1: [...bzzr1Candidates][0] };
|
|
57
|
-
}
|
|
90
|
+
return { bzzr1: [...bzzr1Candidates][0] };
|
|
58
91
|
}
|
|
59
92
|
else {
|
|
60
93
|
const ipfsCandidates = new Set(getAllBuffersAfterPrefix(bytecode, ipfsBufPrefix, 34));
|
|
@@ -64,14 +97,12 @@ function getBytecodeHashHacky(bytecode) {
|
|
|
64
97
|
return undefined;
|
|
65
98
|
}
|
|
66
99
|
if (ipfsCandidates.size === 1) {
|
|
67
|
-
return { ipfs: "0x" + [...ipfsCandidates][0]
|
|
100
|
+
return { ipfs: "0x" + (0, utils_1.bytesToHex)([...ipfsCandidates][0]) };
|
|
68
101
|
}
|
|
69
|
-
|
|
70
|
-
return { bzzr0: "0x" + [...bzzr0Candidates][0]
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
return { bzzr1: "0x" + [...bzzr1Candidates][0].toString("hex") };
|
|
102
|
+
if (bzzr0Candidates.size === 1) {
|
|
103
|
+
return { bzzr0: "0x" + (0, utils_1.bytesToHex)([...bzzr0Candidates][0]) };
|
|
74
104
|
}
|
|
105
|
+
return { bzzr1: "0x" + (0, utils_1.bytesToHex)([...bzzr1Candidates][0]) };
|
|
75
106
|
}
|
|
76
107
|
}
|
|
77
108
|
function getDeployedBytecodeMdInfo(deployedBytecode) {
|
|
@@ -84,7 +115,7 @@ function getDeployedBytecodeMdInfo(deployedBytecode) {
|
|
|
84
115
|
rawMd = cbor_1.Decoder.decodeAllSync(mdHex, { encoding: "hex" })[0];
|
|
85
116
|
}
|
|
86
117
|
else {
|
|
87
|
-
const off =
|
|
118
|
+
const off = (0, __1.readInt16Be)(deployedBytecode, deployedBytecode.length - 2);
|
|
88
119
|
rawMd = cbor_1.Decoder.decodeAllSync(deployedBytecode.slice(deployedBytecode.length - 2 - off, deployedBytecode.length - 2), {})[0];
|
|
89
120
|
}
|
|
90
121
|
}
|
|
@@ -124,7 +155,6 @@ function getCodeHash(deplBytecode) {
|
|
|
124
155
|
}
|
|
125
156
|
return undefined;
|
|
126
157
|
}
|
|
127
|
-
exports.getCodeHash = getCodeHash;
|
|
128
158
|
function getCreationCodeHash(creationBytecode) {
|
|
129
159
|
const md = getBytecodeHashHacky(creationBytecode);
|
|
130
160
|
if (md === undefined) {
|
|
@@ -139,7 +169,6 @@ function getCreationCodeHash(creationBytecode) {
|
|
|
139
169
|
}
|
|
140
170
|
return undefined;
|
|
141
171
|
}
|
|
142
|
-
exports.getCreationCodeHash = getCreationCodeHash;
|
|
143
172
|
/**
|
|
144
173
|
* Given a standard solc JSON output `artifact` find the compiler version used
|
|
145
174
|
* to compute the contracts. We do this by walking over all of the bytecodes in
|
|
@@ -158,9 +187,7 @@ function getArtifactCompilerVersion(artifact) {
|
|
|
158
187
|
}
|
|
159
188
|
return res;
|
|
160
189
|
}
|
|
161
|
-
exports.getArtifactCompilerVersion = getArtifactCompilerVersion;
|
|
162
190
|
function isPartialSolcOutput(arg) {
|
|
163
191
|
return arg.hasOwnProperty("contracts") && arg.hasOwnProperty("sources");
|
|
164
192
|
}
|
|
165
|
-
exports.isPartialSolcOutput = isPartialSolcOutput;
|
|
166
193
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/artifacts/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/artifacts/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/debug/abi.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
import { DataLocation as SolDataLocation, FunctionDefinition, InferType, TypeNode, VariableDeclaration } from "solc-typed-ast";
|
|
1
|
+
import { ContractDefinition, FunctionDefinition, InferType, DataLocation as SolDataLocation, TypeName, TypeNode, VariableDeclaration } from "solc-typed-ast";
|
|
3
2
|
import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
|
|
4
3
|
import { DataLocationKind, DataView } from ".";
|
|
5
4
|
export declare function changeToLocation(typ: TypeNode, newLoc: SolDataLocation): TypeNode;
|
|
6
5
|
/**
|
|
7
6
|
* Given a callee AST Node (FunctionDefinition or VariableDeclaration
|
|
8
|
-
*
|
|
7
|
+
* corresponding to a getter), some msg `data`, that lives in location
|
|
9
8
|
* determined by `kind`, a type inference class as well as an `encoderVersion`
|
|
10
9
|
* try and decode the function arguments for that particular callee from the
|
|
11
10
|
* data.
|
|
12
11
|
*/
|
|
13
|
-
export declare function decodeMethodArgs(callee: FunctionDefinition | VariableDeclaration, data:
|
|
12
|
+
export declare function decodeMethodArgs(callee: FunctionDefinition | VariableDeclaration, data: Uint8Array, kind: DataLocationKind.Memory | DataLocationKind.CallData, infer: InferType, encoderVersion: ABIEncoderVersion): Array<[string, any]>;
|
|
13
|
+
export declare function isTypeUnknownContract(t: TypeName | undefined): boolean;
|
|
14
14
|
/**
|
|
15
15
|
* An ABI-decoder implementation that is resilient to failures in some arguments decoding.
|
|
16
16
|
* This function will return partial decoding results. This is needed since the fuzzer may not
|
|
17
17
|
* always produce inputs that decode in their entirety.
|
|
18
18
|
*/
|
|
19
|
-
export declare function buildMsgDataViews(callee: FunctionDefinition | VariableDeclaration, data:
|
|
19
|
+
export declare function buildMsgDataViews(callee: FunctionDefinition | VariableDeclaration, data: Uint8Array, kind: DataLocationKind.Memory | DataLocationKind.CallData, infer: InferType, encoderVersion: ABIEncoderVersion): Array<[string, DataView | undefined]>;
|
|
20
20
|
/**
|
|
21
21
|
* Convert an internal TypeNode to the external TypeNode that would correspond to it
|
|
22
22
|
* after ABI-encoding with encoder version `encoderVersion`. Follows the following rules:
|
|
@@ -32,4 +32,11 @@ export declare function buildMsgDataViews(callee: FunctionDefinition | VariableD
|
|
|
32
32
|
*/
|
|
33
33
|
export declare function toABIEncodedType(type: TypeNode, infer: InferType, encoderVersion: ABIEncoderVersion): TypeNode;
|
|
34
34
|
export declare function isABITypeStaticSized(type: TypeNode): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Given a 4-byte selector, a target contract and an `InferType` object return
|
|
37
|
+
* the ASTNode that corresponds to the target callee. Must be either a
|
|
38
|
+
* `FunctionDefinition`, a `VariableDeclaration` (for public state var getters),
|
|
39
|
+
* or undefined (if we cannot identify it)
|
|
40
|
+
*/
|
|
41
|
+
export declare function findMethodBySelector(selector: Uint8Array | string, contract: ContractDefinition, infer: InferType): FunctionDefinition | VariableDeclaration | undefined;
|
|
35
42
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"AACA,OAAO,EAKH,kBAAkB,EAGlB,kBAAkB,EAClB,SAAS,EAIT,YAAY,IAAI,eAAe,EAK/B,QAAQ,EACR,QAAQ,EAIR,mBAAmB,EAItB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAkB,MAAM,GAAG,CAAC;AAG/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,QAAQ,CAqCjF;AA6CD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,EAChD,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EACzD,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,iBAAiB,GAClC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAsBtB;AAGD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAQtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,EAChD,IAAI,EAAE,UAAU,EAChB,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,CA2CvC;AA6CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,iBAAiB,GAClC,QAAQ,CAyDV;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAkC5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,UAAU,GAAG,MAAM,EAC7B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,SAAS,GACjB,kBAAkB,GAAG,mBAAmB,GAAG,SAAS,CAyBtD"}
|
package/dist/debug/abi.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.changeToLocation = changeToLocation;
|
|
4
|
+
exports.decodeMethodArgs = decodeMethodArgs;
|
|
5
|
+
exports.isTypeUnknownContract = isTypeUnknownContract;
|
|
6
|
+
exports.buildMsgDataViews = buildMsgDataViews;
|
|
7
|
+
exports.toABIEncodedType = toABIEncodedType;
|
|
8
|
+
exports.isABITypeStaticSized = isABITypeStaticSized;
|
|
9
|
+
exports.findMethodBySelector = findMethodBySelector;
|
|
10
|
+
const utils_1 = require("ethereum-cryptography/utils");
|
|
4
11
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
5
12
|
const abi_1 = require("solc-typed-ast/dist/types/abi");
|
|
6
13
|
const _1 = require(".");
|
|
7
|
-
const
|
|
14
|
+
const utils_2 = require("../utils");
|
|
8
15
|
function changeToLocation(typ, newLoc) {
|
|
9
16
|
if (typ instanceof solc_typed_ast_1.PointerType) {
|
|
10
17
|
return new solc_typed_ast_1.PointerType(changeToLocation(typ.to, newLoc), newLoc, typ.kind);
|
|
@@ -30,10 +37,9 @@ function changeToLocation(typ, newLoc) {
|
|
|
30
37
|
}
|
|
31
38
|
throw new Error(`Cannot change location of type ${typ.pp()}`);
|
|
32
39
|
}
|
|
33
|
-
exports.changeToLocation = changeToLocation;
|
|
34
40
|
/**
|
|
35
41
|
* Return the static size that the type `typ` will take in the standard ABI encoding of
|
|
36
|
-
*
|
|
42
|
+
* arguments.
|
|
37
43
|
*/
|
|
38
44
|
function abiStaticTypeSize(typ) {
|
|
39
45
|
if (typ instanceof solc_typed_ast_1.IntType ||
|
|
@@ -64,7 +70,7 @@ function abiStaticTypeSize(typ) {
|
|
|
64
70
|
}
|
|
65
71
|
/**
|
|
66
72
|
* Given a callee AST Node (FunctionDefinition or VariableDeclaration
|
|
67
|
-
*
|
|
73
|
+
* corresponding to a getter), some msg `data`, that lives in location
|
|
68
74
|
* determined by `kind`, a type inference class as well as an `encoderVersion`
|
|
69
75
|
* try and decode the function arguments for that particular callee from the
|
|
70
76
|
* data.
|
|
@@ -85,7 +91,14 @@ function decodeMethodArgs(callee, data, kind, infer, encoderVersion) {
|
|
|
85
91
|
}
|
|
86
92
|
return res;
|
|
87
93
|
}
|
|
88
|
-
|
|
94
|
+
// @todo migrate to solc-typed-ast
|
|
95
|
+
function isTypeUnknownContract(t) {
|
|
96
|
+
return (t instanceof solc_typed_ast_1.UserDefinedTypeName &&
|
|
97
|
+
t.referencedDeclaration < 0 &&
|
|
98
|
+
(t.typeString.startsWith("contract ") ||
|
|
99
|
+
t.typeString.startsWith("interface ") ||
|
|
100
|
+
t.typeString.startsWith("library ")));
|
|
101
|
+
}
|
|
89
102
|
/**
|
|
90
103
|
* An ABI-decoder implementation that is resilient to failures in some arguments decoding.
|
|
91
104
|
* This function will return partial decoding results. This is needed since the fuzzer may not
|
|
@@ -94,15 +107,19 @@ exports.decodeMethodArgs = decodeMethodArgs;
|
|
|
94
107
|
function buildMsgDataViews(callee, data, kind, infer, encoderVersion) {
|
|
95
108
|
const res = [];
|
|
96
109
|
const selector = callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
97
|
-
? (0,
|
|
110
|
+
? (0, utils_2.getFunctionSelector)(callee, infer)
|
|
98
111
|
: infer.signatureHash(callee);
|
|
99
|
-
(0, solc_typed_ast_1.assert)(selector === data.slice(0, 4)
|
|
112
|
+
(0, solc_typed_ast_1.assert)(selector === (0, utils_1.bytesToHex)(data.slice(0, 4)), `Expected selector ${selector} instead got ${data.slice(0, 4)}`);
|
|
100
113
|
const formals = callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
101
114
|
? callee.vParameters.vParameters.map((argDef) => [
|
|
102
115
|
argDef.name,
|
|
103
|
-
|
|
116
|
+
isTypeUnknownContract(argDef.vType)
|
|
117
|
+
? solc_typed_ast_1.types.address
|
|
118
|
+
: infer.variableDeclarationToTypeNode(argDef)
|
|
104
119
|
])
|
|
105
|
-
: infer
|
|
120
|
+
: infer
|
|
121
|
+
.getterArgsAndReturn(callee)[0]
|
|
122
|
+
.map((typ, i) => [`ARG_${i}`, typ]);
|
|
106
123
|
let staticOff = 4;
|
|
107
124
|
const len = data.length;
|
|
108
125
|
for (const [name, originalType] of formals) {
|
|
@@ -115,7 +132,6 @@ function buildMsgDataViews(callee, data, kind, infer, encoderVersion) {
|
|
|
115
132
|
}
|
|
116
133
|
return res;
|
|
117
134
|
}
|
|
118
|
-
exports.buildMsgDataViews = buildMsgDataViews;
|
|
119
135
|
/**
|
|
120
136
|
* Determine if the specified type `typ` is dynamic or not. Dynamic means
|
|
121
137
|
* that if we are trying to read `typ` at location `loc`, in `loc` there should be just a
|
|
@@ -202,7 +218,6 @@ function toABIEncodedType(type, infer, encoderVersion) {
|
|
|
202
218
|
}
|
|
203
219
|
return type;
|
|
204
220
|
}
|
|
205
|
-
exports.toABIEncodedType = toABIEncodedType;
|
|
206
221
|
function isABITypeStaticSized(type) {
|
|
207
222
|
if (type instanceof solc_typed_ast_1.ArrayType) {
|
|
208
223
|
return type.size !== undefined && isABITypeStaticSized(type.elementT);
|
|
@@ -230,5 +245,31 @@ function isABITypeStaticSized(type) {
|
|
|
230
245
|
}
|
|
231
246
|
throw new Error(`NYI isABITypeStaticSized(${type.pp()})`);
|
|
232
247
|
}
|
|
233
|
-
|
|
248
|
+
/**
|
|
249
|
+
* Given a 4-byte selector, a target contract and an `InferType` object return
|
|
250
|
+
* the ASTNode that corresponds to the target callee. Must be either a
|
|
251
|
+
* `FunctionDefinition`, a `VariableDeclaration` (for public state var getters),
|
|
252
|
+
* or undefined (if we cannot identify it)
|
|
253
|
+
*/
|
|
254
|
+
function findMethodBySelector(selector, contract, infer) {
|
|
255
|
+
const strSelector = typeof selector === "string" ? selector : (0, utils_1.bytesToHex)(selector);
|
|
256
|
+
for (const base of contract.vLinearizedBaseContracts) {
|
|
257
|
+
if (!base) {
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
for (const fun of base.vFunctions) {
|
|
261
|
+
const funSel = (0, utils_2.getFunctionSelector)(fun, infer);
|
|
262
|
+
if (funSel == strSelector) {
|
|
263
|
+
return fun;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
for (const v of base.vStateVariables) {
|
|
267
|
+
if (v.visibility === solc_typed_ast_1.StateVariableVisibility.Public &&
|
|
268
|
+
infer.signatureHash(v) == strSelector) {
|
|
269
|
+
return v;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
234
275
|
//# sourceMappingURL=abi.js.map
|
package/dist/debug/abi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":";;AAiCA,4CAqCC;AAoDD,4CA4BC;AAGD,sDAQC;AAOD,8CAiDC;AA0DD,4CA6DC;AAED,oDAkCC;AAQD,oDA6BC;AAzZD,uDAAyD;AACzD,mDA2BwB;AACxB,uDAAkE;AAClE,wBAA+D;AAC/D,oCAA+C;AAE/C,SAAgB,gBAAgB,CAAC,GAAa,EAAE,MAAuB;IACnE,IAAI,GAAG,YAAY,4BAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,4BAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,GAAG,YAAY,0BAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,0BAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,GAAG,YAAY,4BAAW,EAAE,CAAC;QAC7B,IAAA,uBAAM,EACF,MAAM,KAAK,6BAAe,CAAC,OAAO,EAClC,iCAAiC,GAAG,CAAC,EAAE,EAAE,OAAO,MAAM,EAAE,CAC3D,CAAC;QAEF,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,GAAG,YAAY,0BAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,0BAAS,CAChB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAoB,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAe,EAAE,MAAM,CAAC,CAAC,CACxF,CAAC;IACN,CAAC;IAED,IACI,GAAG,YAAY,wBAAO;QACtB,GAAG,YAAY,yBAAQ;QACvB,GAAG,YAAY,4BAAW;QAC1B,GAAG,YAAY,+BAAc;QAC7B,GAAG,YAAY,2BAAU;QACzB,GAAG,YAAY,0BAAS;QACxB,GAAG,YAAY,gCAAe,EAChC,CAAC;QACC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,GAAa;IACpC,IACI,GAAG,YAAY,wBAAO;QACtB,GAAG,YAAY,4BAAW;QAC1B,GAAG,YAAY,+BAAc;QAC7B,GAAG,YAAY,yBAAQ;QACvB,GAAG,YAAY,4BAAW,EAC5B,CAAC;QACC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,GAAG,YAAY,gCAAe,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;QAE3B,IACI,GAAG,YAAY,+BAAc;YAC7B,GAAG,YAAY,mCAAkB;YACjC,GAAG,YAAY,+CAA8B,EAC/C,CAAC;YACC,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,GAAG,YAAY,0BAAS,EAAE,CAAC;QAC3B,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAA,uBAAM,EAAC,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC5B,MAAgD,EAChD,IAAgB,EAChB,IAAyD,EACzD,KAAgB,EAChB,cAAiC;IAEjC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;IAE/E,MAAM,GAAG,GAAyB,EAAE,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;YAC5B,SAAS;QACb,CAAC;QAED,IAAA,uBAAM,EAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,mBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEtF,MAAM,GAAG,GAAG,IAAA,iBAAc,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEtF,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,kCAAkC;AAClC,SAAgB,qBAAqB,CAAC,CAAuB;IACzD,OAAO,CACH,CAAC,YAAY,oCAAmB;QAChC,CAAC,CAAC,qBAAqB,GAAG,CAAC;QAC3B,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC;YACjC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;YACrC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAC3C,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAC7B,MAAgD,EAChD,IAAgB,EAChB,IAAyD,EACzD,KAAgB,EAChB,cAAiC;IAEjC,MAAM,GAAG,GAA0C,EAAE,CAAC;IAEtD,MAAM,QAAQ,GACV,MAAM,YAAY,mCAAkB;QAChC,CAAC,CAAC,IAAA,2BAAmB,EAAC,MAAM,EAAE,KAAK,CAAC;QACpC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtC,IAAA,uBAAM,EACF,QAAQ,KAAK,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACzC,qBAAqB,QAAQ,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAClE,CAAC;IAEF,MAAM,OAAO,GACT,MAAM,YAAY,mCAAkB;QAChC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAA2B,EAAE,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI;YACX,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/B,CAAC,CAAC,sBAAK,CAAC,OAAO;gBACf,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC;SACpD,CAAC;QACJ,CAAC,CAAC,KAAK;aACA,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC9B,GAAG,CAAC,CAAC,GAAa,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;IAEpE,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAExB,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,OAAO,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,GAAG,GACL,SAAS,GAAG,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAErF,SAAS,IAAI,UAAU,CAAC;QAExB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAExE,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,qBAAqB,CAAC,GAAa;IACxC,IACI,GAAG,YAAY,4BAAW;QAC1B,GAAG,YAAY,0BAAS;QACxB,GAAG,YAAY,2BAAU;QACzB,GAAG,YAAY,0BAAS,EAC1B,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0CAA0C;IAC1C,IAAI,GAAG,YAAY,0BAAS,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAA,uBAAM,EAAC,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;YAEzB,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,gBAAgB,CAC5B,IAAc,EACd,KAAgB,EAChB,cAAiC;IAEjC,IAAI,IAAI,YAAY,4BAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,IAAI,YAAY,0BAAS,EAAE,CAAC;QAC5B,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAE/E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,EAAE,CAAC;YAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,IAAI,0BAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,0BAAS,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,IAAI,YAAY,4BAAW,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAE7D,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,4BAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAClF,CAAC;IAED,IAAI,IAAI,YAAY,gCAAe,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,UAAU,YAAY,+CAA8B,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,YAAY,mCAAkB,EAAE,CAAC;YAChD,OAAO,IAAI,4BAAW,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,YAAY,+BAAc,EAAE,CAAC;YAC5C,OAAO,IAAA,8BAAa,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,YAAY,iCAAgB,EAAE,CAAC;YAC9C,IAAA,uBAAM,EACF,cAAc,KAAK,uBAAiB,CAAC,EAAE,EACvC,mEAAmE,CACtE,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAA2B,EAAE,EAAE,CACzE,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAC9C,CAAC;YAEF,OAAO,IAAI,0BAAS,CAChB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CACrF,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAc;IAC/C,IAAI,IAAI,YAAY,0BAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,IAAI,YAAY,4BAAW,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,IAAI,YAAY,0BAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAA,uBAAM,EAAC,GAAG,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,YAAY,2BAAU,IAAI,IAAI,YAAY,0BAAS,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IACI,IAAI,YAAY,wBAAO;QACvB,IAAI,YAAY,4BAAW;QAC3B,IAAI,YAAY,yBAAQ;QACxB,IAAI,YAAY,+BAAc,EAChC,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAChC,QAA6B,EAC7B,QAA4B,EAC5B,KAAgB;IAEhB,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,QAAQ,CAAC,CAAC;IAEnF,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QACnD,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,SAAS;QACb,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,2BAAmB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/C,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;gBACxB,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,IACI,CAAC,CAAC,UAAU,KAAK,wCAAuB,CAAC,MAAM;gBAC/C,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,WAAW,EACvC,CAAC;gBACC,OAAO,CAAC,CAAC;YACb,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
import { PrefixedHexString } from "ethereumjs-util";
|
|
1
|
+
import { PrefixedHexString } from "@ethereumjs/util";
|
|
3
2
|
import { ASTContext, ASTNode, ContractDefinition, FunctionDefinition, InferType, SourceUnit, VariableDeclaration } from "solc-typed-ast";
|
|
4
3
|
import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
|
|
5
4
|
import { DecodedBytecodeSourceMapEntry, PartialCompiledContract, PartialSolcOutput, RawAST } from "..";
|
|
6
5
|
import { HexString } from "../artifacts";
|
|
7
6
|
export interface IArtifactManager {
|
|
8
|
-
getContractFromDeployedBytecode(code: string |
|
|
9
|
-
getContractFromCreationBytecode(code: string |
|
|
7
|
+
getContractFromDeployedBytecode(code: string | Uint8Array): ContractInfo | undefined;
|
|
8
|
+
getContractFromCreationBytecode(code: string | Uint8Array): ContractInfo | undefined;
|
|
10
9
|
getContractFromMDHash(hash: HexString): ContractInfo | undefined;
|
|
11
10
|
artifacts(): ArtifactInfo[];
|
|
12
11
|
contracts(): ContractInfo[];
|
|
13
|
-
getFileById(id: number, code: string |
|
|
12
|
+
getFileById(id: number, code: string | Uint8Array, isCreation: boolean): SourceFileInfo | undefined;
|
|
14
13
|
infer(version: string): InferType;
|
|
15
|
-
findMethod(selector: HexString |
|
|
14
|
+
findMethod(selector: HexString | Uint8Array): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
16
15
|
}
|
|
17
16
|
export interface BytecodeInfo {
|
|
18
17
|
generatedFileMap: Map<number, SourceFileInfo>;
|
|
@@ -69,11 +68,11 @@ export declare class ArtifactManager implements IArtifactManager {
|
|
|
69
68
|
constructor(artifacts: PartialSolcOutput[]);
|
|
70
69
|
artifacts(): ArtifactInfo[];
|
|
71
70
|
getContractFromMDHash(hash: HexString): ContractInfo | undefined;
|
|
72
|
-
getContractFromDeployedBytecode(bytecode: string |
|
|
73
|
-
getContractFromCreationBytecode(creationBytecode: string |
|
|
74
|
-
getFileById(id: number, arg: string |
|
|
71
|
+
getContractFromDeployedBytecode(bytecode: string | Uint8Array): ContractInfo | undefined;
|
|
72
|
+
getContractFromCreationBytecode(creationBytecode: string | Uint8Array): ContractInfo | undefined;
|
|
73
|
+
getFileById(id: number, arg: string | Uint8Array | ContractInfo, isCreation: boolean): SourceFileInfo | undefined;
|
|
75
74
|
contracts(): ContractInfo[];
|
|
76
75
|
infer(version: string): InferType;
|
|
77
|
-
findMethod(selector: HexString |
|
|
76
|
+
findMethod(selector: HexString | Uint8Array): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
78
77
|
}
|
|
79
78
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArtifactManager = exports.
|
|
3
|
+
exports.ArtifactManager = exports.SourceFileType = void 0;
|
|
4
|
+
exports.getOffsetSrc = getOffsetSrc;
|
|
5
|
+
const utils_1 = require("ethereum-cryptography/utils");
|
|
4
6
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
5
7
|
const abi_1 = require("solc-typed-ast/dist/types/abi");
|
|
6
8
|
const __1 = require("..");
|
|
@@ -20,7 +22,7 @@ var SourceFileType;
|
|
|
20
22
|
*/
|
|
21
23
|
function buildOffsetToIndexMap(bytecode) {
|
|
22
24
|
if (typeof bytecode === "string") {
|
|
23
|
-
bytecode =
|
|
25
|
+
bytecode = (0, utils_1.hexToBytes)(bytecode);
|
|
24
26
|
}
|
|
25
27
|
const res = new Map();
|
|
26
28
|
for (let i = 0, off = 0; off < bytecode.length; i++) {
|
|
@@ -36,7 +38,6 @@ function getOffsetSrc(off, bytecode) {
|
|
|
36
38
|
(0, solc_typed_ast_1.assert)(idx >= 0 && idx < bytecode.srcMap.length, `Instruction index ${idx} outside of source map (0-${bytecode.srcMap.length})`);
|
|
37
39
|
return bytecode.srcMap[idx];
|
|
38
40
|
}
|
|
39
|
-
exports.getOffsetSrc = getOffsetSrc;
|
|
40
41
|
/**
|
|
41
42
|
* ArtifactManager contains a set of solc standard JSON compiler artifacts, and allows for quick
|
|
42
43
|
* lookup from creation or deployed bytecode to the actual compiler artifact.
|
|
@@ -168,7 +169,7 @@ class ArtifactManager {
|
|
|
168
169
|
}
|
|
169
170
|
getFileById(id, arg, isCreation) {
|
|
170
171
|
let contractInfo;
|
|
171
|
-
if (typeof arg === "string" || arg instanceof
|
|
172
|
+
if (typeof arg === "string" || arg instanceof Uint8Array) {
|
|
172
173
|
contractInfo = isCreation
|
|
173
174
|
? this.getContractFromCreationBytecode(arg)
|
|
174
175
|
: this.getContractFromDeployedBytecode(arg);
|
|
@@ -198,8 +199,8 @@ class ArtifactManager {
|
|
|
198
199
|
return this._inferCache.get(version);
|
|
199
200
|
}
|
|
200
201
|
findMethod(selector) {
|
|
201
|
-
if (selector instanceof
|
|
202
|
-
selector =
|
|
202
|
+
if (selector instanceof Uint8Array) {
|
|
203
|
+
selector = (0, utils_1.bytesToHex)(selector);
|
|
203
204
|
}
|
|
204
205
|
for (const contract of this._contracts) {
|
|
205
206
|
if (!contract.ast) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,EAIT,SAAS,EAOT,QAAQ,EAGX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACH,gBAAgB,EAKnB,MAAM,IAAI,CAAC;AACZ,OAAO,EAEH,MAAM,EAKT,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,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"}
|