sol-dbg 0.6.13 → 0.7.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 +3 -3
- package/dist/artifacts/helpers.d.ts.map +1 -1
- package/dist/artifacts/helpers.js +17 -53
- package/dist/artifacts/helpers.js.map +1 -1
- package/dist/artifacts/solc.d.ts +1 -8
- package/dist/artifacts/solc.d.ts.map +1 -1
- package/dist/debug/abi.d.ts +11 -41
- package/dist/debug/abi.d.ts.map +1 -1
- package/dist/debug/abi.js +60 -294
- package/dist/debug/abi.js.map +1 -1
- package/dist/debug/artifact_manager/artifact_manager.d.ts +17 -42
- package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -1
- package/dist/debug/artifact_manager/artifact_manager.js +82 -21
- package/dist/debug/artifact_manager/artifact_manager.js.map +1 -1
- package/dist/debug/artifact_manager/bytecode_templates.d.ts +1 -1
- package/dist/debug/artifact_manager/bytecode_templates.d.ts.map +1 -1
- package/dist/debug/artifact_manager/bytecode_templates.js +3 -2
- package/dist/debug/artifact_manager/bytecode_templates.js.map +1 -1
- package/dist/debug/artifact_manager/index.d.ts +1 -0
- package/dist/debug/artifact_manager/index.d.ts.map +1 -1
- package/dist/debug/artifact_manager/index.js +1 -0
- package/dist/debug/artifact_manager/index.js.map +1 -1
- package/dist/debug/artifact_manager/types.d.ts +129 -0
- package/dist/debug/artifact_manager/types.d.ts.map +1 -0
- package/dist/debug/artifact_manager/types.js +12 -0
- package/dist/debug/artifact_manager/types.js.map +1 -0
- package/dist/debug/decoding/calldata/index.d.ts +2 -0
- package/dist/debug/decoding/calldata/index.d.ts.map +1 -0
- package/dist/debug/decoding/calldata/index.js +6 -0
- package/dist/debug/decoding/calldata/index.js.map +1 -0
- package/dist/debug/decoding/calldata/view.d.ts +74 -0
- package/dist/debug/decoding/calldata/view.d.ts.map +1 -0
- package/dist/debug/decoding/calldata/view.js +397 -0
- package/dist/debug/decoding/calldata/view.js.map +1 -0
- package/dist/debug/decoding/exp_types.d.ts +46 -0
- package/dist/debug/decoding/exp_types.d.ts.map +1 -0
- package/dist/debug/decoding/exp_types.js +202 -0
- package/dist/debug/decoding/exp_types.js.map +1 -0
- package/dist/debug/decoding/general.d.ts +5 -9
- package/dist/debug/decoding/general.d.ts.map +1 -1
- package/dist/debug/decoding/general.js +25 -103
- package/dist/debug/decoding/general.js.map +1 -1
- package/dist/debug/decoding/index.d.ts +1 -0
- package/dist/debug/decoding/index.d.ts.map +1 -1
- package/dist/debug/decoding/index.js +1 -0
- package/dist/debug/decoding/index.js.map +1 -1
- package/dist/debug/decoding/memory/index.d.ts +2 -0
- package/dist/debug/decoding/memory/index.d.ts.map +1 -0
- package/dist/debug/decoding/memory/index.js +6 -0
- package/dist/debug/decoding/memory/index.js.map +1 -0
- package/dist/debug/decoding/memory/view.d.ts +44 -0
- package/dist/debug/decoding/memory/view.d.ts.map +1 -0
- package/dist/debug/decoding/memory/view.js +183 -0
- package/dist/debug/decoding/memory/view.js.map +1 -0
- package/dist/debug/decoding/stack/index.d.ts +2 -0
- package/dist/debug/decoding/stack/index.d.ts.map +1 -0
- package/dist/debug/decoding/stack/index.js +6 -0
- package/dist/debug/decoding/stack/index.js.map +1 -0
- package/dist/debug/decoding/stack/view.d.ts +29 -0
- package/dist/debug/decoding/stack/view.d.ts.map +1 -0
- package/dist/debug/decoding/stack/view.js +116 -0
- package/dist/debug/decoding/stack/view.js.map +1 -0
- package/dist/debug/decoding/storage/index.d.ts +2 -0
- package/dist/debug/decoding/storage/index.d.ts.map +1 -0
- package/dist/debug/decoding/storage/index.js +6 -0
- package/dist/debug/decoding/storage/index.js.map +1 -0
- package/dist/debug/decoding/storage/view.d.ts +90 -0
- package/dist/debug/decoding/storage/view.d.ts.map +1 -0
- package/dist/debug/decoding/storage/view.js +465 -0
- package/dist/debug/decoding/storage/view.js.map +1 -0
- package/dist/debug/decoding/utils.d.ts +17 -0
- package/dist/debug/decoding/utils.d.ts.map +1 -0
- package/dist/debug/decoding/utils.js +43 -0
- package/dist/debug/decoding/utils.js.map +1 -0
- package/dist/debug/decoding/value.d.ts +50 -0
- package/dist/debug/decoding/value.d.ts.map +1 -0
- package/dist/debug/decoding/value.js +106 -0
- package/dist/debug/decoding/value.js.map +1 -0
- package/dist/debug/decoding/view.d.ts +20 -0
- package/dist/debug/decoding/view.d.ts.map +1 -0
- package/dist/debug/decoding/view.js +15 -0
- package/dist/debug/decoding/view.js.map +1 -0
- package/dist/debug/foundry_cheatcodes.js +6 -6
- package/dist/debug/foundry_cheatcodes.js.map +1 -1
- package/dist/debug/layout.d.ts +4 -6
- package/dist/debug/layout.d.ts.map +1 -1
- package/dist/debug/layout.js +13 -77
- package/dist/debug/layout.js.map +1 -1
- package/dist/debug/opcode_interposing.js +3 -3
- package/dist/debug/opcode_interposing.js.map +1 -1
- package/dist/debug/opcodes.d.ts.map +1 -1
- package/dist/debug/opcodes.js +3 -1
- package/dist/debug/opcodes.js.map +1 -1
- package/dist/debug/tracers/sol_debugger.d.ts.map +1 -1
- package/dist/debug/tracers/sol_debugger.js +2 -1
- package/dist/debug/tracers/sol_debugger.js.map +1 -1
- package/dist/debug/tracers/transformers/basic_info.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/basic_info.js +4 -3
- package/dist/debug/tracers/transformers/basic_info.js.map +1 -1
- package/dist/debug/tracers/transformers/events.js +2 -2
- package/dist/debug/tracers/transformers/events.js.map +1 -1
- package/dist/debug/tracers/transformers/exc_info.d.ts +15 -0
- package/dist/debug/tracers/transformers/exc_info.d.ts.map +1 -0
- package/dist/debug/tracers/transformers/exc_info.js +39 -0
- package/dist/debug/tracers/transformers/exc_info.js.map +1 -0
- package/dist/debug/tracers/transformers/ext_stack.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/ext_stack.js +11 -26
- package/dist/debug/tracers/transformers/ext_stack.js.map +1 -1
- package/dist/debug/tracers/transformers/index.d.ts +1 -0
- package/dist/debug/tracers/transformers/index.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/index.js +1 -0
- package/dist/debug/tracers/transformers/index.js.map +1 -1
- package/dist/debug/tracers/transformers/int_stack.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/int_stack.js +5 -13
- package/dist/debug/tracers/transformers/int_stack.js.map +1 -1
- package/dist/debug/tracers/transformers/keccak256_invert.js +4 -4
- package/dist/debug/tracers/transformers/keccak256_invert.js.map +1 -1
- package/dist/debug/tracers/transformers/ret_info.d.ts +1 -1
- package/dist/debug/tracers/transformers/ret_info.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/ret_info.js +46 -32
- package/dist/debug/tracers/transformers/ret_info.js.map +1 -1
- package/dist/debug/types.d.ts +63 -22
- package/dist/debug/types.d.ts.map +1 -1
- package/dist/debug/types.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 +16 -11
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +37 -49
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/pp.d.ts +3 -1
- package/dist/utils/pp.d.ts.map +1 -1
- package/dist/utils/pp.js +10 -27
- package/dist/utils/pp.js.map +1 -1
- package/dist/utils/solidity.d.ts +11 -0
- package/dist/utils/solidity.d.ts.map +1 -0
- package/dist/utils/solidity.js +69 -0
- package/dist/utils/solidity.js.map +1 -0
- package/dist/utils/test_runner.d.ts +5 -2
- package/dist/utils/test_runner.d.ts.map +1 -1
- package/dist/utils/test_runner.js +11 -7
- package/dist/utils/test_runner.js.map +1 -1
- package/dist/utils/trace.d.ts +5 -1
- package/dist/utils/trace.d.ts.map +1 -1
- package/dist/utils/trace.js +16 -0
- package/dist/utils/trace.js.map +1 -1
- package/dist/utils/types.d.ts +9 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +8 -4
- package/dist/debug/decoding/calldata.d.ts +0 -6
- package/dist/debug/decoding/calldata.d.ts.map +0 -1
- package/dist/debug/decoding/calldata.js +0 -244
- package/dist/debug/decoding/calldata.js.map +0 -1
- package/dist/debug/decoding/memory.d.ts +0 -4
- package/dist/debug/decoding/memory.d.ts.map +0 -1
- package/dist/debug/decoding/memory.js +0 -216
- package/dist/debug/decoding/memory.js.map +0 -1
- package/dist/debug/decoding/stack.d.ts +0 -9
- package/dist/debug/decoding/stack.d.ts.map +0 -1
- package/dist/debug/decoding/stack.js +0 -84
- package/dist/debug/decoding/stack.js.map +0 -1
- package/dist/debug/decoding/storage.d.ts +0 -7
- package/dist/debug/decoding/storage.d.ts.map +0 -1
- package/dist/debug/decoding/storage.js +0 -393
- package/dist/debug/decoding/storage.js.map +0 -1
|
@@ -4,6 +4,7 @@ export type TransformerF<T extends object, T1 extends T> = (vm: VM, step: Interp
|
|
|
4
4
|
export * from "./basic_info";
|
|
5
5
|
export * from "./contract_lifetime";
|
|
6
6
|
export * from "./events";
|
|
7
|
+
export * from "./exc_info";
|
|
7
8
|
export * from "./ext_stack";
|
|
8
9
|
export * from "./int_stack";
|
|
9
10
|
export * from "./keccak256_invert";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,CAAC,IAAI,CACvD,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,EAAE,EAAE,KACV,EAAE,CAAC;AAER,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,SAAS,CAAC,IAAI,CACvD,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,EAAE,EAAE,KACV,EAAE,CAAC;AAER,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,MAAM,CAAC;AACrB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./basic_info"), exports);
|
|
18
18
|
__exportStar(require("./contract_lifetime"), exports);
|
|
19
19
|
__exportStar(require("./events"), exports);
|
|
20
|
+
__exportStar(require("./exc_info"), exports);
|
|
20
21
|
__exportStar(require("./ext_stack"), exports);
|
|
21
22
|
__exportStar(require("./int_stack"), exports);
|
|
22
23
|
__exportStar(require("./keccak256_invert"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAUA,+CAA6B;AAC7B,sDAAoC;AACpC,2CAAyB;AACzB,8CAA4B;AAC5B,8CAA4B;AAC5B,qDAAmC;AACnC,uCAAqB;AACrB,6CAA2B;AAC3B,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAUA,+CAA6B;AAC7B,sDAAoC;AACpC,2CAAyB;AACzB,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,qDAAmC;AACnC,uCAAqB;AACrB,6CAA2B;AAC3B,2CAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"int_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,
|
|
1
|
+
{"version":3,"file":"int_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAoB,iBAAiB,EAAS,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACjC;AA4DD;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,CAAC,SAAS,MAAM,GAAG,aAAa,GAAG,iBAAiB,GAAG,UAAU,EAEjE,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,iBAAiB,CAAC,EACnC,eAAe,EAAE,gBAAgB,EACjC,MAAM,EAAE,OAAO,GAChB,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CA0HhC"}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addInternalFrameInfo = addInternalFrameInfo;
|
|
4
4
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
5
|
-
const
|
|
5
|
+
const utils_1 = require("../../decoding/utils");
|
|
6
6
|
const opcodes_1 = require("../../opcodes");
|
|
7
7
|
const types_1 = require("../../types");
|
|
8
8
|
const ext_stack_1 = require("./ext_stack");
|
|
9
|
+
const decoding_1 = require("../../decoding");
|
|
9
10
|
function topFrame(step) {
|
|
10
11
|
if (step.intStack.length > 0) {
|
|
11
12
|
return step.intStack[step.intStack.length - 1];
|
|
@@ -15,7 +16,7 @@ function topFrame(step) {
|
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* Given a callable (function definition or public state variable) try to build
|
|
18
|
-
* `
|
|
19
|
+
* `View`s for all the callable arguments. On failure return undefined.
|
|
19
20
|
*/
|
|
20
21
|
function buildFunArgViews(callee, stack, contractInfo, artifactManager) {
|
|
21
22
|
const res = [];
|
|
@@ -40,22 +41,13 @@ function buildFunArgViews(callee, stack, contractInfo, artifactManager) {
|
|
|
40
41
|
let offsetFromTop = -1;
|
|
41
42
|
for (let i = formals.length - 1; i >= 0; i--) {
|
|
42
43
|
const [name, typ] = formals[i];
|
|
43
|
-
const stackSize = (0,
|
|
44
|
+
const stackSize = (0, utils_1.isCalldataArrayType)(typ) ? 2 : 1;
|
|
44
45
|
offsetFromTop += stackSize;
|
|
45
46
|
if (offsetFromTop > stack.length) {
|
|
46
47
|
// Stack underflow. Could be due to optimized code?
|
|
47
48
|
return undefined;
|
|
48
49
|
}
|
|
49
|
-
res.unshift([
|
|
50
|
-
name,
|
|
51
|
-
{
|
|
52
|
-
type: typ,
|
|
53
|
-
loc: {
|
|
54
|
-
kind: types_1.DataLocationKind.Stack,
|
|
55
|
-
offsetFromTop
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
]);
|
|
50
|
+
res.unshift([name, (0, decoding_1.makeStackView)((0, decoding_1.simplifyType)(typ, infer, undefined), offsetFromTop)]);
|
|
59
51
|
}
|
|
60
52
|
return res;
|
|
61
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"int_stack.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"int_stack.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/int_stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getKeccakPreimages = getKeccakPreimages;
|
|
4
4
|
exports.getMapKeys = getMapKeys;
|
|
5
5
|
exports.addKeccakInvertInfo = addKeccakInvertInfo;
|
|
6
|
-
const
|
|
6
|
+
const misc_1 = require("../../../utils/misc");
|
|
7
7
|
const opcodes_1 = require("../../opcodes");
|
|
8
8
|
/**
|
|
9
9
|
* Given a trace of contract creation/deletion event compute a gen/kill set summary for the trace.
|
|
@@ -28,7 +28,7 @@ function getMapKeys(preImageMap) {
|
|
|
28
28
|
continue;
|
|
29
29
|
}
|
|
30
30
|
const keySuffix = origKey.slice(-32);
|
|
31
|
-
const slot = (0,
|
|
31
|
+
const slot = (0, misc_1.bigEndianBufToBigint)(keySuffix);
|
|
32
32
|
if (!res.has(slot)) {
|
|
33
33
|
res.set(slot, []);
|
|
34
34
|
}
|
|
@@ -49,9 +49,9 @@ function addKeccakInvertInfo(vm, step, state, trace) {
|
|
|
49
49
|
if (!(lastStep.op.opcode === opcodes_1.OPCODES.SHA3)) {
|
|
50
50
|
return state;
|
|
51
51
|
}
|
|
52
|
-
const res = (0,
|
|
52
|
+
const res = (0, misc_1.bigEndianBufToBigint)(state.evmStack[state.evmStack.length - 1]);
|
|
53
53
|
const lastStepTop = lastStep.evmStack.length - 1;
|
|
54
|
-
const preImage = (0,
|
|
54
|
+
const preImage = (0, misc_1.mustReadMem)(lastStep.evmStack[lastStepTop], lastStep.evmStack[lastStepTop - 1], lastStep.memory);
|
|
55
55
|
return {
|
|
56
56
|
keccak: {
|
|
57
57
|
from: preImage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keccak256_invert.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/keccak256_invert.ts"],"names":[],"mappings":";;AAiBA,gDAOC;AAYD,gCAuBC;AAKD,kDAgCC;AA9FD,
|
|
1
|
+
{"version":3,"file":"keccak256_invert.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/keccak256_invert.ts"],"names":[],"mappings":";;AAiBA,gDAOC;AAYD,gCAuBC;AAKD,kDAgCC;AA9FD,8CAAwE;AACxE,2CAAwC;AAWxC;;GAEG;AACH,SAAgB,kBAAkB,CAAC,KAA4B;IAC3D,OAAO,KAAK,CAAC,MAAM,CAAoB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;AAClB,CAAC;AASD;;GAEG;AACH,SAAgB,UAAU,CAAC,WAA8B;IACrD,MAAM,GAAG,GAAY,IAAI,GAAG,EAAE,CAAC;IAE/B,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,WAAW,EAAE,CAAC;QAC7C,sFAAsF;QACtF,oFAAoF;QACpF,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACvB,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAA,2BAAoB,EAAC,SAAS,CAAC,CAAC;QAE7C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtB,CAAC;QAED,8HAA8H;QAC9H,gBAAgB;QACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAiC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAC/B,EAAM,EACN,IAAqB,EACrB,KAAQ,EACR,KAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,iBAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,IAAA,2BAAoB,EAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAA,kBAAW,EACxB,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC9B,QAAQ,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,EAClC,QAAQ,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,GAAG;SACV;QACD,GAAG,KAAK;KACX,CAAC;AACN,CAAC"}
|
|
@@ -11,7 +11,7 @@ export interface ReturnInfo {
|
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
* Adds return info for steps in the
|
|
14
|
+
* Adds return info for steps in the callee context, right after a return.
|
|
15
15
|
*/
|
|
16
16
|
export declare function addReturnInfo<T extends object & BasicStepInfo & ExternalFrameInfo>(vm: VM, step: InterpreterStep, state: T, trace: Array<T & ReturnInfo>, artifactManager: IArtifactManager): Promise<T & ReturnInfo>;
|
|
17
17
|
//# sourceMappingURL=ret_info.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ret_info.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ret_info.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AASpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAe,MAAM,aAAa,CAAC;AAI7D,MAAM,WAAW,UAAU;IACvB,OAAO,CAAC,EAAE;QAEN,aAAa,EAAE,MAAM,CAAC;QAEtB,aAAa,EAAE,UAAU,CAAC;QAE1B,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;KAC7B,CAAC;CACL;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,GAAG,iBAAiB,EACpF,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,EAC5B,eAAe,EAAE,gBAAgB,GAClC,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAwFzB"}
|
|
@@ -2,32 +2,40 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addReturnInfo = addReturnInfo;
|
|
4
4
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
5
|
-
const
|
|
6
|
-
const decoding_1 = require("../../decoding");
|
|
5
|
+
const misc_1 = require("../../../utils/misc");
|
|
7
6
|
const opcodes_1 = require("../../opcodes");
|
|
8
7
|
const types_1 = require("../../types");
|
|
9
8
|
const ext_stack_1 = require("./ext_stack");
|
|
9
|
+
const view_1 = require("../../decoding/calldata/view");
|
|
10
|
+
const decoding_1 = require("../../decoding");
|
|
10
11
|
/**
|
|
11
|
-
* Adds return info for steps in the
|
|
12
|
+
* Adds return info for steps in the callee context, right after a return.
|
|
12
13
|
*/
|
|
13
14
|
async function addReturnInfo(vm, step, state, trace, artifactManager) {
|
|
14
|
-
if (
|
|
15
|
-
return state;
|
|
16
|
-
}
|
|
17
|
-
const lastStep = trace[trace.length - 1];
|
|
18
|
-
if (lastStep.op.opcode !== opcodes_1.OPCODES.RETURN && lastStep.op.opcode !== opcodes_1.OPCODES.STOP) {
|
|
15
|
+
if (state.op.opcode !== opcodes_1.OPCODES.RETURN && state.op.opcode !== opcodes_1.OPCODES.STOP) {
|
|
19
16
|
return state;
|
|
20
17
|
}
|
|
21
|
-
const
|
|
22
|
-
const callStartStep =
|
|
23
|
-
const rawReturnData =
|
|
24
|
-
? (0,
|
|
18
|
+
const extFrame = (0, ext_stack_1.topExtFrame)(state);
|
|
19
|
+
const callStartStep = extFrame.startStep;
|
|
20
|
+
const rawReturnData = state.op.opcode === opcodes_1.OPCODES.RETURN
|
|
21
|
+
? (0, misc_1.mustReadMem)((0, misc_1.stackTop)(state.evmStack), (0, misc_1.stackInd)(state.evmStack, 1), state.memory)
|
|
25
22
|
: new Uint8Array(0);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
// Special case: For creation frames we know that the consturctor doesn't "return anything" at the Solidity level
|
|
24
|
+
if (extFrame.kind === types_1.FrameKind.Creation) {
|
|
25
|
+
return {
|
|
26
|
+
...state,
|
|
27
|
+
retInfo: {
|
|
28
|
+
callStartStep,
|
|
29
|
+
rawReturnData,
|
|
30
|
+
decodedReturnData: []
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (!(extFrame.info &&
|
|
35
|
+
(extFrame.callee instanceof solc_typed_ast_1.FunctionDefinition ||
|
|
36
|
+
(extFrame.callee instanceof solc_typed_ast_1.VariableDeclaration &&
|
|
37
|
+
extFrame.callee.stateVariable &&
|
|
38
|
+
extFrame.callee.visibility === solc_typed_ast_1.StateVariableVisibility.Public)))) {
|
|
31
39
|
return {
|
|
32
40
|
...state,
|
|
33
41
|
retInfo: {
|
|
@@ -36,11 +44,15 @@ async function addReturnInfo(vm, step, state, trace, artifactManager) {
|
|
|
36
44
|
}
|
|
37
45
|
};
|
|
38
46
|
}
|
|
39
|
-
const infer = artifactManager.infer(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
const infer = artifactManager.infer(extFrame.info.artifact.compilerVersion);
|
|
48
|
+
let type;
|
|
49
|
+
try {
|
|
50
|
+
type =
|
|
51
|
+
extFrame.callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
52
|
+
? infer.funDefToType(extFrame.callee)
|
|
53
|
+
: infer.getterFunType(extFrame.callee);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
44
56
|
return {
|
|
45
57
|
...state,
|
|
46
58
|
retInfo: {
|
|
@@ -50,17 +62,19 @@ async function addReturnInfo(vm, step, state, trace, artifactManager) {
|
|
|
50
62
|
}
|
|
51
63
|
};
|
|
52
64
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
decodedReturnData = decodeRes[0];
|
|
65
|
+
if (type.returns.length === 0) {
|
|
66
|
+
return {
|
|
67
|
+
...state,
|
|
68
|
+
retInfo: {
|
|
69
|
+
callStartStep,
|
|
70
|
+
rawReturnData,
|
|
71
|
+
decodedReturnData: []
|
|
72
|
+
}
|
|
73
|
+
};
|
|
63
74
|
}
|
|
75
|
+
// We treat these as in calldata, since they should already be abi-encoded in memory for the Return instruction
|
|
76
|
+
const views = (0, view_1.makeCalldataViews)(type.returns.map((t) => (0, decoding_1.simplifyType)(t, infer, solc_typed_ast_1.DataLocation.CallData)), 0n);
|
|
77
|
+
const decodedReturnData = views.map((v) => v.decode(rawReturnData));
|
|
64
78
|
return {
|
|
65
79
|
...state,
|
|
66
80
|
retInfo: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ret_info.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ret_info.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ret_info.ts"],"names":[],"mappings":"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"}
|
package/dist/debug/types.d.ts
CHANGED
|
@@ -1,25 +1,18 @@
|
|
|
1
1
|
import { Address } from "@ethereumjs/util";
|
|
2
2
|
import * as sol from "solc-typed-ast";
|
|
3
3
|
import { FunctionDefinition } from "solc-typed-ast";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { ArtifactInfo, ContractInfo } from "./artifact_manager";
|
|
4
|
+
import { ImmMap } from "../utils/immutable_map";
|
|
5
|
+
import { ArtifactInfo, ContractInfo } from "./artifact_manager/types";
|
|
7
6
|
import { EVMOpInfo } from "./opcodes";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export
|
|
17
|
-
contract: DeployedContractInfo | undefined;
|
|
18
|
-
start: number;
|
|
19
|
-
length: number;
|
|
20
|
-
jump: "o" | "i" | "-";
|
|
21
|
-
file: number;
|
|
22
|
-
}
|
|
7
|
+
import { View } from "./decoding/view";
|
|
8
|
+
/**
|
|
9
|
+
* A type alias for 0x-prefixed hex strings. Used for documentation purposes.
|
|
10
|
+
*/
|
|
11
|
+
export type HexString = string;
|
|
12
|
+
/**
|
|
13
|
+
* A type alias for hex strings without 0x prefix. Used for documentation purposes.
|
|
14
|
+
*/
|
|
15
|
+
export type UnprefixedHexString = string;
|
|
23
16
|
export type DecodedSolValue = {
|
|
24
17
|
value: any;
|
|
25
18
|
type: string;
|
|
@@ -56,7 +49,7 @@ export interface BaseFrame {
|
|
|
56
49
|
* If we have a `callee` try and infer where the arguments are placed in the VM state. Some arguments may not
|
|
57
50
|
* exist in the case of msg.data generated from a fuzzer for example.
|
|
58
51
|
*/
|
|
59
|
-
readonly arguments: Array<[string,
|
|
52
|
+
readonly arguments: Array<[string, View]> | undefined;
|
|
60
53
|
readonly startStep: number;
|
|
61
54
|
}
|
|
62
55
|
/**
|
|
@@ -116,6 +109,7 @@ export interface BaseMemoryLocation extends BaseDataLocation {
|
|
|
116
109
|
}
|
|
117
110
|
export interface CalldataLocation extends BaseMemoryLocation {
|
|
118
111
|
kind: DataLocationKind.CallData;
|
|
112
|
+
base: bigint;
|
|
119
113
|
}
|
|
120
114
|
export interface LinearMemoryLocation extends BaseMemoryLocation {
|
|
121
115
|
kind: DataLocationKind.Memory;
|
|
@@ -166,24 +160,71 @@ export interface StepVMState {
|
|
|
166
160
|
}
|
|
167
161
|
/**
|
|
168
162
|
* State that the debugger maintains for each trace step.
|
|
169
|
-
* It includes the basic VM state (`StepVmState`) and
|
|
170
|
-
*
|
|
171
|
-
* that may be emitted on this step.
|
|
163
|
+
* It includes the basic VM state (`StepVmState`) and all the info computed
|
|
164
|
+
* by additional transformers
|
|
172
165
|
*/
|
|
173
166
|
export interface StepState extends StepVMState {
|
|
167
|
+
/**
|
|
168
|
+
* List of external call frames
|
|
169
|
+
*/
|
|
174
170
|
stack: ExternalFrame[];
|
|
171
|
+
/**
|
|
172
|
+
* If the current instruction is a return, include return information
|
|
173
|
+
*/
|
|
175
174
|
retInfo?: {
|
|
175
|
+
/**
|
|
176
|
+
* Step at which the call that just returned started
|
|
177
|
+
*/
|
|
176
178
|
callStartStep: number;
|
|
179
|
+
/**
|
|
180
|
+
* Raw returned data
|
|
181
|
+
*/
|
|
177
182
|
rawReturnData: Uint8Array;
|
|
183
|
+
/**
|
|
184
|
+
* Decoded returned data (if ast info is available)
|
|
185
|
+
*/
|
|
178
186
|
decodedReturnData?: any[];
|
|
179
187
|
};
|
|
188
|
+
/**
|
|
189
|
+
* If the current instruction throws an exception, includes exception info
|
|
190
|
+
*/
|
|
191
|
+
excInfo?: {
|
|
192
|
+
/**
|
|
193
|
+
* Raw exception bytes
|
|
194
|
+
*/
|
|
195
|
+
data: Uint8Array;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Internal call stack at the current instruction
|
|
199
|
+
*/
|
|
180
200
|
intStack: InternalCallFrame[];
|
|
201
|
+
/**
|
|
202
|
+
* Source location for the current instruction (if a src map is available)
|
|
203
|
+
*/
|
|
181
204
|
src: sol.DecodedBytecodeSourceMapEntry | undefined;
|
|
205
|
+
/**
|
|
206
|
+
* AST node that corresponds to the source location of the current instruction (if any)
|
|
207
|
+
*/
|
|
182
208
|
astNode: sol.ASTNode | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* If the current instruction emits an event, includes the raw event info
|
|
211
|
+
*/
|
|
183
212
|
emittedEvent: EventDesc | undefined;
|
|
213
|
+
/**
|
|
214
|
+
* If we were able to decode the event, include the decoded event info
|
|
215
|
+
*/
|
|
184
216
|
decodedEvent: DecodedEventDesc | undefined;
|
|
217
|
+
/**
|
|
218
|
+
* If this is the instruction after we return from a create call, add the newly created address here.
|
|
219
|
+
*/
|
|
185
220
|
contractCreated?: Address;
|
|
221
|
+
/**
|
|
222
|
+
* If this is a SELFDESTRUCT instruction, recored the destroyed contract
|
|
223
|
+
*/
|
|
186
224
|
contractKilled?: Address;
|
|
225
|
+
/**
|
|
226
|
+
* If this is a KECCAK256 instruction record the preimage and the hash
|
|
227
|
+
*/
|
|
187
228
|
keccak?: {
|
|
188
229
|
from: Uint8Array;
|
|
189
230
|
to: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":"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"}
|
package/dist/debug/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/debug/types.ts"],"names":[],"mappings":";;;AAmGA,0BAQC;AA/ED,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,2CAA8B,CAAA;AAClC,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAmED,SAAgB,OAAO,CAAC,CAAM;IAC1B,OAAO,CACH,CAAC,YAAY,MAAM;QACnB,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;YACtB,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;YAC7B,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,YAAY,CAAC,CACzC,CAAC;AACN,CAAC;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;AACzB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,MAAM,CAAC;AACrB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,MAAM,CAAC;AACrB,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -19,6 +19,7 @@ __exportStar(require("./map"), exports);
|
|
|
19
19
|
__exportStar(require("./misc"), exports);
|
|
20
20
|
__exportStar(require("./pp"), exports);
|
|
21
21
|
__exportStar(require("./set"), exports);
|
|
22
|
+
__exportStar(require("./solidity"), exports);
|
|
22
23
|
__exportStar(require("./srcmap"), exports);
|
|
23
24
|
__exportStar(require("./test_runner"), exports);
|
|
24
25
|
__exportStar(require("./trace"), exports);
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,wCAAsB;AACtB,yCAAuB;AACvB,uCAAqB;AACrB,wCAAsB;AACtB,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,wCAAsB;AACtB,yCAAuB;AACvB,uCAAqB;AACrB,wCAAsB;AACtB,6CAA2B;AAC3B,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB"}
|
package/dist/utils/misc.d.ts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { Common } from "@ethereumjs/common";
|
|
2
2
|
import { TypedTransaction, TypedTxData } from "@ethereumjs/tx";
|
|
3
3
|
import { Address } from "@ethereumjs/util";
|
|
4
|
-
import {
|
|
5
|
-
import { HexString, UnprefixedHexString } from "
|
|
6
|
-
import { DataLocation, DataView, Stack, Storage } from "../debug/types";
|
|
4
|
+
import { AddressType, BoolType, FixedBytesType, FunctionDefinition, InferType, IntType } from "solc-typed-ast";
|
|
5
|
+
import { DataLocation, DataView, HexString, Stack, Storage, UnprefixedHexString } from "../debug/types";
|
|
7
6
|
export declare const ZERO_ADDRESS_STRING: HexString;
|
|
8
7
|
export declare const ZERO_ADDRESS: Address;
|
|
9
8
|
export declare const uint256: IntType;
|
|
9
|
+
export declare const uint8: IntType;
|
|
10
|
+
export declare const bytes4: FixedBytesType;
|
|
11
|
+
export declare const bool: BoolType;
|
|
12
|
+
export declare const address: AddressType;
|
|
10
13
|
export declare const MAX_ARR_DECODE_LIMIT: bigint;
|
|
11
14
|
export declare function toHexString(n: number | bigint | Uint8Array, padding?: number): HexString;
|
|
12
15
|
export declare function bigIntToBuf(n: bigint, size: number, endianness?: "big" | "little"): Uint8Array;
|
|
13
16
|
export declare function hexStrToBuf32(v: UnprefixedHexString): Uint8Array;
|
|
14
17
|
export declare function makeFakeTransaction(txData: TypedTxData, from: string, common: Common): TypedTransaction;
|
|
15
|
-
export declare function findContractDef(units: SourceUnit[], fileName: string, contractName: string): ContractDefinition | undefined;
|
|
16
|
-
export declare function resolveConstructor(contract: ContractDefinition): FunctionDefinition | undefined;
|
|
17
18
|
/**
|
|
18
19
|
* Return the (inclusive) limits of a 2's complement int type as a pair `[min, max]` `bigint`s
|
|
19
20
|
*/
|
|
@@ -23,12 +24,6 @@ export declare function ppLoc(loc: DataLocation): string;
|
|
|
23
24
|
export declare function ppView(view: DataView): string;
|
|
24
25
|
export declare function ppStorage(storage: Storage): string;
|
|
25
26
|
export declare function ppEvmStack(stack: Stack): string;
|
|
26
|
-
/**
|
|
27
|
-
* Given an `offset` into some memory `buf` check that its in-bounds.
|
|
28
|
-
* Since `offset` may be a bigint we must check that it can be cast to Number without
|
|
29
|
-
* loss of precision and afterwards, whether it fits into the buf.
|
|
30
|
-
*/
|
|
31
|
-
export declare function checkAddrOoB(offset: bigint | number, buf: Uint8Array): number | undefined;
|
|
32
27
|
/**
|
|
33
28
|
* Try to read memory from offset start to start+len. If the access is OoB return undefined
|
|
34
29
|
*/
|
|
@@ -55,6 +50,14 @@ export declare function bigIntToNum(n: bigint): number;
|
|
|
55
50
|
export declare function getFunctionSelector(f: FunctionDefinition, infer: InferType): UnprefixedHexString | undefined;
|
|
56
51
|
export declare function sanitizeBigintFromJson(a: any): any;
|
|
57
52
|
export declare function zip<T1, T2>(a: T1[], b: T2[]): Array<[T1, T2]>;
|
|
53
|
+
/**
|
|
54
|
+
* Split a list into two lists based on a user-provided predicate.
|
|
55
|
+
*
|
|
56
|
+
* @param a
|
|
57
|
+
* @param pred
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
export declare function split<T>(a: T[], pred: (x: T) => boolean): [T[], T[]];
|
|
58
61
|
export declare function zip3<T1, T2, T3>(a: T1[], b: T2[], c: T3[]): Array<[T1, T2, T3]>;
|
|
59
62
|
export declare function stackTop<T>(stack: T[]): T;
|
|
60
63
|
/**
|
|
@@ -62,4 +65,6 @@ export declare function stackTop<T>(stack: T[]): T;
|
|
|
62
65
|
*/
|
|
63
66
|
export declare function stackInd<T>(stack: T[], i: number): T;
|
|
64
67
|
export declare function repeat<T>(x: T, n: number): T[];
|
|
68
|
+
export declare function nyi(s: string): never;
|
|
69
|
+
export declare function single<T>(a: T[]): T;
|
|
65
70
|
//# 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,
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"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"}
|