sol-dbg 0.6.2 → 0.6.4
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/solc.d.ts +14 -0
- package/dist/artifacts/solc.d.ts.map +1 -1
- package/dist/debug/{artifact_manager.d.ts → artifact_manager/artifact_manager.d.ts} +10 -8
- package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -0
- package/dist/debug/{artifact_manager.js → artifact_manager/artifact_manager.js} +19 -2
- package/dist/debug/artifact_manager/artifact_manager.js.map +1 -0
- package/dist/debug/artifact_manager/bytecode_templates.d.ts +8 -0
- package/dist/debug/artifact_manager/bytecode_templates.d.ts.map +1 -0
- package/dist/debug/artifact_manager/bytecode_templates.js +52 -0
- package/dist/debug/artifact_manager/bytecode_templates.js.map +1 -0
- package/dist/debug/artifact_manager/index.d.ts +2 -0
- package/dist/debug/artifact_manager/index.d.ts.map +1 -0
- package/dist/debug/artifact_manager/index.js +18 -0
- package/dist/debug/artifact_manager/index.js.map +1 -0
- package/dist/debug/layout.d.ts +7 -1
- package/dist/debug/layout.d.ts.map +1 -1
- package/dist/debug/layout.js +20 -0
- package/dist/debug/layout.js.map +1 -1
- package/dist/debug/tracers/base_tracer.d.ts +23 -3
- package/dist/debug/tracers/base_tracer.d.ts.map +1 -1
- package/dist/debug/tracers/base_tracer.js +29 -4
- package/dist/debug/tracers/base_tracer.js.map +1 -1
- package/dist/debug/tracers/sol_debugger.d.ts +3 -3
- package/dist/debug/tracers/sol_debugger.d.ts.map +1 -1
- package/dist/debug/tracers/sol_debugger.js +4 -2
- package/dist/debug/tracers/sol_debugger.js.map +1 -1
- package/dist/debug/tracers/storage_decode_tracer.d.ts +24 -0
- package/dist/debug/tracers/storage_decode_tracer.d.ts.map +1 -0
- package/dist/debug/tracers/storage_decode_tracer.js +47 -0
- package/dist/debug/tracers/storage_decode_tracer.js.map +1 -0
- package/dist/debug/tracers/support_tracer.d.ts +3 -3
- package/dist/debug/tracers/support_tracer.d.ts.map +1 -1
- package/dist/debug/tracers/support_tracer.js +2 -2
- package/dist/debug/tracers/support_tracer.js.map +1 -1
- package/dist/debug/tracers/transformers/contract_lifetime.js +1 -1
- package/dist/debug/tracers/transformers/contract_lifetime.js.map +1 -1
- package/dist/debug/types.d.ts +6 -0
- package/dist/debug/types.d.ts.map +1 -1
- package/dist/utils/misc.d.ts +1 -0
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +13 -0
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/test_runner.d.ts +13 -45
- package/dist/utils/test_runner.d.ts.map +1 -1
- package/dist/utils/test_runner.js +37 -21
- package/dist/utils/test_runner.js.map +1 -1
- package/package.json +1 -1
- package/dist/debug/artifact_manager.d.ts.map +0 -1
- package/dist/debug/artifact_manager.js.map +0 -1
package/dist/artifacts/solc.d.ts
CHANGED
|
@@ -20,9 +20,23 @@ export interface SourceDescription {
|
|
|
20
20
|
name?: string;
|
|
21
21
|
contents?: string;
|
|
22
22
|
}
|
|
23
|
+
export type RangeList = Array<{
|
|
24
|
+
start: number;
|
|
25
|
+
length: number;
|
|
26
|
+
}>;
|
|
27
|
+
export interface LinkReferences {
|
|
28
|
+
[fileName: string]: {
|
|
29
|
+
[contractName: string]: RangeList;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface ImmutableReferences {
|
|
33
|
+
[number: string | number]: RangeList;
|
|
34
|
+
}
|
|
23
35
|
export interface PartialBytecodeDescription {
|
|
24
36
|
object: UnprefixedHexString;
|
|
25
37
|
sourceMap: string;
|
|
38
|
+
linkReferences?: LinkReferences;
|
|
39
|
+
immutableReferences?: ImmutableReferences;
|
|
26
40
|
generatedSources?: SourceDescription[];
|
|
27
41
|
}
|
|
28
42
|
export interface PartialCompiledContract {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solc.d.ts","sourceRoot":"","sources":["../../src/artifacts/solc.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC;AAEzB;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACpC,GAAG,EAAE;QACD,QAAQ,EAAE,0BAA0B,CAAC;QACrC,gBAAgB,EAAE,0BAA0B,CAAC;KAChD,CAAC;CACL;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAC;KACzC,CAAC;IAEF,SAAS,EAAE;QACP,CAAC,QAAQ,EAAE,MAAM,GAAG;YAChB,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,CAAC;SACnD,CAAC;KACL,CAAC;CACL"}
|
|
1
|
+
{"version":3,"file":"solc.d.ts","sourceRoot":"","sources":["../../src/artifacts/solc.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,MAAM,GAAG,GAAG,CAAC;AAEzB;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC3B,CAAC,QAAQ,EAAE,MAAM,GAAG;QAChB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAChC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,0BAA0B;IACvC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACpC,GAAG,EAAE;QACD,QAAQ,EAAE,0BAA0B,CAAC;QACrC,gBAAgB,EAAE,0BAA0B,CAAC;KAChD,CAAC;CACL;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAC;KACzC,CAAC;IAEF,SAAS,EAAE;QACP,CAAC,QAAQ,EAAE,MAAM,GAAG;YAChB,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,CAAC;SACnD,CAAC;KACL,CAAC;CACL"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { PrefixedHexString } from "@ethereumjs/util";
|
|
2
2
|
import { ASTContext, ASTNode, ContractDefinition, FunctionDefinition, InferType, SourceUnit, VariableDeclaration } from "solc-typed-ast";
|
|
3
3
|
import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
|
|
4
|
-
import { DecodedBytecodeSourceMapEntry, PartialCompiledContract, PartialSolcOutput, RawAST } from "
|
|
5
|
-
import { HexString } from "
|
|
4
|
+
import { DecodedBytecodeSourceMapEntry, PartialCompiledContract, PartialSolcOutput, RawAST } from "../..";
|
|
5
|
+
import { HexString } from "../../artifacts";
|
|
6
6
|
export interface IArtifactManager {
|
|
7
|
-
getContractFromDeployedBytecode(code:
|
|
8
|
-
getContractFromCreationBytecode(code:
|
|
7
|
+
getContractFromDeployedBytecode(code: Uint8Array): ContractInfo | undefined;
|
|
8
|
+
getContractFromCreationBytecode(code: Uint8Array): ContractInfo | undefined;
|
|
9
9
|
getContractFromMDHash(hash: HexString): ContractInfo | undefined;
|
|
10
10
|
artifacts(): ArtifactInfo[];
|
|
11
11
|
contracts(): ContractInfo[];
|
|
12
|
-
getFileById(id: number, code:
|
|
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
15
|
}
|
|
@@ -59,6 +59,8 @@ export declare class ArtifactManager implements IArtifactManager {
|
|
|
59
59
|
private _contracts;
|
|
60
60
|
private _mdHashToContractInfo;
|
|
61
61
|
private _inferCache;
|
|
62
|
+
private _creationBytecodeTemplates;
|
|
63
|
+
private _deployedBytecodeTemplates;
|
|
62
64
|
/**
|
|
63
65
|
* Helper to pick a canonical ABI encode version for a set of units.
|
|
64
66
|
* For now just pick the highest version among the files
|
|
@@ -68,9 +70,9 @@ export declare class ArtifactManager implements IArtifactManager {
|
|
|
68
70
|
constructor(artifacts: PartialSolcOutput[]);
|
|
69
71
|
artifacts(): ArtifactInfo[];
|
|
70
72
|
getContractFromMDHash(hash: HexString): ContractInfo | undefined;
|
|
71
|
-
getContractFromDeployedBytecode(bytecode:
|
|
72
|
-
getContractFromCreationBytecode(creationBytecode:
|
|
73
|
-
getFileById(id: number, arg:
|
|
73
|
+
getContractFromDeployedBytecode(bytecode: Uint8Array): ContractInfo | undefined;
|
|
74
|
+
getContractFromCreationBytecode(creationBytecode: Uint8Array): ContractInfo | undefined;
|
|
75
|
+
getFileById(id: number, arg: Uint8Array | ContractInfo, isCreation: boolean): SourceFileInfo | undefined;
|
|
74
76
|
contracts(): ContractInfo[];
|
|
75
77
|
infer(version: string): InferType;
|
|
76
78
|
findMethod(selector: HexString | Uint8Array): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../../src/debug/artifact_manager/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,9 @@ exports.getOffsetSrc = getOffsetSrc;
|
|
|
5
5
|
const utils_1 = require("ethereum-cryptography/utils");
|
|
6
6
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
7
7
|
const abi_1 = require("solc-typed-ast/dist/types/abi");
|
|
8
|
-
const __1 = require("
|
|
9
|
-
const opcodes_1 = require("
|
|
8
|
+
const __1 = require("../..");
|
|
9
|
+
const opcodes_1 = require("../opcodes");
|
|
10
|
+
const bytecode_templates_1 = require("./bytecode_templates");
|
|
10
11
|
var SourceFileType;
|
|
11
12
|
(function (SourceFileType) {
|
|
12
13
|
SourceFileType["Solidity"] = "solidity";
|
|
@@ -60,6 +61,8 @@ class ArtifactManager {
|
|
|
60
61
|
this._artifacts = [];
|
|
61
62
|
this._contracts = [];
|
|
62
63
|
this._mdHashToContractInfo = new Map();
|
|
64
|
+
this._creationBytecodeTemplates = [];
|
|
65
|
+
this._deployedBytecodeTemplates = [];
|
|
63
66
|
for (const artifact of artifacts) {
|
|
64
67
|
const reader = new solc_typed_ast_1.ASTReader();
|
|
65
68
|
const compilerVersion = (0, __1.getArtifactCompilerVersion)(artifact);
|
|
@@ -143,6 +146,8 @@ class ArtifactManager {
|
|
|
143
146
|
};
|
|
144
147
|
this._contracts.push(contractInfo);
|
|
145
148
|
this._mdHashToContractInfo.set(hash, contractInfo);
|
|
149
|
+
this._creationBytecodeTemplates.push((0, bytecode_templates_1.makeTemplate)(contractArtifact.evm.bytecode));
|
|
150
|
+
this._deployedBytecodeTemplates.push((0, bytecode_templates_1.makeTemplate)(contractArtifact.evm.deployedBytecode));
|
|
146
151
|
}
|
|
147
152
|
}
|
|
148
153
|
}
|
|
@@ -158,6 +163,12 @@ class ArtifactManager {
|
|
|
158
163
|
if (hash) {
|
|
159
164
|
return this._mdHashToContractInfo.get(hash);
|
|
160
165
|
}
|
|
166
|
+
for (let i = 0; i < this._deployedBytecodeTemplates.length; i++) {
|
|
167
|
+
const templ = this._deployedBytecodeTemplates[i];
|
|
168
|
+
if ((0, bytecode_templates_1.matchesTemplate)(bytecode, templ)) {
|
|
169
|
+
return this._contracts[i];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
161
172
|
return undefined;
|
|
162
173
|
}
|
|
163
174
|
getContractFromCreationBytecode(creationBytecode) {
|
|
@@ -165,6 +176,12 @@ class ArtifactManager {
|
|
|
165
176
|
if (hash) {
|
|
166
177
|
return this._mdHashToContractInfo.get(hash);
|
|
167
178
|
}
|
|
179
|
+
for (let i = 0; i < this._creationBytecodeTemplates.length; i++) {
|
|
180
|
+
const templ = this._creationBytecodeTemplates[i];
|
|
181
|
+
if ((0, bytecode_templates_1.matchesTemplate)(creationBytecode, templ)) {
|
|
182
|
+
return this._contracts[i];
|
|
183
|
+
}
|
|
184
|
+
}
|
|
168
185
|
return undefined;
|
|
169
186
|
}
|
|
170
187
|
getFileById(id, arg, isCreation) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../../src/debug/artifact_manager/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PartialBytecodeDescription } from "../../artifacts";
|
|
2
|
+
export interface BytecodeTemplate {
|
|
3
|
+
object: Uint8Array;
|
|
4
|
+
skipRanges: Array<[number, number]>;
|
|
5
|
+
}
|
|
6
|
+
export declare function makeTemplate(artifact: PartialBytecodeDescription): BytecodeTemplate;
|
|
7
|
+
export declare function matchesTemplate(bytecode: Uint8Array, template: BytecodeTemplate): boolean;
|
|
8
|
+
//# sourceMappingURL=bytecode_templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytecode_templates.d.ts","sourceRoot":"","sources":["../../../src/debug/artifact_manager/bytecode_templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAa,MAAM,iBAAiB,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACvC;AAMD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,0BAA0B,GAAG,gBAAgB,CAuBnF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CA2BzF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeTemplate = makeTemplate;
|
|
4
|
+
exports.matchesTemplate = matchesTemplate;
|
|
5
|
+
const util_1 = require("@ethereumjs/util");
|
|
6
|
+
function makeSkipRanges(rawList) {
|
|
7
|
+
return rawList.map((raw) => [raw.start, raw.start + raw.length]);
|
|
8
|
+
}
|
|
9
|
+
function makeTemplate(artifact) {
|
|
10
|
+
const skipRanges = [];
|
|
11
|
+
if (artifact.linkReferences) {
|
|
12
|
+
for (const obj of Object.values(artifact.linkReferences)) {
|
|
13
|
+
for (const ranges of Object.values(obj)) {
|
|
14
|
+
skipRanges.push(...makeSkipRanges(ranges));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (artifact.immutableReferences) {
|
|
19
|
+
for (const ranges of Object.values(artifact.immutableReferences)) {
|
|
20
|
+
skipRanges.push(...makeSkipRanges(ranges));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
skipRanges.sort();
|
|
24
|
+
return {
|
|
25
|
+
object: (0, util_1.hexToBytes)("0x" + artifact.object),
|
|
26
|
+
skipRanges
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function matchesTemplate(bytecode, template) {
|
|
30
|
+
if (bytecode.length !== template.object.length) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
let curIdx = 0;
|
|
34
|
+
let rangeIdx = 0;
|
|
35
|
+
while (curIdx < template.object.length) {
|
|
36
|
+
let nextIdx;
|
|
37
|
+
let compEnd;
|
|
38
|
+
if (rangeIdx < template.skipRanges.length) {
|
|
39
|
+
[compEnd, nextIdx] = template.skipRanges[rangeIdx];
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
compEnd = nextIdx = template.object.length;
|
|
43
|
+
}
|
|
44
|
+
if (!(0, util_1.equalsBytes)(bytecode.slice(curIdx, compEnd), template.object.slice(curIdx, compEnd))) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
curIdx = nextIdx;
|
|
48
|
+
rangeIdx++;
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=bytecode_templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytecode_templates.js","sourceRoot":"","sources":["../../../src/debug/artifact_manager/bytecode_templates.ts"],"names":[],"mappings":";;AAYA,oCAuBC;AAED,0CA2BC;AAhED,2CAA2D;AAQ3D,SAAS,cAAc,CAAC,OAAkB;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAgB,YAAY,CAAC,QAAoC;IAC7D,MAAM,UAAU,GAA4B,EAAE,CAAC;IAE/C,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAC/B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/D,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAI,EAAE,CAAC;IAElB,OAAO;QACH,MAAM,EAAE,IAAA,iBAAU,EAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC1C,UAAU;KACb,CAAC;AACN,CAAC;AAED,SAAgB,eAAe,CAAC,QAAoB,EAAE,QAA0B;IAC5E,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,OAAe,CAAC;QACpB,IAAI,OAAe,CAAC;QAEpB,IAAI,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxC,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAA,kBAAW,EAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,GAAG,OAAO,CAAC;QACjB,QAAQ,EAAE,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/debug/artifact_manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./artifact_manager"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/debug/artifact_manager/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
|
package/dist/debug/layout.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import { EVMStateManagerInterface } from "@ethereumjs/common";
|
|
2
|
+
import { Address } from "@ethereumjs/util";
|
|
1
3
|
import { ContractDefinition, InferType } from "solc-typed-ast";
|
|
2
4
|
import { IArtifactManager } from "./artifact_manager";
|
|
3
|
-
import { MapKeys } from "./tracers";
|
|
5
|
+
import { KeccakPreimageMap, MapKeys } from "./tracers";
|
|
4
6
|
import { Storage } from "./types";
|
|
5
7
|
export interface ContractSolidityState {
|
|
6
8
|
[key: string]: any;
|
|
7
9
|
}
|
|
10
|
+
export type ContractStates = {
|
|
11
|
+
[addres: string]: ContractSolidityState;
|
|
12
|
+
};
|
|
13
|
+
export declare function decodeContractStates(artifactManager: IArtifactManager, contracts: Iterable<Address>, state: EVMStateManagerInterface, preimages: KeccakPreimageMap): Promise<ContractStates>;
|
|
8
14
|
export declare function decodeContractState(artifactManager: IArtifactManager, infer: InferType, contract: ContractDefinition, storage: Storage, mapKeys?: MapKeys): ContractSolidityState | undefined;
|
|
9
15
|
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,kBAAkB,EAClB,SAAS,EAKZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAEH,kBAAkB,EAClB,SAAS,EAKZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAA0B,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAoB,OAAO,EAAmB,MAAM,SAAS,CAAC;AAErE,MAAM,WAAW,qBAAqB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAAA;CAAE,CAAC;AAMzE,wBAAsB,oBAAoB,CACtC,eAAe,EAAE,gBAAgB,EACjC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EAC5B,KAAK,EAAE,wBAAwB,EAC/B,SAAS,EAAE,iBAAiB,GAC7B,OAAO,CAAC,cAAc,CAAC,CA6BzB;AAED,wBAAgB,mBAAmB,CAC/B,eAAe,EAAE,gBAAgB,EACjC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,GAClB,qBAAqB,GAAG,SAAS,CAqFnC"}
|
package/dist/debug/layout.js
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeContractStates = decodeContractStates;
|
|
3
4
|
exports.decodeContractState = decodeContractState;
|
|
4
5
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
5
6
|
const decoding_1 = require("./decoding");
|
|
7
|
+
const tracers_1 = require("./tracers");
|
|
6
8
|
const types_1 = require("./types");
|
|
7
9
|
function isTypeStringStatic32Bytes(t) {
|
|
8
10
|
return t.endsWith("[]") || t.includes("mapping(");
|
|
9
11
|
}
|
|
12
|
+
async function decodeContractStates(artifactManager, contracts, state, preimages) {
|
|
13
|
+
const res = {};
|
|
14
|
+
const mapKeys = (0, tracers_1.getMapKeys)(preimages);
|
|
15
|
+
for (const addr of contracts) {
|
|
16
|
+
const code = await state.getContractCode(addr);
|
|
17
|
+
const info = artifactManager.getContractFromDeployedBytecode(code);
|
|
18
|
+
if (!info || !info.ast) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const infer = artifactManager.infer(info.artifact.compilerVersion);
|
|
22
|
+
const storage = await (0, tracers_1.getStorage)(state, addr);
|
|
23
|
+
const contractState = decodeContractState(artifactManager, infer, info.ast, storage, mapKeys);
|
|
24
|
+
if (contractState) {
|
|
25
|
+
res[addr.toString()] = contractState;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return res;
|
|
29
|
+
}
|
|
10
30
|
function decodeContractState(artifactManager, infer, contract, storage, mapKeys) {
|
|
11
31
|
const res = {};
|
|
12
32
|
let loc = {
|
package/dist/debug/layout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/debug/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,16 @@ export interface TracerOpts {
|
|
|
11
11
|
export interface FoundryTxResult extends RunTxResult {
|
|
12
12
|
failCalled: boolean;
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Base class for all trace processors. You can think of trace processing as a combination
|
|
16
|
+
* of a map operation from `InterpreterStep` -> `TraceT`, along with a reduce operation
|
|
17
|
+
* from `(TraceT, CtxT) -> CtxT`. All the map functions are stored in `transformers/` to allow
|
|
18
|
+
* for reusability between different tracers.
|
|
19
|
+
*
|
|
20
|
+
* There is yet no formal place for reducers to go to. Check out `storage_decode_tracer.ts` for an example
|
|
21
|
+
* of a reducer that accumulates live contracts and keccak preimages at each step.
|
|
22
|
+
*/
|
|
23
|
+
export declare abstract class BaseSolTxTracer<TraceT, CtxT> {
|
|
15
24
|
artifactManager: IArtifactManager;
|
|
16
25
|
protected readonly strict: boolean;
|
|
17
26
|
protected readonly foundryCheatcodes: boolean;
|
|
@@ -26,8 +35,19 @@ export declare abstract class BaseSolTxTracer<State> {
|
|
|
26
35
|
*/
|
|
27
36
|
static releaseVM(vm: VM): void;
|
|
28
37
|
static createVm(stateManager: EVMStateManagerInterface | undefined, foundryCheatcodes: boolean): Promise<VM>;
|
|
29
|
-
abstract processRawTraceStep(vm: VM, step: InterpreterStep, trace:
|
|
38
|
+
abstract processRawTraceStep(vm: VM, step: InterpreterStep, trace: TraceT[], tx: TypedTransaction, ctx: CtxT): Promise<[TraceT, CtxT]>;
|
|
39
|
+
/**
|
|
40
|
+
* Run a TX with the specified "transformers" returning a quadruple including:
|
|
41
|
+
*
|
|
42
|
+
* 1. An enriched trace
|
|
43
|
+
* 2. The TX result (with added info for Foundry TX)
|
|
44
|
+
* 3. The StateManager at the end of the TX
|
|
45
|
+
* 4. The final (reduced) context `CtxT`
|
|
46
|
+
*/
|
|
30
47
|
debugTx(tx: TypedTransaction, block: Block | undefined, // TODO: Make block required and add to processRawTraceStep
|
|
31
|
-
stateBefore: EVMStateManagerInterface): Promise<[
|
|
48
|
+
stateBefore: EVMStateManagerInterface, ctx: CtxT): Promise<[TraceT[], FoundryTxResult, EVMStateManagerInterface, CtxT]>;
|
|
49
|
+
}
|
|
50
|
+
export declare abstract class MapOnlyTracer<TraceT> extends BaseSolTxTracer<TraceT, null> {
|
|
51
|
+
debugTx(tx: TypedTransaction, block: Block | undefined, stateBefore: EVMStateManagerInterface): Promise<[TraceT[], FoundryTxResult, EVMStateManagerInterface, null]>;
|
|
32
52
|
}
|
|
33
53
|
//# sourceMappingURL=base_tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_tracer.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAiB,wBAAwB,EAAY,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAwB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAChD,UAAU,EAAE,OAAO,CAAC;CACvB;AAQD,8BAAsB,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"base_tracer.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAiB,wBAAwB,EAAY,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAwB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAUvD,MAAM,WAAW,UAAU;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAChD,UAAU,EAAE,OAAO,CAAC;CACvB;AAQD;;;;;;;;GAQG;AACH,8BAAsB,eAAe,CAAC,MAAM,EAAE,IAAI;IAC9C,eAAe,EAAG,gBAAgB,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAElC,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,UAAU;mBAgB3C,MAAM;IA8B3B;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI;WAUjB,QAAQ,CACjB,YAAY,EAAE,wBAAwB,GAAG,SAAS,EAClD,iBAAiB,EAAE,OAAO,GAC3B,OAAO,CAAC,EAAE,CAAC;IA0Bd,QAAQ,CAAC,mBAAmB,CACxB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,MAAM,EAAE,EACf,EAAE,EAAE,gBAAgB,EACpB,GAAG,EAAE,IAAI,GACV,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1B;;;;;;;OAOG;IACG,OAAO,CACT,EAAE,EAAE,gBAAgB,EACpB,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,2DAA2D;IACrF,WAAW,EAAE,wBAAwB,EACrC,GAAG,EAAE,IAAI,GACV,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAC;CA2C1E;AAED,8BAAsB,aAAa,CAAC,MAAM,CAAE,SAAQ,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;IACvE,OAAO,CACT,EAAE,EAAE,gBAAgB,EACpB,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,WAAW,EAAE,wBAAwB,GACtC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAC;CAG1E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseSolTxTracer = void 0;
|
|
3
|
+
exports.MapOnlyTracer = exports.BaseSolTxTracer = void 0;
|
|
4
4
|
const blockchain_1 = require("@ethereumjs/blockchain");
|
|
5
5
|
const common_1 = require("@ethereumjs/common");
|
|
6
6
|
const evm_1 = require("@ethereumjs/evm");
|
|
@@ -14,6 +14,15 @@ const opcode_interposing_1 = require("../opcode_interposing");
|
|
|
14
14
|
* global listener map for foundry cheatcodes.
|
|
15
15
|
*/
|
|
16
16
|
const vmToEVMMap = new Map();
|
|
17
|
+
/**
|
|
18
|
+
* Base class for all trace processors. You can think of trace processing as a combination
|
|
19
|
+
* of a map operation from `InterpreterStep` -> `TraceT`, along with a reduce operation
|
|
20
|
+
* from `(TraceT, CtxT) -> CtxT`. All the map functions are stored in `transformers/` to allow
|
|
21
|
+
* for reusability between different tracers.
|
|
22
|
+
*
|
|
23
|
+
* There is yet no formal place for reducers to go to. Check out `storage_decode_tracer.ts` for an example
|
|
24
|
+
* of a reducer that accumulates live contracts and keccak preimages at each step.
|
|
25
|
+
*/
|
|
17
26
|
class BaseSolTxTracer {
|
|
18
27
|
constructor(artifactManager, opts) {
|
|
19
28
|
this.artifactManager = artifactManager;
|
|
@@ -83,13 +92,22 @@ class BaseSolTxTracer {
|
|
|
83
92
|
vmToEVMMap.set(vm, evm);
|
|
84
93
|
return vm;
|
|
85
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Run a TX with the specified "transformers" returning a quadruple including:
|
|
97
|
+
*
|
|
98
|
+
* 1. An enriched trace
|
|
99
|
+
* 2. The TX result (with added info for Foundry TX)
|
|
100
|
+
* 3. The StateManager at the end of the TX
|
|
101
|
+
* 4. The final (reduced) context `CtxT`
|
|
102
|
+
*/
|
|
86
103
|
async debugTx(tx, block, // TODO: Make block required and add to processRawTraceStep
|
|
87
|
-
stateBefore) {
|
|
104
|
+
stateBefore, ctx) {
|
|
88
105
|
const vm = await BaseSolTxTracer.createVm(stateBefore.shallowCopy(true), this.foundryCheatcodes);
|
|
89
106
|
const trace = [];
|
|
90
107
|
(0, solc_typed_ast_1.assert)(vm.evm.events !== undefined, "Unable to access EVM events at this point");
|
|
91
108
|
vm.evm.events.on("step", async (step, next) => {
|
|
92
|
-
const curStep = await this.processRawTraceStep(vm, step, trace, tx);
|
|
109
|
+
const [curStep, newCtx] = await this.processRawTraceStep(vm, step, trace, tx, ctx);
|
|
110
|
+
ctx = newCtx;
|
|
93
111
|
trace.push(curStep);
|
|
94
112
|
next();
|
|
95
113
|
});
|
|
@@ -110,9 +128,16 @@ class BaseSolTxTracer {
|
|
|
110
128
|
...txRes,
|
|
111
129
|
failCalled: foundryFailCalled
|
|
112
130
|
},
|
|
113
|
-
stateAfter
|
|
131
|
+
stateAfter,
|
|
132
|
+
ctx
|
|
114
133
|
];
|
|
115
134
|
}
|
|
116
135
|
}
|
|
117
136
|
exports.BaseSolTxTracer = BaseSolTxTracer;
|
|
137
|
+
class MapOnlyTracer extends BaseSolTxTracer {
|
|
138
|
+
async debugTx(tx, block, stateBefore) {
|
|
139
|
+
return super.debugTx(tx, block, stateBefore, null);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.MapOnlyTracer = MapOnlyTracer;
|
|
118
143
|
//# sourceMappingURL=base_tracer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"base_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/base_tracer.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AACpD,+CAAuF;AACvF,yCAAwE;AACxE,2DAA+D;AAE/D,uCAAiD;AACjD,mDAAwC;AAExC,8DAK+B;AAC/B,8DAA6D;AAY7D;;;GAGG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAW,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAsB,eAAe;IAKjC,YAAY,eAAiC,EAAE,IAAiB;QAC5D,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,IAAI,EAAE,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAEpE,IAAI,CAAC,iBAAiB;gBAClB,IAAI,CAAC,iBAAiB,KAAK,SAAS;oBAChC,CAAC,CAAC,IAAI,CAAC,iBAAiB;oBACxB,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAa,EAAE,iBAA0B;QACjE,MAAM,MAAM,GAAG,MAAM,SAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,IAAA,mDAA8B,GAAE,CAAC;QAElE,MAAM,QAAQ,GAAY;YACtB,GAAG,IAAI;YACP,aAAa,EAAE;gBACX,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,GAAG,IAAA,yCAAoB,EAAC,OAAO,EAAE,UAAU,CAAC;aAC/C;YACD,iBAAiB,EAAE;gBACf,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD;oBACI,OAAO,EAAE,6CAAwB;oBACjC,QAAQ,EAAE,UAAU;iBACvB;aACJ;SACJ,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,SAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,kCAAa,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,EAAM;QACnB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE/B,IAAI,GAAG,EAAE,CAAC;YACN,kCAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CACjB,YAAkD,EAClD,iBAA0B;QAE1B,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,KAAK,EAAE,cAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,iBAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,MAAM,UAAU,GAAG,MAAM,uBAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAEvD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,YAAY,GAAG,IAAI,kCAAmB,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,CACpC,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,0BAA0B,EAAE,IAAI,EAAE,EACtE,iBAAiB,CACpB,CAAC;QAEF,MAAM,EAAE,GAAG,MAAM,OAAE,CAAC,MAAM,CAAC;YACvB,MAAM;YACN,UAAU;YACV,YAAY;YACZ,GAAG;YACH,mBAAmB,EAAE,IAAI;SAC5B,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAExB,OAAO,EAAE,CAAC;IACd,CAAC;IAUD;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CACT,EAAoB,EACpB,KAAwB,EAAE,2DAA2D;IACrF,WAAqC,EACrC,GAAS;QAET,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,QAAQ,CACrC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAC7B,IAAI,CAAC,iBAAiB,CACzB,CAAC;QAEF,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAA,uBAAM,EAAC,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,2CAA2C,CAAC,CAAC;QAEjF,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAqB,EAAE,IAAS,EAAE,EAAE;YAChE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACnF,GAAG,GAAG,MAAM,CAAC;YAEb,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpB,IAAI,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC;YACzB,EAAE;YACF,KAAK;YACL,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,2BAA2B,EAAE,IAAI;SACpC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAA,kCAAa,EAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,iBAAiB,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QACnF,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC;QAEnC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE9B,OAAO;YACH,KAAK;YACL;gBACI,GAAG,KAAK;gBACR,UAAU,EAAE,iBAAiB;aAChC;YACD,UAAU;YACV,GAAG;SACN,CAAC;IACN,CAAC;CACJ;AAjKD,0CAiKC;AAED,MAAsB,aAAsB,SAAQ,eAA6B;IAC7E,KAAK,CAAC,OAAO,CACT,EAAoB,EACpB,KAAwB,EACxB,WAAqC;QAErC,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;CACJ;AARD,sCAQC"}
|
|
@@ -2,8 +2,8 @@ import { InterpreterStep } from "@ethereumjs/evm";
|
|
|
2
2
|
import { TypedTransaction } from "@ethereumjs/tx";
|
|
3
3
|
import { VM } from "@ethereumjs/vm";
|
|
4
4
|
import { StepState } from "../types";
|
|
5
|
-
import {
|
|
6
|
-
export declare class SolTxDebugger extends
|
|
7
|
-
processRawTraceStep(vm: VM, step: InterpreterStep, trace: StepState[], tx: TypedTransaction): Promise<StepState>;
|
|
5
|
+
import { MapOnlyTracer } from "./base_tracer";
|
|
6
|
+
export declare class SolTxDebugger extends MapOnlyTracer<StepState> {
|
|
7
|
+
processRawTraceStep(vm: VM, step: InterpreterStep, trace: StepState[], tx: TypedTransaction): Promise<[StepState, null]>;
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=sol_debugger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sol_debugger.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sol_debugger.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAY9C,qBAAa,aAAc,SAAQ,aAAa,CAAC,SAAS,CAAC;IACjD,mBAAmB,CACrB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,SAAS,EAAE,EAClB,EAAE,EAAE,gBAAgB,GACrB,OAAO,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CA6BhC"}
|
|
@@ -7,7 +7,7 @@ const events_1 = require("./transformers/events");
|
|
|
7
7
|
const ext_stack_1 = require("./transformers/ext_stack");
|
|
8
8
|
const int_stack_1 = require("./transformers/int_stack");
|
|
9
9
|
const source_1 = require("./transformers/source");
|
|
10
|
-
class SolTxDebugger extends base_tracer_1.
|
|
10
|
+
class SolTxDebugger extends base_tracer_1.MapOnlyTracer {
|
|
11
11
|
async processRawTraceStep(vm, step, trace, tx) {
|
|
12
12
|
const opInfo = (0, transformers_1.addOpInfo)(vm, step, {});
|
|
13
13
|
const basicInfo = await (0, transformers_1.addBasicInfo)(vm, step, opInfo, trace);
|
|
@@ -15,7 +15,9 @@ class SolTxDebugger extends base_tracer_1.BaseSolTxTracer {
|
|
|
15
15
|
const source = await (0, source_1.addSource)(vm, step, extFrameInfo);
|
|
16
16
|
const intStack = await (0, int_stack_1.addInternalFrame)(vm, step, source, trace, this.artifactManager, this.strict);
|
|
17
17
|
const events = await (0, events_1.addEventInfo)(vm, step, intStack);
|
|
18
|
-
|
|
18
|
+
const contractLifetime = await (0, transformers_1.addContractLifetimeInfo)(vm, step, events, trace);
|
|
19
|
+
const keccakPreimages = await (0, transformers_1.addKeccakInvertInfo)(vm, step, contractLifetime, trace);
|
|
20
|
+
return [keccakPreimages, null];
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
exports.SolTxDebugger = SolTxDebugger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sol_debugger.js","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":";;;AAIA,+
|
|
1
|
+
{"version":3,"file":"sol_debugger.js","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":";;;AAIA,+CAA8C;AAC9C,iDAKwB;AACxB,kDAAqD;AACrD,wDAA4D;AAC5D,wDAA4D;AAC5D,kDAAkD;AAElD,MAAa,aAAc,SAAQ,2BAAwB;IACvD,KAAK,CAAC,mBAAmB,CACrB,EAAM,EACN,IAAqB,EACrB,KAAkB,EAClB,EAAoB;QAEpB,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAY,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAgB,EACvC,EAAE,EACF,IAAI,EACJ,SAAS,EACT,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,EAAE,CACL,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAgB,EACnC,EAAE,EACF,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,MAAM,CACd,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAY,EAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEtD,MAAM,gBAAgB,GAAG,MAAM,IAAA,sCAAuB,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAEhF,MAAM,eAAe,GAAG,MAAM,IAAA,kCAAmB,EAAC,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAErF,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ;AAnCD,sCAmCC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { InterpreterStep } from "@ethereumjs/evm";
|
|
2
|
+
import { TypedTransaction } from "@ethereumjs/tx";
|
|
3
|
+
import { VM } from "@ethereumjs/vm";
|
|
4
|
+
import { ContractStates } from "../layout";
|
|
5
|
+
import { BaseSolTxTracer } from "./base_tracer";
|
|
6
|
+
import { BasicStepInfo, ContractLifeTimeInfo, ExternalFrameInfo, Keccak256InvertInfo, KeccakPreimageMap } from "./transformers";
|
|
7
|
+
export interface DecodedStorageInfo {
|
|
8
|
+
decodedStorage?: ContractStates;
|
|
9
|
+
}
|
|
10
|
+
export type StorageDecodeTracerInfo = BasicStepInfo & ExternalFrameInfo & ContractLifeTimeInfo & Keccak256InvertInfo & DecodedStorageInfo;
|
|
11
|
+
export interface StorageDecodeTracerCtx {
|
|
12
|
+
liveContracts: Set<string>;
|
|
13
|
+
preimages: KeccakPreimageMap;
|
|
14
|
+
targetSteps: Set<number>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* This tracer computes contract lifetime information and keccak256 pre-images for a TX.
|
|
18
|
+
* The information it collects supports the debugging for the main SolTxDebugger tracer.
|
|
19
|
+
* It is more-light weight and is ran by the TestRunner for all TXs, even if we are not going to debug them.
|
|
20
|
+
*/
|
|
21
|
+
export declare class StorageDecodeTracer extends BaseSolTxTracer<StorageDecodeTracerInfo, StorageDecodeTracerCtx> {
|
|
22
|
+
processRawTraceStep(vm: VM, step: InterpreterStep, trace: StorageDecodeTracerInfo[], tx: TypedTransaction, ctx: StorageDecodeTracerCtx): Promise<[StorageDecodeTracerInfo, StorageDecodeTracerCtx]>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=storage_decode_tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage_decode_tracer.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/storage_decode_tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,cAAc,EAAwB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAMH,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,kBAAkB;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAC/C,iBAAiB,GACjB,oBAAoB,GACpB,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,sBAAsB;IACnC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAkBD;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,eAAe,CACpD,uBAAuB,EACvB,sBAAsB,CACzB;IACS,mBAAmB,CACrB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,uBAAuB,EAAE,EAChC,EAAE,EAAE,gBAAgB,EACpB,GAAG,EAAE,sBAAsB,GAC5B,OAAO,CAAC,CAAC,uBAAuB,EAAE,sBAAsB,CAAC,CAAC;CAoChE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StorageDecodeTracer = void 0;
|
|
4
|
+
const util_1 = require("@ethereumjs/util");
|
|
5
|
+
const layout_1 = require("../layout");
|
|
6
|
+
const base_tracer_1 = require("./base_tracer");
|
|
7
|
+
const transformers_1 = require("./transformers");
|
|
8
|
+
function reducer(state, ctx) {
|
|
9
|
+
if (state.contractCreated) {
|
|
10
|
+
ctx.liveContracts.add(state.contractCreated.toString());
|
|
11
|
+
}
|
|
12
|
+
if (state.contractKilled) {
|
|
13
|
+
ctx.liveContracts.delete(state.contractKilled.toString());
|
|
14
|
+
}
|
|
15
|
+
if (state.keccak) {
|
|
16
|
+
ctx.preimages.set(state.keccak.to, state.keccak.from);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* This tracer computes contract lifetime information and keccak256 pre-images for a TX.
|
|
21
|
+
* The information it collects supports the debugging for the main SolTxDebugger tracer.
|
|
22
|
+
* It is more-light weight and is ran by the TestRunner for all TXs, even if we are not going to debug them.
|
|
23
|
+
*/
|
|
24
|
+
class StorageDecodeTracer extends base_tracer_1.BaseSolTxTracer {
|
|
25
|
+
async processRawTraceStep(vm, step, trace, tx, ctx) {
|
|
26
|
+
const opInfo = (0, transformers_1.addOpInfo)(vm, step, {});
|
|
27
|
+
const basicInfo = await (0, transformers_1.addBasicInfo)(vm, step, opInfo, trace);
|
|
28
|
+
const extFrameInfo = await (0, transformers_1.addExternalFrame)(vm, step, basicInfo, trace, this.artifactManager, tx);
|
|
29
|
+
const contracLifetimeInfo = (0, transformers_1.addContractLifetimeInfo)(vm, step, extFrameInfo, trace);
|
|
30
|
+
const keccakInfo = (0, transformers_1.addKeccakInvertInfo)(vm, step, contracLifetimeInfo, trace);
|
|
31
|
+
reducer(keccakInfo, ctx);
|
|
32
|
+
if (!ctx.targetSteps.has(trace.length)) {
|
|
33
|
+
return [keccakInfo, ctx];
|
|
34
|
+
}
|
|
35
|
+
const state = vm.stateManager;
|
|
36
|
+
const decodedStorage = await (0, layout_1.decodeContractStates)(this.artifactManager, [...ctx.liveContracts].map(util_1.Address.fromString), state, ctx.preimages);
|
|
37
|
+
return [
|
|
38
|
+
{
|
|
39
|
+
...keccakInfo,
|
|
40
|
+
decodedStorage
|
|
41
|
+
},
|
|
42
|
+
ctx
|
|
43
|
+
];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.StorageDecodeTracer = StorageDecodeTracer;
|
|
47
|
+
//# sourceMappingURL=storage_decode_tracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage_decode_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/storage_decode_tracer.ts"],"names":[],"mappings":";;;AAEA,2CAA2C;AAE3C,sCAAiE;AACjE,+CAAgD;AAChD,iDAWwB;AAkBxB,SAAS,OAAO,CACZ,KAAiD,EACjD,GAA2B;IAE3B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;AACL,CAAC;AACD;;;;GAIG;AACH,MAAa,mBAAoB,SAAQ,6BAGxC;IACG,KAAK,CAAC,mBAAmB,CACrB,EAAM,EACN,IAAqB,EACrB,KAAgC,EAChC,EAAoB,EACpB,GAA2B;QAE3B,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAY,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAgB,EACvC,EAAE,EACF,IAAI,EACJ,SAAS,EACT,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,EAAE,CACL,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAA,sCAAuB,EAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,IAAA,kCAAmB,EAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAE7E,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC;QAC9B,MAAM,cAAc,GAAmB,MAAM,IAAA,6BAAoB,EAC7D,IAAI,CAAC,eAAe,EACpB,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAO,CAAC,UAAU,CAAC,EAC9C,KAAK,EACL,GAAG,CAAC,SAAS,CAChB,CAAC;QAEF,OAAO;YACH;gBACI,GAAG,UAAU;gBACb,cAAc;aACjB;YACD,GAAG;SACN,CAAC;IACN,CAAC;CACJ;AA9CD,kDA8CC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InterpreterStep } from "@ethereumjs/evm";
|
|
2
2
|
import { TypedTransaction } from "@ethereumjs/tx";
|
|
3
3
|
import { VM } from "@ethereumjs/vm";
|
|
4
|
-
import {
|
|
4
|
+
import { MapOnlyTracer } from "./base_tracer";
|
|
5
5
|
import { BasicStepInfo, ContractLifeTimeInfo, ExternalFrameInfo, Keccak256InvertInfo } from "./transformers";
|
|
6
6
|
export type SupportTracerStepInfo = BasicStepInfo & ExternalFrameInfo & ContractLifeTimeInfo & Keccak256InvertInfo;
|
|
7
7
|
/**
|
|
@@ -9,7 +9,7 @@ export type SupportTracerStepInfo = BasicStepInfo & ExternalFrameInfo & Contract
|
|
|
9
9
|
* The information it collects supports the debugging for the main SolTxDebugger tracer.
|
|
10
10
|
* It is more-light weight and is ran by the TestRunner for all TXs, even if we are not going to debug them.
|
|
11
11
|
*/
|
|
12
|
-
export declare class SupportTracer extends
|
|
13
|
-
processRawTraceStep(vm: VM, step: InterpreterStep, trace: SupportTracerStepInfo[], tx: TypedTransaction): Promise<SupportTracerStepInfo>;
|
|
12
|
+
export declare class SupportTracer extends MapOnlyTracer<SupportTracerStepInfo> {
|
|
13
|
+
processRawTraceStep(vm: VM, step: InterpreterStep, trace: SupportTracerStepInfo[], tx: TypedTransaction): Promise<[SupportTracerStepInfo, null]>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=support_tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support_tracer.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/support_tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"support_tracer.d.ts","sourceRoot":"","sources":["../../../src/debug/tracers/support_tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAMH,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAC7C,iBAAiB,GACjB,oBAAoB,GACpB,mBAAmB,CAAC;AACxB;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,aAAa,CAAC,qBAAqB,CAAC;IAC7D,mBAAmB,CACrB,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,qBAAqB,EAAE,EAC9B,EAAE,EAAE,gBAAgB,GACrB,OAAO,CAAC,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;CAgB5C"}
|
|
@@ -8,14 +8,14 @@ const transformers_1 = require("./transformers");
|
|
|
8
8
|
* The information it collects supports the debugging for the main SolTxDebugger tracer.
|
|
9
9
|
* It is more-light weight and is ran by the TestRunner for all TXs, even if we are not going to debug them.
|
|
10
10
|
*/
|
|
11
|
-
class SupportTracer extends base_tracer_1.
|
|
11
|
+
class SupportTracer extends base_tracer_1.MapOnlyTracer {
|
|
12
12
|
async processRawTraceStep(vm, step, trace, tx) {
|
|
13
13
|
const opInfo = (0, transformers_1.addOpInfo)(vm, step, {});
|
|
14
14
|
const basicInfo = await (0, transformers_1.addBasicInfo)(vm, step, opInfo, trace);
|
|
15
15
|
const extFrameInfo = await (0, transformers_1.addExternalFrame)(vm, step, basicInfo, trace, this.artifactManager, tx);
|
|
16
16
|
const contracLifetimeInfo = (0, transformers_1.addContractLifetimeInfo)(vm, step, extFrameInfo, trace);
|
|
17
17
|
const keccakInfo = (0, transformers_1.addKeccakInvertInfo)(vm, step, contracLifetimeInfo, trace);
|
|
18
|
-
return keccakInfo;
|
|
18
|
+
return [keccakInfo, null];
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
exports.SupportTracer = SupportTracer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/support_tracer.ts"],"names":[],"mappings":";;;AAGA,+
|
|
1
|
+
{"version":3,"file":"support_tracer.js","sourceRoot":"","sources":["../../../src/debug/tracers/support_tracer.ts"],"names":[],"mappings":";;;AAGA,+CAA8C;AAC9C,iDAUwB;AAMxB;;;;GAIG;AACH,MAAa,aAAc,SAAQ,2BAAoC;IACnE,KAAK,CAAC,mBAAmB,CACrB,EAAM,EACN,IAAqB,EACrB,KAA8B,EAC9B,EAAoB;QAEpB,MAAM,MAAM,GAAG,IAAA,wBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAY,EAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,MAAM,IAAA,+BAAgB,EACvC,EAAE,EACF,IAAI,EACJ,SAAS,EACT,KAAK,EACL,IAAI,CAAC,eAAe,EACpB,EAAE,CACL,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAA,sCAAuB,EAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,IAAA,kCAAmB,EAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAE7E,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ;AAtBD,sCAsBC"}
|
|
@@ -31,7 +31,7 @@ function getContractGenKillSet(trace, res) {
|
|
|
31
31
|
}
|
|
32
32
|
return [gen, kill];
|
|
33
33
|
}, [new Set(), new Set()]);
|
|
34
|
-
if (res && res.createdAddress !== undefined) {
|
|
34
|
+
if (res && res.createdAddress !== undefined && res.execResult.exceptionError === undefined) {
|
|
35
35
|
gen.add(res.createdAddress.toString());
|
|
36
36
|
}
|
|
37
37
|
return [gen, kill];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_lifetime.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/contract_lifetime.ts"],"names":[],"mappings":";;AAgBA,sDAmCC;AAQD,0DAmCC;AA3FD,2CAAwC;AACxC,uCAAwC;AAExC,2CAA6D;AAO7D;;GAEG;AACH,SAAgB,qBAAqB,CACjC,KAA6B,EAC7B,GAAiB;IAEjB,6EAA6E;IAC7E,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAC5B,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAEhD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CACzB,CAAC;IAEF,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"contract_lifetime.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/contract_lifetime.ts"],"names":[],"mappings":";;AAgBA,sDAmCC;AAQD,0DAmCC;AA3FD,2CAAwC;AACxC,uCAAwC;AAExC,2CAA6D;AAO7D;;GAEG;AACH,SAAgB,qBAAqB,CACjC,KAA6B,EAC7B,GAAiB;IAEjB,6EAA6E;IAC7E,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAC5B,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE;QAClB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAEhD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACJ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,CACzB,CAAC;IAEF,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACzF,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACnC,EAAM,EACN,IAAqB,EACrB,KAAQ,EACR,KAAsC;IAEtC,wBAAwB;IACxB,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO;YACH,cAAc,EAAE,KAAK,CAAC,OAAO;YAC7B,GAAG,KAAK;SACX,CAAC;IACN,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,IAAA,uBAAW,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,0CAA0C;IAC1C,IACI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC;QAClC,aAAa,CAAC,IAAI,KAAK,iBAAS,CAAC,QAAQ;QACzC,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,MAAM,EACvC,CAAC;QACC,OAAO;YACH,eAAe,EAAE,QAAQ,CAAC,OAAO;YACjC,GAAG,KAAK;SACX,CAAC;IACN,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/dist/debug/types.d.ts
CHANGED
|
@@ -166,6 +166,12 @@ export interface StepState extends StepVMState {
|
|
|
166
166
|
src: sol.DecodedBytecodeSourceMapEntry | undefined;
|
|
167
167
|
astNode: sol.ASTNode | undefined;
|
|
168
168
|
emittedEvent: EventDesc | undefined;
|
|
169
|
+
contractCreated?: Address;
|
|
170
|
+
contractKilled?: Address;
|
|
171
|
+
keccak?: {
|
|
172
|
+
from: Uint8Array;
|
|
173
|
+
to: bigint;
|
|
174
|
+
};
|
|
169
175
|
}
|
|
170
176
|
/**
|
|
171
177
|
* Trace step struct contained in the array returned by web3.debug.traceTransaction().
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/misc.d.ts
CHANGED
|
@@ -41,4 +41,5 @@ export declare function bigEndianBufToBigint(buf: Uint8Array): bigint;
|
|
|
41
41
|
*/
|
|
42
42
|
export declare function bigEndianBufToNumber(buf: Uint8Array): number;
|
|
43
43
|
export declare function getFunctionSelector(f: FunctionDefinition, infer: InferType): UnprefixedHexString | undefined;
|
|
44
|
+
export declare function sanitizeBigintFromJson(a: any): any;
|
|
44
45
|
//# sourceMappingURL=misc.d.ts.map
|
package/dist/utils/misc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAsB,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,UAAU,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,EAAE,YAAY,EAAoB,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1F,eAAO,MAAM,mBAAmB,EAAE,SAAwD,CAAC;AAC3F,eAAO,MAAM,YAAY,SAA0C,CAAC;AAEpE,eAAO,MAAM,OAAO,SAA0B,CAAC;AAC/C,eAAO,MAAM,oBAAoB,QAAe,CAAC;AAEjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAAE,OAAO,SAAI,GAAG,SAAS,CAcnF;AAED,wBAAgB,WAAW,CACvB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,KAAK,GAAG,QAAmB,GACxC,UAAU,CAiBZ;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAEhE;AAED,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACf,gBAAgB,CAWlB;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,UAAU,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACrB,kBAAkB,GAAG,SAAS,CAchC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,CAQ/F;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAIvD;AAGD,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAM/C;AAGD,wBAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAI7C;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAoBzF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEvD;AAED,eAAO,MAAM,WAAW,QAAuC,CAAC;AAEhE,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAS5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAS5D;AAED,wBAAgB,mBAAmB,CAC/B,CAAC,EAAE,kBAAkB,EACrB,KAAK,EAAE,SAAS,GACjB,mBAAmB,GAAG,SAAS,CAUjC"}
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAsB,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,OAAO,EACP,UAAU,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,EAAE,YAAY,EAAoB,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1F,eAAO,MAAM,mBAAmB,EAAE,SAAwD,CAAC;AAC3F,eAAO,MAAM,YAAY,SAA0C,CAAC;AAEpE,eAAO,MAAM,OAAO,SAA0B,CAAC;AAC/C,eAAO,MAAM,oBAAoB,QAAe,CAAC;AAEjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,EAAE,OAAO,SAAI,GAAG,SAAS,CAcnF;AAED,wBAAgB,WAAW,CACvB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,KAAK,GAAG,QAAmB,GACxC,UAAU,CAiBZ;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAEhE;AAED,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACf,gBAAgB,CAWlB;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,UAAU,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACrB,kBAAkB,GAAG,SAAS,CAchC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,CAQ/F;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAIvD;AAGD,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAM/C;AAGD,wBAAgB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAI7C;AAGD,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAoBzF;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEvD;AAED,eAAO,MAAM,WAAW,QAAuC,CAAC;AAEhE,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAS5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAS5D;AAED,wBAAgB,mBAAmB,CAC/B,CAAC,EAAE,kBAAkB,EACrB,KAAK,EAAE,SAAS,GACjB,mBAAmB,GAAG,SAAS,CAUjC;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAgBlD"}
|
package/dist/utils/misc.js
CHANGED
|
@@ -19,6 +19,7 @@ exports.readInt16Be = readInt16Be;
|
|
|
19
19
|
exports.bigEndianBufToBigint = bigEndianBufToBigint;
|
|
20
20
|
exports.bigEndianBufToNumber = bigEndianBufToNumber;
|
|
21
21
|
exports.getFunctionSelector = getFunctionSelector;
|
|
22
|
+
exports.sanitizeBigintFromJson = sanitizeBigintFromJson;
|
|
22
23
|
const tx_1 = require("@ethereumjs/tx");
|
|
23
24
|
const util_1 = require("@ethereumjs/util");
|
|
24
25
|
const utils_1 = require("ethereum-cryptography/utils");
|
|
@@ -184,4 +185,16 @@ function getFunctionSelector(f, infer) {
|
|
|
184
185
|
return undefined;
|
|
185
186
|
}
|
|
186
187
|
}
|
|
188
|
+
function sanitizeBigintFromJson(a) {
|
|
189
|
+
if (typeof a === "bigint") {
|
|
190
|
+
return `${a}`;
|
|
191
|
+
}
|
|
192
|
+
if (a instanceof Array) {
|
|
193
|
+
return a.map(sanitizeBigintFromJson);
|
|
194
|
+
}
|
|
195
|
+
if (a instanceof Object) {
|
|
196
|
+
return Object.fromEntries(Object.entries(a).map(([k, v]) => [k, sanitizeBigintFromJson(v)]));
|
|
197
|
+
}
|
|
198
|
+
return a;
|
|
199
|
+
}
|
|
187
200
|
//# sourceMappingURL=misc.js.map
|
package/dist/utils/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":";;;AAqBA,kCAcC;AAED,kCAqBC;AAED,sCAEC;AAED,kDAeC;AAED,0CAkBC;AAED,gDAQC;AAKD,wBASC;AAED,oBAIC;AAGD,sBAMC;AAGD,wBAIC;AAGD,8BAQC;AAGD,gCAEC;AAOD,oCAoBC;AAED,sCAEC;AAID,kCAEC;AAKD,oDASC;AAKD,oDASC;AAED,kDAaC;
|
|
1
|
+
{"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Block } from "@ethereumjs/block";
|
|
2
2
|
import { Common, EVMStateManagerInterface } from "@ethereumjs/common";
|
|
3
3
|
import { TypedTransaction } from "@ethereumjs/tx";
|
|
4
|
-
import { PrefixedHexString } from "@ethereumjs/util";
|
|
4
|
+
import { Address, PrefixedHexString } from "@ethereumjs/util";
|
|
5
5
|
import { HexString } from "../artifacts";
|
|
6
|
-
import {
|
|
7
|
-
export interface
|
|
6
|
+
import { ContractStates, FoundryTxResult, IArtifactManager, KeccakPreimageMap } from "../debug";
|
|
7
|
+
export interface TxDesc {
|
|
8
8
|
address: HexString;
|
|
9
9
|
gasLimit: HexString;
|
|
10
10
|
gasPrice: HexString;
|
|
@@ -30,46 +30,12 @@ export interface InitialState {
|
|
|
30
30
|
[address: HexString]: AccountDescription;
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
interface
|
|
33
|
+
export interface Scenario {
|
|
34
34
|
initialState: InitialState;
|
|
35
|
-
steps:
|
|
36
|
-
}
|
|
37
|
-
export declare enum ResultKind {
|
|
38
|
-
ContractCreated = "contract_created",
|
|
39
|
-
ValueReturned = "value_returned",
|
|
40
|
-
Revert = "revert",
|
|
41
|
-
LastRevert = "last_revert",
|
|
42
|
-
FoundryFail = "foundry_fail"
|
|
43
|
-
}
|
|
44
|
-
interface ResultContractCreated {
|
|
45
|
-
kind: ResultKind.ContractCreated;
|
|
46
|
-
address: string;
|
|
47
|
-
}
|
|
48
|
-
interface ResultValueReturned {
|
|
49
|
-
kind: ResultKind.ValueReturned;
|
|
50
|
-
value: HexString;
|
|
51
|
-
}
|
|
52
|
-
interface ResultRevert {
|
|
53
|
-
kind: ResultKind.Revert;
|
|
54
|
-
}
|
|
55
|
-
interface ResultLastRevert {
|
|
56
|
-
kind: ResultKind.LastRevert;
|
|
57
|
-
}
|
|
58
|
-
interface ResultFoundryFail {
|
|
59
|
-
kind: ResultKind.FoundryFail;
|
|
60
|
-
}
|
|
61
|
-
export interface TestStep extends BaseTestStep {
|
|
62
|
-
result: ResultContractCreated | ResultValueReturned | ResultRevert | ResultLastRevert | ResultFoundryFail;
|
|
63
|
-
errorStack?: string[];
|
|
64
|
-
errorString?: string;
|
|
65
|
-
errorPathPrefix?: string;
|
|
66
|
-
layoutBefore?: ContractSolidityState;
|
|
67
|
-
}
|
|
68
|
-
export interface TestCase extends BaseTestCase {
|
|
69
|
-
steps: TestStep[];
|
|
35
|
+
steps: TxDesc[];
|
|
70
36
|
}
|
|
71
37
|
/**
|
|
72
|
-
* Helper class to run a set of TX and record info to allow
|
|
38
|
+
* Helper class to run a set of TX and record info to allow debugging any of the TXs independently. This includes:
|
|
73
39
|
*
|
|
74
40
|
* 1. The TX data for each
|
|
75
41
|
* 2. The Block info for each TX
|
|
@@ -78,7 +44,8 @@ export interface TestCase extends BaseTestCase {
|
|
|
78
44
|
* 5. The set of contracts before each TX
|
|
79
45
|
* 6. The set of keccak256 (result, preimage) pairs computed by the TX (useful for computing Solidity-level maps)
|
|
80
46
|
*/
|
|
81
|
-
export declare class
|
|
47
|
+
export declare class TxRunner {
|
|
48
|
+
readonly artifactManager: IArtifactManager;
|
|
82
49
|
private _foundryCheatcodes;
|
|
83
50
|
private tracer;
|
|
84
51
|
private _txs;
|
|
@@ -88,16 +55,17 @@ export declare class VMTestRunner {
|
|
|
88
55
|
private _contractsBeforeTx;
|
|
89
56
|
private _keccakPreimagesBeforeTx;
|
|
90
57
|
constructor(artifactManager: IArtifactManager, _foundryCheatcodes?: boolean);
|
|
91
|
-
|
|
58
|
+
runScenario(scenario: Scenario): Promise<void>;
|
|
92
59
|
private setupInitialState;
|
|
93
|
-
|
|
94
|
-
|
|
60
|
+
txDescToTx(step: TxDesc, stateManager: EVMStateManagerInterface, common: Common): Promise<TypedTransaction>;
|
|
61
|
+
private blockFromTxDesc;
|
|
95
62
|
get txs(): TypedTransaction[];
|
|
96
63
|
get results(): FoundryTxResult[];
|
|
97
64
|
getStateBeforeTx(tx: TypedTransaction): EVMStateManagerInterface;
|
|
98
65
|
getBlock(tx: TypedTransaction): Block;
|
|
99
66
|
getContractsBefore(tx: TypedTransaction): Set<PrefixedHexString>;
|
|
100
67
|
getKeccakPreimagesBefore(tx: TypedTransaction): KeccakPreimageMap;
|
|
68
|
+
getDecodedContractStatesBeforeTx(tx: TypedTransaction, contracts?: Iterable<Address>): Promise<ContractStates>;
|
|
69
|
+
getDecodedContractStatesOnTxStep(tx: TypedTransaction, stepNum: number): Promise<ContractStates | undefined>;
|
|
101
70
|
}
|
|
102
|
-
export {};
|
|
103
71
|
//# sourceMappingURL=test_runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_runner.d.ts","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAY,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"test_runner.d.ts","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAY,MAAM,oBAAoB,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAe,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAW,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEH,cAAc,EAEd,eAAe,EAGf,gBAAgB,EAChB,iBAAiB,EAEpB,MAAM,UAAU,CAAC;AAMlB,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,eAAe,EAAE,SAAS,CAAC;IAC3B,aAAa,EAAE,SAAS,CAAC;IACzB,WAAW,EAAE,SAAS,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QACL,CAAC,WAAW,EAAE,SAAS,GAAG,SAAS,CAAC;KACvC,CAAC;CACL;AAED,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE;QACN,CAAC,OAAO,EAAE,SAAS,GAAG,kBAAkB,CAAC;KAC5C,CAAC;CACL;AAED,MAAM,WAAW,QAAQ;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAQ;aAUG,eAAe,EAAE,gBAAgB;IACjD,OAAO,CAAC,kBAAkB;IAV9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,kBAAkB,CAA+C;IACzE,OAAO,CAAC,kBAAkB,CAA6C;IACvE,OAAO,CAAC,wBAAwB,CAA8C;gBAG1D,eAAe,EAAE,gBAAgB,EACzC,kBAAkB,GAAE,OAAc;IAYxC,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAoDtC,iBAAiB;IAyCzB,UAAU,CACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,wBAAwB,EACtC,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC;IAoB5B,OAAO,CAAC,eAAe;IAiBvB,IAAI,GAAG,IAAI,gBAAgB,EAAE,CAE5B;IAED,IAAI,OAAO,IAAI,eAAe,EAAE,CAE/B;IAED,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,GAAG,wBAAwB;IAShE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,GAAG,KAAK;IASrC,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,GAAG,GAAG,CAAC,iBAAiB,CAAC;IAShE,wBAAwB,CAAC,EAAE,EAAE,gBAAgB,GAAG,iBAAiB;IAS3D,gCAAgC,CAClC,EAAE,EAAE,gBAAgB,EACpB,SAAS,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,cAAc,CAAC;IAWpB,gCAAgC,CAClC,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;CAmBzC"}
|
|
@@ -1,25 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.TxRunner = void 0;
|
|
4
4
|
const block_1 = require("@ethereumjs/block");
|
|
5
5
|
const common_1 = require("@ethereumjs/common");
|
|
6
6
|
const util_1 = require("@ethereumjs/util");
|
|
7
7
|
const utils_1 = require("ethereum-cryptography/utils");
|
|
8
8
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
9
9
|
const debug_1 = require("../debug");
|
|
10
|
+
const storage_decode_tracer_1 = require("../debug/tracers/storage_decode_tracer");
|
|
10
11
|
const map_1 = require("./map");
|
|
11
12
|
const misc_1 = require("./misc");
|
|
12
13
|
const set_1 = require("./set");
|
|
13
|
-
var ResultKind;
|
|
14
|
-
(function (ResultKind) {
|
|
15
|
-
ResultKind["ContractCreated"] = "contract_created";
|
|
16
|
-
ResultKind["ValueReturned"] = "value_returned";
|
|
17
|
-
ResultKind["Revert"] = "revert";
|
|
18
|
-
ResultKind["LastRevert"] = "last_revert";
|
|
19
|
-
ResultKind["FoundryFail"] = "foundry_fail";
|
|
20
|
-
})(ResultKind || (exports.ResultKind = ResultKind = {}));
|
|
21
14
|
/**
|
|
22
|
-
* Helper class to run a set of TX and record info to allow
|
|
15
|
+
* Helper class to run a set of TX and record info to allow debugging any of the TXs independently. This includes:
|
|
23
16
|
*
|
|
24
17
|
* 1. The TX data for each
|
|
25
18
|
* 2. The Block info for each TX
|
|
@@ -28,8 +21,9 @@ var ResultKind;
|
|
|
28
21
|
* 5. The set of contracts before each TX
|
|
29
22
|
* 6. The set of keccak256 (result, preimage) pairs computed by the TX (useful for computing Solidity-level maps)
|
|
30
23
|
*/
|
|
31
|
-
class
|
|
24
|
+
class TxRunner {
|
|
32
25
|
constructor(artifactManager, _foundryCheatcodes = true) {
|
|
26
|
+
this.artifactManager = artifactManager;
|
|
33
27
|
this._foundryCheatcodes = _foundryCheatcodes;
|
|
34
28
|
this._stateRootBeforeTx = new Map();
|
|
35
29
|
this._contractsBeforeTx = new Map();
|
|
@@ -42,7 +36,7 @@ class VMTestRunner {
|
|
|
42
36
|
this._results = [];
|
|
43
37
|
this._txToBlock = new Map();
|
|
44
38
|
}
|
|
45
|
-
async
|
|
39
|
+
async runScenario(scenario) {
|
|
46
40
|
/**
|
|
47
41
|
* Dummy VM used just to get a StateManager and a Common instance. The actual VM used for execution is created inside
|
|
48
42
|
* SupportTracer. (@todo this is kinda ugly... oh well)
|
|
@@ -51,11 +45,11 @@ class VMTestRunner {
|
|
|
51
45
|
let stateManager = dummyVM.stateManager.shallowCopy();
|
|
52
46
|
const common = dummyVM.common.copy();
|
|
53
47
|
debug_1.BaseSolTxTracer.releaseVM(dummyVM);
|
|
54
|
-
const contractsBefore = await this.setupInitialState(
|
|
48
|
+
const contractsBefore = await this.setupInitialState(scenario.initialState, stateManager);
|
|
55
49
|
const keccakPreimages = new Map();
|
|
56
|
-
for (let i = 0; i <
|
|
57
|
-
const tx = await this.
|
|
58
|
-
const block = this.
|
|
50
|
+
for (let i = 0; i < scenario.steps.length; i++) {
|
|
51
|
+
const tx = await this.txDescToTx(scenario.steps[i], stateManager, common);
|
|
52
|
+
const block = this.blockFromTxDesc(scenario.steps[i], common);
|
|
59
53
|
const txHash = (0, utils_1.bytesToHex)(tx.hash());
|
|
60
54
|
// Store the sets before the TX
|
|
61
55
|
this._txs.push(tx);
|
|
@@ -65,13 +59,12 @@ class VMTestRunner {
|
|
|
65
59
|
this._keccakPreimagesBeforeTx.set(txHash, new Map(keccakPreimages));
|
|
66
60
|
const [trace, res, stateAfter] = await this.tracer.debugTx(tx, block, stateManager);
|
|
67
61
|
await stateManager.flush();
|
|
68
|
-
// Update the set of live contracts
|
|
69
62
|
const [gen, kill] = (0, debug_1.getContractGenKillSet)(trace, res);
|
|
70
63
|
(0, set_1.set_add)(contractsBefore, gen);
|
|
71
64
|
(0, set_1.set_subtract)(contractsBefore, kill);
|
|
65
|
+
// Update the keccak map
|
|
72
66
|
const txKeccakPreimages = (0, debug_1.getKeccakPreimages)(trace);
|
|
73
67
|
(0, map_1.map_add)(keccakPreimages, txKeccakPreimages);
|
|
74
|
-
// Update the keccak map
|
|
75
68
|
// Add results
|
|
76
69
|
this._results.push(res);
|
|
77
70
|
stateManager = stateAfter;
|
|
@@ -102,7 +95,7 @@ class VMTestRunner {
|
|
|
102
95
|
await state.flush();
|
|
103
96
|
return initialContracts;
|
|
104
97
|
}
|
|
105
|
-
async
|
|
98
|
+
async txDescToTx(step, stateManager, common) {
|
|
106
99
|
const senderAddress = util_1.Address.fromString(step.origin);
|
|
107
100
|
const senderAccount = await stateManager.getAccount(senderAddress);
|
|
108
101
|
const senderNonce = senderAccount !== undefined ? senderAccount.nonce : 0;
|
|
@@ -118,7 +111,7 @@ class VMTestRunner {
|
|
|
118
111
|
}
|
|
119
112
|
return (0, misc_1.makeFakeTransaction)(txData, step.origin, common);
|
|
120
113
|
}
|
|
121
|
-
|
|
114
|
+
blockFromTxDesc(step, common) {
|
|
122
115
|
return block_1.Block.fromBlockData({
|
|
123
116
|
header: {
|
|
124
117
|
coinbase: step.origin,
|
|
@@ -161,6 +154,29 @@ class VMTestRunner {
|
|
|
161
154
|
(0, solc_typed_ast_1.assert)(res !== undefined, `Unable to find keccak preimages for tx ${txHash}`);
|
|
162
155
|
return res;
|
|
163
156
|
}
|
|
157
|
+
async getDecodedContractStatesBeforeTx(tx, contracts) {
|
|
158
|
+
const state = this.getStateBeforeTx(tx);
|
|
159
|
+
const preimages = this.getKeccakPreimagesBefore(tx);
|
|
160
|
+
if (contracts === undefined) {
|
|
161
|
+
contracts = [...this.getContractsBefore(tx)].map(util_1.Address.fromString);
|
|
162
|
+
}
|
|
163
|
+
return await (0, debug_1.decodeContractStates)(this.artifactManager, contracts, state, preimages);
|
|
164
|
+
}
|
|
165
|
+
async getDecodedContractStatesOnTxStep(tx, stepNum) {
|
|
166
|
+
const tracer = new storage_decode_tracer_1.StorageDecodeTracer(this.artifactManager);
|
|
167
|
+
const liveContracts = new Set(this.getContractsBefore(tx));
|
|
168
|
+
const preimages = new Map(this.getKeccakPreimagesBefore(tx));
|
|
169
|
+
const [trace, ,] = await tracer.debugTx(tx, this.getBlock(tx), this.getStateBeforeTx(tx), {
|
|
170
|
+
liveContracts,
|
|
171
|
+
preimages,
|
|
172
|
+
targetSteps: new Set([stepNum])
|
|
173
|
+
});
|
|
174
|
+
if (trace.length < stepNum) {
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
(0, solc_typed_ast_1.assert)(trace[stepNum].decodedStorage !== undefined, ``);
|
|
178
|
+
return trace[stepNum].decodedStorage;
|
|
179
|
+
}
|
|
164
180
|
}
|
|
165
|
-
exports.
|
|
181
|
+
exports.TxRunner = TxRunner;
|
|
166
182
|
//# sourceMappingURL=test_runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_runner.js","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAC1C,+CAAgF;AAGhF,2CAAuE;AACvE,uDAAqE;AACrE,mDAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"test_runner.js","sourceRoot":"","sources":["../../src/utils/test_runner.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAC1C,+CAAgF;AAGhF,2CAAuE;AACvE,uDAAqE;AACrE,mDAAwC;AAExC,oCAUkB;AAClB,kFAA6E;AAC7E,+BAAgC;AAChC,iCAAiF;AACjF,+BAA8C;AAoC9C;;;;;;;;;GASG;AACH,MAAa,QAAQ;IASjB,YACoB,eAAiC,EACzC,qBAA8B,IAAI;QAD1B,oBAAe,GAAf,eAAe,CAAkB;QACzC,uBAAkB,GAAlB,kBAAkB,CAAgB;QANtC,uBAAkB,GAAG,IAAI,GAAG,EAAoC,CAAC;QACjE,uBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC/D,6BAAwB,GAAG,IAAI,GAAG,EAAmC,CAAC;QAM1E,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAa,CAAC,eAAe,EAAE;YAC7C,MAAM,EAAE,IAAI;YACZ,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;SAC7C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAkB;QAChC;;;WAGG;QACH,MAAM,OAAO,GAAG,MAAM,uBAAe,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEnF,IAAI,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAErC,uBAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAChD,QAAQ,CAAC,YAAY,EACrB,YAAmC,CACtC,CAAC;QAEF,MAAM,eAAe,GAAsB,IAAI,GAAG,EAAE,CAAC;QAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAE1E,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YAE9D,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAErC,+BAA+B;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAEpE,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YAEpF,MAAO,YAAoC,CAAC,KAAK,EAAE,CAAC;YAEpD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAA,6BAAqB,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtD,IAAA,aAAO,EAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAC9B,IAAA,kBAAY,EAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAEpC,wBAAwB;YACxB,MAAM,iBAAiB,GAAG,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;YACpD,IAAA,aAAO,EAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;YAE5C,cAAc;YACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAExB,YAAY,GAAG,UAAU,CAAC;QAC9B,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC3B,YAA0B,EAC1B,KAA0B;QAE1B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAqB,CAAC;QAEtD,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QAEzB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAE5E,MAAM,OAAO,GAAG,cAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1C,MAAM,IAAI,GAAG,IAAI,cAAO,EAAE,CAAC;YAE3B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAE/B,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,IAAA,oBAAa,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE3C,MAAM,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;QAED,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QAEpB,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU,CACZ,IAAY,EACZ,YAAsC,EACtC,MAAc;QAEd,MAAM,aAAa,GAAG,cAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,MAAM,MAAM,GAAgB;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE,WAAW;SACrB,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,KAAK,0BAAmB,EAAE,CAAC;YACvC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,CAAC;QAED,OAAO,IAAA,0BAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,MAAc;QAChD,OAAO,aAAK,CAAC,aAAa,CACtB;YACI,MAAM,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,iBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe;gBAC9E,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B;SACJ,EACD;YACI,MAAM,EAAE,MAAM;SACjB,CACJ,CAAC;IACN,CAAC;IAED,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,EAAoB;QACjC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAA,uBAAM,EAAC,GAAG,KAAK,SAAS,EAAE,kCAAkC,MAAM,EAAE,CAAC,CAAC;QAEtE,OAAO,GAAG,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,EAAoB;QACzB,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAExC,IAAA,uBAAM,EAAC,GAAG,KAAK,SAAS,EAAE,+BAA+B,MAAM,EAAE,CAAC,CAAC;QAEnE,OAAO,GAAG,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,EAAoB;QACnC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhD,IAAA,uBAAM,EAAC,GAAG,KAAK,SAAS,EAAE,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAEvE,OAAO,GAAG,CAAC;IACf,CAAC;IAED,wBAAwB,CAAC,EAAoB;QACzC,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAA,uBAAM,EAAC,GAAG,KAAK,SAAS,EAAE,0CAA0C,MAAM,EAAE,CAAC,CAAC;QAE9E,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gCAAgC,CAClC,EAAoB,EACpB,SAA6B;QAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAEpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,cAAO,CAAC,UAAU,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,MAAM,IAAA,4BAAoB,EAAC,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACzF,CAAC;IAED,KAAK,CAAC,gCAAgC,CAClC,EAAoB,EACpB,OAAe;QAEf,MAAM,MAAM,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE7D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,KAAK,EAAE,AAAD,EAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE;YACtF,aAAa;YACb,SAAS;YACT,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAA,uBAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,KAAK,SAAS,EAAE,EAAE,CAAC,CAAC;QAExD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;IACzC,CAAC;CACJ;AA7OD,4BA6OC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|