sol-dbg 0.1.5 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts/helpers.d.ts.map +1 -1
- package/dist/artifacts/helpers.js +1 -1
- package/dist/artifacts/helpers.js.map +1 -1
- package/dist/debug/abi.d.ts +9 -5
- package/dist/debug/abi.d.ts.map +1 -1
- package/dist/debug/abi.js +29 -8
- package/dist/debug/abi.js.map +1 -1
- package/dist/debug/artifact_manager.d.ts +3 -1
- package/dist/debug/artifact_manager.d.ts.map +1 -1
- package/dist/debug/artifact_manager.js +23 -0
- package/dist/debug/artifact_manager.js.map +1 -1
- package/dist/debug/foundry_cheatcodes.d.ts +10 -15
- package/dist/debug/foundry_cheatcodes.d.ts.map +1 -1
- package/dist/debug/foundry_cheatcodes.js +217 -237
- package/dist/debug/foundry_cheatcodes.js.map +1 -1
- package/dist/debug/opcode_interposing.d.ts +1 -1
- package/dist/debug/opcode_interposing.d.ts.map +1 -1
- package/dist/debug/opcode_interposing.js +9 -8
- package/dist/debug/opcode_interposing.js.map +1 -1
- package/dist/debug/sol_debugger.d.ts +9 -8
- package/dist/debug/sol_debugger.d.ts.map +1 -1
- package/dist/debug/sol_debugger.js +49 -31
- package/dist/debug/sol_debugger.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/misc.d.ts +2 -1
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +6 -7
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/test_runner.d.ts +87 -0
- package/dist/utils/test_runner.d.ts.map +1 -0
- package/dist/utils/test_runner.js +124 -0
- package/dist/utils/test_runner.js.map +1 -0
- package/package.json +14 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/artifacts/helpers.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/artifacts/helpers.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAwJ3E,wBAAgB,WAAW,CAAC,YAAY,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAiB7F;AAED,wBAAgB,mBAAmB,CAC/B,gBAAgB,EAAE,mBAAmB,GAAG,MAAM,GAC/C,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"}
|
|
@@ -88,7 +88,7 @@ function getDeployedBytecodeMdInfo(deployedBytecode) {
|
|
|
88
88
|
rawMd = cbor_1.Decoder.decodeAllSync(deployedBytecode.slice(deployedBytecode.length - 2 - off, deployedBytecode.length - 2), {})[0];
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
-
catch
|
|
91
|
+
catch {
|
|
92
92
|
// The contract bytecode may not have metadata, which would result in random crashes in the decoder.
|
|
93
93
|
// Catch those so we don't end up crashing in the absence of metadata.
|
|
94
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/artifacts/helpers.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,mDAAwC;AACxC,0BAAiC;AAgBjC,SAAS,wBAAwB,CAAC,GAAW,EAAE,MAAc,EAAE,MAAc;IACzE,MAAM,GAAG,GAAa,EAAE,CAAC;
|
|
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
|
@@ -3,16 +3,20 @@ import { DataLocation as SolDataLocation, FunctionDefinition, InferType, TypeNod
|
|
|
3
3
|
import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
|
|
4
4
|
import { DataLocationKind, DataView } from ".";
|
|
5
5
|
export declare function changeToLocation(typ: TypeNode, newLoc: SolDataLocation): TypeNode;
|
|
6
|
+
/**
|
|
7
|
+
* Given a callee AST Node (FunctionDefinition or VariableDeclaration
|
|
8
|
+
* correspondong to a getter), some msg `data`, that lives in location
|
|
9
|
+
* determined by `kind`, a type inference class as well as an `encoderVersion`
|
|
10
|
+
* try and decode the function arguments for that particular callee from the
|
|
11
|
+
* data.
|
|
12
|
+
*/
|
|
13
|
+
export declare function decodeMethodArgs(callee: FunctionDefinition | VariableDeclaration, data: Buffer, kind: DataLocationKind.Memory | DataLocationKind.CallData, infer: InferType, encoderVersion: ABIEncoderVersion): Array<[string, any]>;
|
|
6
14
|
/**
|
|
7
15
|
* An ABI-decoder implementation that is resilient to failures in some arguments decoding.
|
|
8
16
|
* This function will return partial decoding results. This is needed since the fuzzer may not
|
|
9
17
|
* always produce inputs that decode in their entirety.
|
|
10
|
-
*
|
|
11
|
-
* TODO: (dimo): The name of this function is bad. Its not doing any decoding - just building 'DataView' elements
|
|
12
|
-
* into msg.data that match a specific function signature. Also this should be moved into sol_debugger, in the same place
|
|
13
|
-
* where `SolTxDebugger.decodeFunArgs` lives.
|
|
14
18
|
*/
|
|
15
|
-
export declare function
|
|
19
|
+
export declare function buildMsgDataViews(callee: FunctionDefinition | VariableDeclaration, data: Buffer, kind: DataLocationKind.Memory | DataLocationKind.CallData, infer: InferType, encoderVersion: ABIEncoderVersion): Array<[string, DataView | undefined]>;
|
|
16
20
|
/**
|
|
17
21
|
* Convert an internal TypeNode to the external TypeNode that would correspond to it
|
|
18
22
|
* after ABI-encoding with encoder version `encoderVersion`. Follows the following rules:
|
package/dist/debug/abi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":";AAAA,OAAO,EAOH,YAAY,IAAI,eAAe,EAI/B,kBAAkB,EAClB,SAAS,EAOT,QAAQ,EAGR,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":";AAAA,OAAO,EAOH,YAAY,IAAI,eAAe,EAI/B,kBAAkB,EAClB,SAAS,EAOT,QAAQ,EAGR,mBAAmB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAkB,MAAM,GAAG,CAAC;AAG/D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,QAAQ,CAmCjF;AA6CD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,EAChD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EACzD,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,iBAAiB,GAClC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAsBtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,kBAAkB,GAAG,mBAAmB,EAChD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EACzD,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,iBAAiB,GAClC,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAuCvC;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"}
|
package/dist/debug/abi.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isABITypeStaticSized = exports.toABIEncodedType = exports.
|
|
3
|
+
exports.isABITypeStaticSized = exports.toABIEncodedType = exports.buildMsgDataViews = exports.decodeMethodArgs = exports.changeToLocation = void 0;
|
|
4
4
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
5
5
|
const abi_1 = require("solc-typed-ast/dist/types/abi");
|
|
6
|
+
const _1 = require(".");
|
|
6
7
|
const utils_1 = require("../utils");
|
|
7
8
|
function changeToLocation(typ, newLoc) {
|
|
8
9
|
if (typ instanceof solc_typed_ast_1.PointerType) {
|
|
@@ -61,16 +62,36 @@ function abiStaticTypeSize(typ) {
|
|
|
61
62
|
}
|
|
62
63
|
throw new Error(`NYI decoding type ${typ.pp()}`);
|
|
63
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Given a callee AST Node (FunctionDefinition or VariableDeclaration
|
|
67
|
+
* correspondong to a getter), some msg `data`, that lives in location
|
|
68
|
+
* determined by `kind`, a type inference class as well as an `encoderVersion`
|
|
69
|
+
* try and decode the function arguments for that particular callee from the
|
|
70
|
+
* data.
|
|
71
|
+
*/
|
|
72
|
+
function decodeMethodArgs(callee, data, kind, infer, encoderVersion) {
|
|
73
|
+
const dataViews = buildMsgDataViews(callee, data, kind, infer, encoderVersion);
|
|
74
|
+
const res = [];
|
|
75
|
+
for (let i = 0; i < dataViews.length; i++) {
|
|
76
|
+
const name = dataViews[i][0];
|
|
77
|
+
const view = dataViews[i][1];
|
|
78
|
+
if (view === undefined) {
|
|
79
|
+
res.push([name, undefined]);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
(0, solc_typed_ast_1.assert)(view.abiType !== undefined && view.loc.kind === _1.DataLocationKind.CallData, ``);
|
|
83
|
+
const val = (0, _1.cd_decodeValue)(view.abiType, view.type, view.loc, data, BigInt(4), infer);
|
|
84
|
+
res.push([name, val ? val[0] : val]);
|
|
85
|
+
}
|
|
86
|
+
return res;
|
|
87
|
+
}
|
|
88
|
+
exports.decodeMethodArgs = decodeMethodArgs;
|
|
64
89
|
/**
|
|
65
90
|
* An ABI-decoder implementation that is resilient to failures in some arguments decoding.
|
|
66
91
|
* This function will return partial decoding results. This is needed since the fuzzer may not
|
|
67
92
|
* always produce inputs that decode in their entirety.
|
|
68
|
-
*
|
|
69
|
-
* TODO: (dimo): The name of this function is bad. Its not doing any decoding - just building 'DataView' elements
|
|
70
|
-
* into msg.data that match a specific function signature. Also this should be moved into sol_debugger, in the same place
|
|
71
|
-
* where `SolTxDebugger.decodeFunArgs` lives.
|
|
72
93
|
*/
|
|
73
|
-
function
|
|
94
|
+
function buildMsgDataViews(callee, data, kind, infer, encoderVersion) {
|
|
74
95
|
const res = [];
|
|
75
96
|
const selector = callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
76
97
|
? (0, utils_1.getFunctionSelector)(callee, infer)
|
|
@@ -89,12 +110,12 @@ function decodeMsgData(callee, data, kind, infer, encoderVersion) {
|
|
|
89
110
|
const staticSize = abiStaticTypeSize(typ);
|
|
90
111
|
const loc = staticOff + staticSize <= len ? { kind, address: BigInt(staticOff) } : undefined;
|
|
91
112
|
staticOff += staticSize;
|
|
92
|
-
const val = loc ? { type: originalType, loc } : undefined;
|
|
113
|
+
const val = loc ? { type: originalType, abiType: typ, loc } : undefined;
|
|
93
114
|
res.push([name, val]);
|
|
94
115
|
}
|
|
95
116
|
return res;
|
|
96
117
|
}
|
|
97
|
-
exports.
|
|
118
|
+
exports.buildMsgDataViews = buildMsgDataViews;
|
|
98
119
|
/**
|
|
99
120
|
* Determine if the specified type `typ` is dynamic or not. Dynamic means
|
|
100
121
|
* that if we are trying to read `typ` at location `loc`, in `loc` there should be just a
|
package/dist/debug/abi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":";;;AAAA,mDAuBwB;AACxB,uDAAkE;
|
|
1
|
+
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../../src/debug/abi.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { PrefixedHexString } from "ethereumjs-util";
|
|
3
|
-
import { ASTContext, ASTNode, ContractDefinition, InferType, SourceUnit } from "solc-typed-ast";
|
|
3
|
+
import { ASTContext, ASTNode, ContractDefinition, FunctionDefinition, InferType, SourceUnit, VariableDeclaration } from "solc-typed-ast";
|
|
4
4
|
import { ABIEncoderVersion } from "solc-typed-ast/dist/types/abi";
|
|
5
5
|
import { DecodedBytecodeSourceMapEntry, PartialCompiledContract, PartialSolcOutput, RawAST } from "..";
|
|
6
6
|
import { HexString } from "../artifacts";
|
|
@@ -12,6 +12,7 @@ export interface IArtifactManager {
|
|
|
12
12
|
contracts(): ContractInfo[];
|
|
13
13
|
getFileById(id: number, code: string | Buffer, isCreation: boolean): SourceFileInfo | undefined;
|
|
14
14
|
infer(version: string): InferType;
|
|
15
|
+
findMethod(selector: HexString | Buffer): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
15
16
|
}
|
|
16
17
|
export interface BytecodeInfo {
|
|
17
18
|
generatedFileMap: Map<number, SourceFileInfo>;
|
|
@@ -73,5 +74,6 @@ export declare class ArtifactManager implements IArtifactManager {
|
|
|
73
74
|
getFileById(id: number, arg: string | Buffer | ContractInfo, isCreation: boolean): SourceFileInfo | undefined;
|
|
74
75
|
contracts(): ContractInfo[];
|
|
75
76
|
infer(version: string): InferType;
|
|
77
|
+
findMethod(selector: HexString | Buffer): [ContractInfo, FunctionDefinition | VariableDeclaration] | undefined;
|
|
76
78
|
}
|
|
77
79
|
//# sourceMappingURL=artifact_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAEH,UAAU,EACV,OAAO,EAEP,kBAAkB,
|
|
1
|
+
{"version":3,"file":"artifact_manager.d.ts","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -197,6 +197,29 @@ class ArtifactManager {
|
|
|
197
197
|
}
|
|
198
198
|
return this._inferCache.get(version);
|
|
199
199
|
}
|
|
200
|
+
findMethod(selector) {
|
|
201
|
+
if (selector instanceof Buffer) {
|
|
202
|
+
selector = selector.toString("hex");
|
|
203
|
+
}
|
|
204
|
+
for (const contract of this._contracts) {
|
|
205
|
+
if (!contract.ast) {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const inf = this.infer(contract.artifact.compilerVersion);
|
|
209
|
+
const ast = contract.ast;
|
|
210
|
+
const candidates = [
|
|
211
|
+
...ast.vFunctions.filter((method) => method.visibility === solc_typed_ast_1.FunctionVisibility.External ||
|
|
212
|
+
method.visibility === solc_typed_ast_1.FunctionVisibility.Public),
|
|
213
|
+
...ast.vStateVariables.filter((getter) => getter.visibility === solc_typed_ast_1.StateVariableVisibility.Public)
|
|
214
|
+
];
|
|
215
|
+
for (const node of candidates) {
|
|
216
|
+
if (inf.signatureHash(node) === selector) {
|
|
217
|
+
return [contract, node];
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
200
223
|
}
|
|
201
224
|
exports.ArtifactManager = ArtifactManager;
|
|
202
225
|
//# sourceMappingURL=artifact_manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"artifact_manager.js","sourceRoot":"","sources":["../../src/debug/artifact_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import { PrecompileInput } from "@ethereumjs/vm/dist/evm/precompiles";
|
|
2
|
+
import { EVMInterface, EVM } from "@ethereumjs/evm";
|
|
3
|
+
import { PrecompileFunc } from "@ethereumjs/evm/dist/precompiles";
|
|
5
4
|
import { Address } from "ethereumjs-util";
|
|
6
|
-
import Interpreter from "@ethereumjs/
|
|
7
|
-
import EEI from "@ethereumjs/vm/dist/evm/eei";
|
|
5
|
+
import { Env, Interpreter } from "@ethereumjs/evm/dist/interpreter";
|
|
8
6
|
import EventEmitter from "events";
|
|
9
7
|
/**
|
|
10
8
|
* Each test/cases/debug session is associated with a unique VM. And there are
|
|
@@ -12,7 +10,7 @@ import EventEmitter from "events";
|
|
|
12
10
|
* that after we are done working with some VM, we don't unnecessarily invoke
|
|
13
11
|
* its callbacks.
|
|
14
12
|
*/
|
|
15
|
-
export declare const interpRunListeners: Map<
|
|
13
|
+
export declare const interpRunListeners: Map<EVM, EventEmitter>;
|
|
16
14
|
export declare const FoundryCheatcodesAddress: Address;
|
|
17
15
|
export declare const WARP_SELECTOR: string;
|
|
18
16
|
export declare const ROLL_SELECTOR: string;
|
|
@@ -46,8 +44,8 @@ export declare class FoundryContext {
|
|
|
46
44
|
* objects, as there is a unique EEI object for each external call in the
|
|
47
45
|
* trace, and pranks are scoped to external calls.
|
|
48
46
|
*/
|
|
49
|
-
private
|
|
50
|
-
|
|
47
|
+
private envStack;
|
|
48
|
+
getEnv(): Env;
|
|
51
49
|
getPendingPrank(): FoundryPrank | undefined;
|
|
52
50
|
setPendingPrank(prank: FoundryPrank | undefined): void;
|
|
53
51
|
/**
|
|
@@ -59,7 +57,7 @@ export declare class FoundryContext {
|
|
|
59
57
|
/**
|
|
60
58
|
* Add a prank to a call frame identified by `eei`.
|
|
61
59
|
*/
|
|
62
|
-
addPrank(eei:
|
|
60
|
+
addPrank(eei: Env, prank: FoundryPrank): void;
|
|
63
61
|
/**
|
|
64
62
|
* Clear all active and pending pranks.
|
|
65
63
|
*/
|
|
@@ -81,10 +79,7 @@ export declare class FoundryContext {
|
|
|
81
79
|
*/
|
|
82
80
|
afterInterpRunCB(): void;
|
|
83
81
|
}
|
|
84
|
-
export declare function getFoundryCtx(
|
|
85
|
-
export declare function setFoundryCtx(
|
|
86
|
-
|
|
87
|
-
* Foundry cheatcodes precompile contract deployed at 0x7109709ECfa91a80626fF3989D68f67F5b1DD12D.
|
|
88
|
-
*/
|
|
89
|
-
export declare function FoundryCheatcodePrecompile(input: PrecompileInput): Promise<ExecResult>;
|
|
82
|
+
export declare function getFoundryCtx(evm: EVMInterface): FoundryContext;
|
|
83
|
+
export declare function setFoundryCtx(evm: EVMInterface, ctx: FoundryContext): void;
|
|
84
|
+
export declare function makeFoundryCheatcodePrecompile(): [PrecompileFunc, FoundryContext];
|
|
90
85
|
//# sourceMappingURL=foundry_cheatcodes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundry_cheatcodes.d.ts","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"foundry_cheatcodes.d.ts","sourceRoot":"","sources":["../../src/debug/foundry_cheatcodes.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAc,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAmB,MAAM,kCAAkC,CAAC;AACnF,OAAO,EACH,OAAO,EAKV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACH,GAAG,EACH,WAAW,EAGd,MAAM,kCAAkC,CAAC;AAC1C,OAAO,YAAY,MAAM,QAAQ,CAAC;AASlC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,wBAA+B,CAAC;AAwB/D,eAAO,MAAM,wBAAwB,SAEpC,CAAC;AAUF,eAAO,MAAM,aAAa,QAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,QAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,QAA0C,CAAC;AACrE,eAAO,MAAM,cAAc,QAAmD,CAAC;AAC/E,eAAO,MAAM,aAAa,QAA0C,CAAC;AACrE,eAAO,MAAM,aAAa,QAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,QAA0C,CAAC;AACrE,eAAO,MAAM,gBAAgB,QAAmC,CAAC;AACjE,eAAO,MAAM,gBAAgB,QAA2C,CAAC;AACzE,eAAO,MAAM,sBAAsB,QAAwC,CAAC;AAC5E,eAAO,MAAM,sBAAsB,QAAgD,CAAC;AACpF,eAAO,MAAM,mBAAmB,QAAgC,CAAC;AAEjE,eAAO,MAAM,QAAQ,QAAqE,CAAC;AAE3F,eAAO,MAAM,aAAa,QAKR,CAAC;AAEnB,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,cAAc;IAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAa;IACzC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAa;IAC5C,UAAU,UAAS;IAE1B;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAa;IAGtB,MAAM,IAAI,GAAG;IAKb,eAAe,IAAI,YAAY,GAAG,SAAS;IAS3C,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAQ7D;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAOpD;;OAEG;IACI,WAAW,IAAI,IAAI;IAO1B;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC;IA6B/E;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAe5C;;;OAGG;IACH,gBAAgB,IAAI,IAAI;CAG3B;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,cAAc,CAE/D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAE1E;AAED,wBAAgB,8BAA8B,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAoOjF"}
|