sol-dbg 0.8.18 → 0.9.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/debug/abi.d.ts +2 -2
- package/dist/debug/abi.d.ts.map +1 -1
- package/dist/debug/abi.js +14 -25
- package/dist/debug/abi.js.map +1 -1
- package/dist/debug/artifact_manager/artifact_manager.d.ts +1 -4
- package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -1
- package/dist/debug/artifact_manager/artifact_manager.js +10 -23
- package/dist/debug/artifact_manager/artifact_manager.js.map +1 -1
- package/dist/debug/decoding/calldata/view.d.ts +2 -2
- package/dist/debug/decoding/calldata/view.d.ts.map +1 -1
- package/dist/debug/decoding/calldata/view.js +3 -15
- package/dist/debug/decoding/calldata/view.js.map +1 -1
- package/dist/debug/decoding/memory/view.d.ts +2 -2
- package/dist/debug/decoding/memory/view.d.ts.map +1 -1
- package/dist/debug/decoding/memory/view.js +2 -2
- package/dist/debug/decoding/memory/view.js.map +1 -1
- package/dist/debug/decoding/storage/view.d.ts +3 -3
- package/dist/debug/decoding/storage/view.d.ts.map +1 -1
- package/dist/debug/decoding/storage/view.js +7 -29
- package/dist/debug/decoding/storage/view.js.map +1 -1
- package/dist/debug/decoding/utils.d.ts +1 -6
- package/dist/debug/decoding/utils.d.ts.map +1 -1
- package/dist/debug/decoding/utils.js +4 -59
- package/dist/debug/decoding/utils.js.map +1 -1
- package/dist/debug/decoding/value.d.ts +3 -2
- package/dist/debug/decoding/value.d.ts.map +1 -1
- package/dist/debug/decoding/value.js.map +1 -1
- package/dist/debug/decoding/view.js.map +1 -1
- package/dist/debug/layout.d.ts +2 -2
- package/dist/debug/layout.d.ts.map +1 -1
- package/dist/debug/layout.js +3 -4
- package/dist/debug/layout.js.map +1 -1
- package/dist/debug/runtime_types/ast/function_type.d.ts +3 -6
- package/dist/debug/runtime_types/ast/function_type.d.ts.map +1 -1
- package/dist/debug/runtime_types/ast/function_type.js +3 -10
- package/dist/debug/runtime_types/ast/function_type.js.map +1 -1
- package/dist/debug/runtime_types/ast/missing_type.d.ts +4 -3
- package/dist/debug/runtime_types/ast/missing_type.d.ts.map +1 -1
- package/dist/debug/runtime_types/ast/missing_type.js +6 -6
- package/dist/debug/runtime_types/ast/missing_type.js.map +1 -1
- package/dist/debug/runtime_types/ast/type_type.d.ts +2 -2
- package/dist/debug/runtime_types/ast/type_type.d.ts.map +1 -1
- package/dist/debug/runtime_types/ast/type_type.js.map +1 -1
- package/dist/debug/runtime_types/utils.d.ts +2 -25
- package/dist/debug/runtime_types/utils.d.ts.map +1 -1
- package/dist/debug/runtime_types/utils.js +59 -152
- package/dist/debug/runtime_types/utils.js.map +1 -1
- package/dist/debug/tracers/sol_debugger.js +1 -1
- package/dist/debug/tracers/sol_debugger.js.map +1 -1
- package/dist/debug/tracers/transformers/ext_stack.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/ext_stack.js +1 -2
- package/dist/debug/tracers/transformers/ext_stack.js.map +1 -1
- package/dist/debug/tracers/transformers/int_stack.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/int_stack.js +6 -21
- package/dist/debug/tracers/transformers/int_stack.js.map +1 -1
- package/dist/debug/tracers/transformers/ret_info.d.ts +1 -2
- package/dist/debug/tracers/transformers/ret_info.d.ts.map +1 -1
- package/dist/debug/tracers/transformers/ret_info.js +6 -21
- package/dist/debug/tracers/transformers/ret_info.js.map +1 -1
- package/dist/debug/types.d.ts +2 -3
- package/dist/debug/types.d.ts.map +1 -1
- package/dist/debug/types.js.map +1 -1
- package/dist/utils/misc.d.ts +2 -2
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +2 -7
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/pp.d.ts +1 -2
- package/dist/utils/pp.d.ts.map +1 -1
- package/dist/utils/pp.js +6 -10
- package/dist/utils/pp.js.map +1 -1
- package/dist/utils/solidity.d.ts +12 -1
- package/dist/utils/solidity.d.ts.map +1 -1
- package/dist/utils/solidity.js +29 -8
- package/dist/utils/solidity.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FunctionTypeId } from "solc-typed-ast";
|
|
2
2
|
import { BaseRuntimeType } from "./base_type";
|
|
3
3
|
export declare class FunctionType extends BaseRuntimeType {
|
|
4
|
-
readonly
|
|
5
|
-
|
|
6
|
-
readonly mutability: FunctionStateMutability;
|
|
7
|
-
readonly retTs: BaseRuntimeType[];
|
|
8
|
-
constructor(argTs: BaseRuntimeType[], external: boolean, mutability: FunctionStateMutability, retTs: BaseRuntimeType[]);
|
|
4
|
+
readonly solType: FunctionTypeId;
|
|
5
|
+
constructor(solType: FunctionTypeId);
|
|
9
6
|
pp(): string;
|
|
10
7
|
}
|
|
11
8
|
//# sourceMappingURL=function_type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function_type.d.ts","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/function_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"function_type.d.ts","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/function_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,YAAa,SAAQ,eAAe;aACjB,OAAO,EAAE,cAAc;gBAAvB,OAAO,EAAE,cAAc;IAInD,EAAE,IAAI,MAAM;CAGf"}
|
|
@@ -3,19 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FunctionType = void 0;
|
|
4
4
|
const base_type_1 = require("./base_type");
|
|
5
5
|
class FunctionType extends base_type_1.BaseRuntimeType {
|
|
6
|
-
constructor(
|
|
6
|
+
constructor(solType) {
|
|
7
7
|
super();
|
|
8
|
-
this.
|
|
9
|
-
this.external = external;
|
|
10
|
-
this.mutability = mutability;
|
|
11
|
-
this.retTs = retTs;
|
|
8
|
+
this.solType = solType;
|
|
12
9
|
}
|
|
13
10
|
pp() {
|
|
14
|
-
|
|
15
|
-
const retStr = this.retTs.length > 0
|
|
16
|
-
? `returns (${this.retTs.map((retT) => retT.pp()).join(", ")})`
|
|
17
|
-
: "";
|
|
18
|
-
return `function (${argStr})${this.external ? " external " : " "}${this.mutability} ${retStr}`;
|
|
11
|
+
return `<function ${this.solType.pp()}>`;
|
|
19
12
|
}
|
|
20
13
|
}
|
|
21
14
|
exports.FunctionType = FunctionType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function_type.js","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/function_type.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C,MAAa,YAAa,SAAQ,2BAAe;IAC7C,
|
|
1
|
+
{"version":3,"file":"function_type.js","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/function_type.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C,MAAa,YAAa,SAAQ,2BAAe;IAC7C,YAA4B,OAAuB;QAC/C,KAAK,EAAE,CAAC;QADgB,YAAO,GAAP,OAAO,CAAgB;IAEnD,CAAC;IAED,EAAE;QACE,OAAO,aAAa,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC;IAC7C,CAAC;CACJ;AARD,oCAQC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { TypeIdentifier } from "solc-typed-ast";
|
|
1
2
|
import { BaseRuntimeType } from "./base_type";
|
|
2
3
|
/**
|
|
3
4
|
* The local version of sol-dbg's MissingType.
|
|
4
5
|
* @todo may deprecate this in the future
|
|
5
6
|
*/
|
|
6
|
-
export declare class
|
|
7
|
-
readonly
|
|
8
|
-
constructor(
|
|
7
|
+
export declare class MissingTypeDef extends BaseRuntimeType {
|
|
8
|
+
readonly type: TypeIdentifier;
|
|
9
|
+
constructor(type: TypeIdentifier);
|
|
9
10
|
pp(): string;
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=missing_type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing_type.d.ts","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/missing_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"missing_type.d.ts","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/missing_type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,qBAAa,cAAe,SAAQ,eAAe;aACnB,IAAI,EAAE,cAAc;gBAApB,IAAI,EAAE,cAAc;IAIhD,EAAE,IAAI,MAAM;CAGf"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MissingTypeDef = void 0;
|
|
4
4
|
const base_type_1 = require("./base_type");
|
|
5
5
|
/**
|
|
6
6
|
* The local version of sol-dbg's MissingType.
|
|
7
7
|
* @todo may deprecate this in the future
|
|
8
8
|
*/
|
|
9
|
-
class
|
|
10
|
-
constructor(
|
|
9
|
+
class MissingTypeDef extends base_type_1.BaseRuntimeType {
|
|
10
|
+
constructor(type) {
|
|
11
11
|
super();
|
|
12
|
-
this.
|
|
12
|
+
this.type = type;
|
|
13
13
|
}
|
|
14
14
|
pp() {
|
|
15
|
-
return `<
|
|
15
|
+
return `<missing type def for ${this.type.pp()}"}>`;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
exports.
|
|
18
|
+
exports.MissingTypeDef = MissingTypeDef;
|
|
19
19
|
//# sourceMappingURL=missing_type.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing_type.js","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/missing_type.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"missing_type.js","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/missing_type.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C;;;GAGG;AACH,MAAa,cAAe,SAAQ,2BAAe;IAC/C,YAA4B,IAAoB;QAC5C,KAAK,EAAE,CAAC;QADgB,SAAI,GAAJ,IAAI,CAAgB;IAEhD,CAAC;IAED,EAAE;QACE,OAAO,yBAAyB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC;IACxD,CAAC;CACJ;AARD,wCAQC"}
|
|
@@ -5,8 +5,8 @@ import { BaseRuntimeType } from "./base_type";
|
|
|
5
5
|
* to have it here as it appears as an argument to `abi.decode`.
|
|
6
6
|
*/
|
|
7
7
|
export declare class TypeType extends BaseRuntimeType {
|
|
8
|
-
readonly rawT: sol.
|
|
9
|
-
constructor(rawT: sol.
|
|
8
|
+
readonly rawT: sol.TypeIdentifier;
|
|
9
|
+
constructor(rawT: sol.TypeIdentifier);
|
|
10
10
|
pp(): string;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=type_type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type_type.d.ts","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/type_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,eAAe;aACb,IAAI,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"type_type.d.ts","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/type_type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,eAAe;aACb,IAAI,EAAE,GAAG,CAAC,cAAc;gBAAxB,IAAI,EAAE,GAAG,CAAC,cAAc;IAIpD,EAAE,IAAI,MAAM;CAGf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type_type.js","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/type_type.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C;;;GAGG;AACH,MAAa,QAAS,SAAQ,2BAAe;IACzC,YAA4B,
|
|
1
|
+
{"version":3,"file":"type_type.js","sourceRoot":"","sources":["../../../../src/debug/runtime_types/ast/type_type.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAE9C;;;GAGG;AACH,MAAa,QAAS,SAAQ,2BAAe;IACzC,YAA4B,IAAwB;QAChD,KAAK,EAAE,CAAC;QADgB,SAAI,GAAJ,IAAI,CAAoB;IAEpD,CAAC;IAED,EAAE;QACE,OAAO,UAAU,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;IACvC,CAAC;CACJ;AARD,4BAQC"}
|
|
@@ -1,32 +1,9 @@
|
|
|
1
1
|
import * as sol from "solc-typed-ast";
|
|
2
2
|
import * as rtt from "./ast";
|
|
3
3
|
/**
|
|
4
|
-
* Convert the given solc-typed-ast
|
|
5
|
-
*
|
|
6
|
-
* - Convert `UserDefinedType(StructDefinition)` to `ExpStructType`
|
|
7
|
-
* - Convert `UserDefinedType(UserDefinedValueTypeDefinition)` to the underlying type
|
|
8
|
-
* - Convert `UserDefinedType(ContractDefinition)` to address
|
|
4
|
+
* Convert the given solc-typed-ast typeIdentifier to a runtime types. This does the following conversions:
|
|
9
5
|
*
|
|
10
6
|
* @param rawT
|
|
11
7
|
*/
|
|
12
|
-
export declare function
|
|
13
|
-
/**
|
|
14
|
-
* Given a general runtime type 'pattern' that doesn't contain any data locations, and a data location,
|
|
15
|
-
* produce a concrete instance of the general type for the target location.
|
|
16
|
-
* This is the inverse of `specializeType()`
|
|
17
|
-
*
|
|
18
|
-
* @param type - general type "pattern"
|
|
19
|
-
* @param loc - target location to specialize to
|
|
20
|
-
* @returns specialized type
|
|
21
|
-
*/
|
|
22
|
-
export declare function specializeType(type: rtt.BaseRuntimeType, loc: sol.DataLocation): rtt.BaseRuntimeType;
|
|
23
|
-
/**
|
|
24
|
-
* Given a `BaseRuntimeType` `type` that is specialized to some storage location,
|
|
25
|
-
* compute the original 'general' type that is independent of location.
|
|
26
|
-
* This is the inverse of `specializeType()`
|
|
27
|
-
*
|
|
28
|
-
* @param type - specialized type
|
|
29
|
-
* @returns computed generalized type
|
|
30
|
-
*/
|
|
31
|
-
export declare function generalizeType(type: rtt.BaseRuntimeType): rtt.BaseRuntimeType;
|
|
8
|
+
export declare function typeIdToRuntimeType(rawT: sol.TypeIdentifier, ctx: sol.ASTContext, loc?: sol.DataLocation): rtt.BaseRuntimeType;
|
|
32
9
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/debug/runtime_types/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/debug/runtime_types/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAQ7B;;;;GAIG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,GAAG,CAAC,cAAc,EACxB,GAAG,EAAE,GAAG,CAAC,UAAU,EACnB,GAAG,CAAC,EAAE,GAAG,CAAC,YAAY,GACvB,GAAG,CAAC,eAAe,CAkGrB"}
|
|
@@ -33,181 +33,88 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
37
|
-
exports.specializeType = specializeType;
|
|
38
|
-
exports.generalizeType = generalizeType;
|
|
36
|
+
exports.typeIdToRuntimeType = typeIdToRuntimeType;
|
|
39
37
|
const sol = __importStar(require("solc-typed-ast"));
|
|
40
38
|
const rtt = __importStar(require("./ast"));
|
|
41
39
|
const utils_1 = require("../../utils");
|
|
40
|
+
const addressT = new rtt.AddressType();
|
|
41
|
+
const bytesT = new rtt.BytesType();
|
|
42
|
+
const stringT = new rtt.StringType();
|
|
43
|
+
const boolT = new rtt.BoolType();
|
|
42
44
|
/**
|
|
43
|
-
*
|
|
44
|
-
* it can try and guess the correct simplified type from the typeString
|
|
45
|
-
*
|
|
46
|
-
* - unknown contracts - retun address
|
|
47
|
-
*/
|
|
48
|
-
function typeNameToTypeNode(t, infer, loc) {
|
|
49
|
-
try {
|
|
50
|
-
return loc ? infer.typeNameToSpecializedTypeNode(t, loc) : infer.typeNameToTypeNode(t);
|
|
51
|
-
}
|
|
52
|
-
catch (e) {
|
|
53
|
-
if ((0, utils_1.isTypeUnknownContract)(t)) {
|
|
54
|
-
return new sol.AddressType(false);
|
|
55
|
-
}
|
|
56
|
-
throw e;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Convert the given solc-typed-ast type to a runtime types. This does the following conversions:
|
|
61
|
-
*
|
|
62
|
-
* - Convert `UserDefinedType(StructDefinition)` to `ExpStructType`
|
|
63
|
-
* - Convert `UserDefinedType(UserDefinedValueTypeDefinition)` to the underlying type
|
|
64
|
-
* - Convert `UserDefinedType(ContractDefinition)` to address
|
|
45
|
+
* Convert the given solc-typed-ast typeIdentifier to a runtime types. This does the following conversions:
|
|
65
46
|
*
|
|
66
47
|
* @param rawT
|
|
67
48
|
*/
|
|
68
|
-
function
|
|
69
|
-
if (rawT instanceof sol.
|
|
70
|
-
return new rtt.IntType(rawT.
|
|
49
|
+
function typeIdToRuntimeType(rawT, ctx, loc) {
|
|
50
|
+
if (rawT instanceof sol.IntTypeId) {
|
|
51
|
+
return new rtt.IntType(rawT.numBits, rawT.isSigned);
|
|
71
52
|
}
|
|
72
|
-
if (rawT instanceof sol.
|
|
73
|
-
return new rtt.FixedBytesType(rawT.
|
|
53
|
+
if (rawT instanceof sol.FixedBytesTypeId) {
|
|
54
|
+
return new rtt.FixedBytesType(rawT.numBytes);
|
|
74
55
|
}
|
|
75
|
-
if (rawT instanceof sol.
|
|
76
|
-
return
|
|
56
|
+
if (rawT instanceof sol.BoolTypeId) {
|
|
57
|
+
return boolT;
|
|
77
58
|
}
|
|
78
|
-
if (rawT instanceof sol.
|
|
79
|
-
return
|
|
59
|
+
if (rawT instanceof sol.AddressTypeId) {
|
|
60
|
+
return addressT;
|
|
80
61
|
}
|
|
81
|
-
if (rawT instanceof sol.
|
|
82
|
-
return
|
|
62
|
+
if (rawT instanceof sol.BytesTypeId) {
|
|
63
|
+
return bytesT;
|
|
83
64
|
}
|
|
84
|
-
if (rawT instanceof sol.
|
|
85
|
-
return
|
|
65
|
+
if (rawT instanceof sol.StringTypeId) {
|
|
66
|
+
return stringT;
|
|
86
67
|
}
|
|
87
|
-
if (rawT instanceof sol.
|
|
88
|
-
const expElT =
|
|
68
|
+
if (rawT instanceof sol.ArrayTypeId) {
|
|
69
|
+
const expElT = typeIdToRuntimeType(rawT.elT, ctx, loc);
|
|
89
70
|
return new rtt.ArrayType(expElT, rawT.size);
|
|
90
71
|
}
|
|
91
|
-
if (rawT instanceof sol.
|
|
92
|
-
const keyT =
|
|
93
|
-
const valueT =
|
|
72
|
+
if (rawT instanceof sol.MappingTypeId) {
|
|
73
|
+
const keyT = typeIdToRuntimeType(rawT.keyType, ctx, loc);
|
|
74
|
+
const valueT = typeIdToRuntimeType(rawT.valueType, ctx, loc);
|
|
94
75
|
return new rtt.MappingType(keyT, valueT);
|
|
95
76
|
}
|
|
96
|
-
if (rawT instanceof sol.
|
|
97
|
-
return new rtt.TupleType(rawT.
|
|
98
|
-
}
|
|
99
|
-
if (rawT instanceof sol.PointerType) {
|
|
100
|
-
const ptrLoc = rawT.location === sol.DataLocation.Default ? loc : rawT.location;
|
|
101
|
-
sol.assert(ptrLoc !== undefined, `Missing location in conversion of {0}`, rawT);
|
|
102
|
-
const toT = astToRuntimeType(rawT.to, infer, ptrLoc);
|
|
103
|
-
return new rtt.PointerType(toT, ptrLoc);
|
|
104
|
-
}
|
|
105
|
-
if (rawT instanceof sol.UserDefinedType) {
|
|
106
|
-
if (rawT.definition === undefined) {
|
|
107
|
-
return new rtt.MissingType(undefined);
|
|
108
|
-
}
|
|
109
|
-
if (rawT.definition instanceof sol.StructDefinition) {
|
|
110
|
-
sol.assert(loc !== undefined, `Missing location in struct expansion {0}`, rawT);
|
|
111
|
-
const fields = rawT.definition.vMembers.map((decl) => {
|
|
112
|
-
let fieldT;
|
|
113
|
-
try {
|
|
114
|
-
fieldT = typeNameToTypeNode(decl.vType, infer, loc);
|
|
115
|
-
}
|
|
116
|
-
catch (e) {
|
|
117
|
-
return [
|
|
118
|
-
decl.name,
|
|
119
|
-
new rtt.MissingType(decl.vType !== undefined ? decl.vType.typeString : undefined)
|
|
120
|
-
];
|
|
121
|
-
}
|
|
122
|
-
return [decl.name, astToRuntimeType(fieldT, infer, loc)];
|
|
123
|
-
});
|
|
124
|
-
return new rtt.StructType(rawT.name, fields);
|
|
125
|
-
}
|
|
126
|
-
if (rawT.definition instanceof sol.UserDefinedValueTypeDefinition) {
|
|
127
|
-
let underlyingType;
|
|
128
|
-
try {
|
|
129
|
-
underlyingType = typeNameToTypeNode(rawT.definition.underlyingType, infer);
|
|
130
|
-
}
|
|
131
|
-
catch (e) {
|
|
132
|
-
return new rtt.MissingType(rawT.definition.underlyingType.typeString);
|
|
133
|
-
}
|
|
134
|
-
return astToRuntimeType(underlyingType, infer, loc);
|
|
135
|
-
}
|
|
136
|
-
if (rawT.definition instanceof sol.ContractDefinition) {
|
|
137
|
-
return new rtt.AddressType();
|
|
138
|
-
}
|
|
139
|
-
if (rawT.definition instanceof sol.EnumDefinition) {
|
|
140
|
-
return astToRuntimeType(sol.enumToIntType(rawT.definition), infer);
|
|
141
|
-
}
|
|
77
|
+
if (rawT instanceof sol.TupleTypeId) {
|
|
78
|
+
return new rtt.TupleType(rawT.components.map((elT) => typeIdToRuntimeType(elT, ctx, loc)));
|
|
142
79
|
}
|
|
143
|
-
if (rawT instanceof sol.
|
|
144
|
-
|
|
80
|
+
if (rawT instanceof sol.PointerTypeId) {
|
|
81
|
+
sol.assert(rawT.location !== sol.DataLocation.Default, `Unexpected default location`);
|
|
82
|
+
const toT = typeIdToRuntimeType(rawT.toType, ctx, rawT.location);
|
|
83
|
+
return new rtt.PointerType(toT, rawT.location);
|
|
145
84
|
}
|
|
146
|
-
(
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Given a general runtime type 'pattern' that doesn't contain any data locations, and a data location,
|
|
150
|
-
* produce a concrete instance of the general type for the target location.
|
|
151
|
-
* This is the inverse of `specializeType()`
|
|
152
|
-
*
|
|
153
|
-
* @param type - general type "pattern"
|
|
154
|
-
* @param loc - target location to specialize to
|
|
155
|
-
* @returns specialized type
|
|
156
|
-
*/
|
|
157
|
-
function specializeType(type, loc) {
|
|
158
|
-
sol.assert(!(type instanceof rtt.PointerType), "Unexpected pointer type {0} in concretization.", type);
|
|
159
|
-
sol.assert(!(type instanceof rtt.TupleType), "Unexpected tuple type {0} in concretization.", type);
|
|
160
|
-
// bytes and string
|
|
161
|
-
if (type instanceof rtt.StringType || type instanceof rtt.BytesType) {
|
|
162
|
-
return new rtt.PointerType(type, loc);
|
|
163
|
-
}
|
|
164
|
-
if (type instanceof rtt.ArrayType) {
|
|
165
|
-
const concreteElT = specializeType(type.elementT, loc);
|
|
166
|
-
return new rtt.PointerType(new rtt.ArrayType(concreteElT, type.size), loc);
|
|
167
|
-
}
|
|
168
|
-
if (type instanceof rtt.StructType) {
|
|
169
|
-
return new rtt.PointerType(type, loc);
|
|
170
|
-
}
|
|
171
|
-
if (type instanceof rtt.MappingType) {
|
|
172
|
-
// Always treat map keys as in-memory copies
|
|
173
|
-
const concreteKeyT = specializeType(type.keyType, sol.DataLocation.Memory);
|
|
174
|
-
// The result of map indexing is always a pointer to a value that lives in storage
|
|
175
|
-
const concreteValueT = specializeType(type.valueType, sol.DataLocation.Storage); // @todo update when maps supported in transient
|
|
176
|
-
// Maps always live in storage
|
|
177
|
-
return new rtt.PointerType(new rtt.MappingType(concreteKeyT, concreteValueT), sol.DataLocation.Storage); // @todo update when maps supported in transient
|
|
178
|
-
}
|
|
179
|
-
if (type instanceof rtt.TupleType) {
|
|
180
|
-
return new rtt.TupleType(type.elementTypes.map((elT) => specializeType(elT, loc)));
|
|
181
|
-
}
|
|
182
|
-
return type;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Given a `BaseRuntimeType` `type` that is specialized to some storage location,
|
|
186
|
-
* compute the original 'general' type that is independent of location.
|
|
187
|
-
* This is the inverse of `specializeType()`
|
|
188
|
-
*
|
|
189
|
-
* @param type - specialized type
|
|
190
|
-
* @returns computed generalized type
|
|
191
|
-
*/
|
|
192
|
-
function generalizeType(type) {
|
|
193
|
-
if (type instanceof rtt.PointerType) {
|
|
194
|
-
return generalizeType(type.toType);
|
|
85
|
+
if (rawT instanceof sol.ContractTypeId) {
|
|
86
|
+
return addressT;
|
|
195
87
|
}
|
|
196
|
-
if (
|
|
197
|
-
const
|
|
198
|
-
|
|
88
|
+
if (rawT instanceof sol.EnumTypeId) {
|
|
89
|
+
const def = ctx.locate(rawT.id);
|
|
90
|
+
if (!(def instanceof sol.EnumDefinition)) {
|
|
91
|
+
return new rtt.MissingTypeDef(rawT);
|
|
92
|
+
}
|
|
93
|
+
return typeIdToRuntimeType(sol.enumToIntTypeId(def), ctx, loc);
|
|
199
94
|
}
|
|
200
|
-
if (
|
|
201
|
-
const
|
|
202
|
-
|
|
203
|
-
|
|
95
|
+
if (rawT instanceof sol.UserDefinedValueTypeId) {
|
|
96
|
+
const def = ctx.locate(rawT.id);
|
|
97
|
+
if (!(def instanceof sol.UserDefinedValueTypeDefinition &&
|
|
98
|
+
def.underlyingType.typeIdentifier !== undefined)) {
|
|
99
|
+
return new rtt.MissingTypeDef(rawT);
|
|
100
|
+
}
|
|
101
|
+
return typeIdToRuntimeType(sol.typeOf(def.underlyingType), ctx, loc);
|
|
204
102
|
}
|
|
205
|
-
if (
|
|
206
|
-
|
|
103
|
+
if (rawT instanceof sol.StructTypeId) {
|
|
104
|
+
const def = ctx.locate(rawT.id);
|
|
105
|
+
if (!(def instanceof sol.StructDefinition)) {
|
|
106
|
+
return new rtt.MissingTypeDef(rawT);
|
|
107
|
+
}
|
|
108
|
+
sol.assert(loc !== undefined, `Missing location in struct expansion {0}`, rawT);
|
|
109
|
+
const fields = def.vMembers.map((decl) => [
|
|
110
|
+
decl.name,
|
|
111
|
+
typeIdToRuntimeType(sol.changeLocationTo(sol.typeOf(decl), loc), ctx, loc)
|
|
112
|
+
]);
|
|
113
|
+
return new rtt.StructType(rawT.name, fields);
|
|
207
114
|
}
|
|
208
|
-
if (
|
|
209
|
-
return new rtt.
|
|
115
|
+
if (rawT instanceof sol.FunctionTypeId) {
|
|
116
|
+
return new rtt.FunctionType(rawT);
|
|
210
117
|
}
|
|
211
|
-
|
|
118
|
+
(0, utils_1.nyi)(`typeIdToRuntimeType(${rawT.constructor.name})`);
|
|
212
119
|
}
|
|
213
120
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/debug/runtime_types/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/debug/runtime_types/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ class SolTxDebugger extends base_tracer_1.MapOnlyTracer {
|
|
|
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, ext_stack_1.addExternalFrame)(vm, step, basicInfo, trace, this.artifactManager, tx);
|
|
16
|
-
const retInfo = await (0, ret_info_1.addReturnInfo)(vm, step, extFrameInfo
|
|
16
|
+
const retInfo = await (0, ret_info_1.addReturnInfo)(vm, step, extFrameInfo);
|
|
17
17
|
const excInfo = await (0, transformers_1.addExceptionInfo)(vm, step, retInfo, trace, this.artifactManager);
|
|
18
18
|
const source = await (0, source_1.addSource)(vm, step, excInfo);
|
|
19
19
|
const intStack = await (0, int_stack_1.addInternalFrameInfo)(vm, step, source, trace, this.artifactManager, this.strict);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sol_debugger.js","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":";;;AAIA,+CAA8C;AAC9C,iDAMwB;AACxB,kDAAqD;AACrD,wDAA4D;AAC5D,wDAAgE;AAChE,sDAAwD;AACxD,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,OAAO,GAAG,MAAM,IAAA,wBAAa,EAAC,EAAE,EAAE,IAAI,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"sol_debugger.js","sourceRoot":"","sources":["../../../src/debug/tracers/sol_debugger.ts"],"names":[],"mappings":";;;AAIA,+CAA8C;AAC9C,iDAMwB;AACxB,kDAAqD;AACrD,wDAA4D;AAC5D,wDAAgE;AAChE,sDAAwD;AACxD,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,OAAO,GAAG,MAAM,IAAA,wBAAa,EAAC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAgB,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,EAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAoB,EACvC,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,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAE5E,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;AArCD,sCAqCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ext_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ext_stack.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;AAIpC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAA4B,aAAa,EAAwB,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,aAAa,CAEjE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAEjF;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAE3D;
|
|
1
|
+
{"version":3,"file":"ext_stack.d.ts","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ext_stack.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;AAIpC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,EAA4B,aAAa,EAAwB,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,WAAW,iBAAiB;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,aAAa,CAEjE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,SAAS,CAEjF;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAE3D;AAqHD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,aAAa,EACnE,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,EAAE,EAAE,gBAAgB,GACrB,OAAO,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAgHhC"}
|
|
@@ -27,11 +27,10 @@ function makeCallFrame(sender, receiver, codeAddress, data, receiverCode, codeHa
|
|
|
27
27
|
let callee;
|
|
28
28
|
let args;
|
|
29
29
|
if (contractInfo && contractInfo.ast) {
|
|
30
|
-
const infer = artifactManager.infer(contractInfo.artifact.compilerVersion);
|
|
31
30
|
callee = artifactManager.findEntryPoint(data, contractInfo);
|
|
32
31
|
if (callee !== undefined) {
|
|
33
32
|
try {
|
|
34
|
-
args = (0, abi_1.buildMsgViews)(callee
|
|
33
|
+
args = (0, abi_1.buildMsgViews)(callee);
|
|
35
34
|
}
|
|
36
35
|
catch (e) {
|
|
37
36
|
args = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ext_stack.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ext_stack.ts"],"names":[],"mappings":";;AAkBA,kCAEC;AAED,0CAEC;AAED,0BAEC;
|
|
1
|
+
{"version":3,"file":"ext_stack.js","sourceRoot":"","sources":["../../../../src/debug/tracers/transformers/ext_stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,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;AAMtC,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;CACjC;AA2CD;;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"}
|
|
@@ -8,6 +8,7 @@ const types_1 = require("../../types");
|
|
|
8
8
|
const ext_stack_1 = require("./ext_stack");
|
|
9
9
|
const decoding_1 = require("../../decoding");
|
|
10
10
|
const runtime_types_1 = require("../../runtime_types");
|
|
11
|
+
const utils_2 = require("../../../utils");
|
|
11
12
|
function topFrame(step) {
|
|
12
13
|
if (step.intStack.length > 0) {
|
|
13
14
|
return step.intStack[step.intStack.length - 1];
|
|
@@ -19,30 +20,14 @@ function topFrame(step) {
|
|
|
19
20
|
* Given a callable (function definition or public state variable) try to build
|
|
20
21
|
* `View`s for all the callable arguments. On failure return undefined.
|
|
21
22
|
*/
|
|
22
|
-
function buildFunArgViews(callee, stack
|
|
23
|
+
function buildFunArgViews(callee, stack) {
|
|
23
24
|
const res = [];
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
try {
|
|
27
|
-
formals =
|
|
28
|
-
callee instanceof solc_typed_ast_1.FunctionDefinition
|
|
29
|
-
? callee.vParameters.vParameters.map((argDef) => [
|
|
30
|
-
argDef.name,
|
|
31
|
-
infer.variableDeclarationToTypeNode(argDef)
|
|
32
|
-
])
|
|
33
|
-
: infer
|
|
34
|
-
.getterArgsAndReturn(callee)[0]
|
|
35
|
-
.map((typ, i) => [`ARG_${i}`, typ]);
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
// `variableDeclarationToTypeNode` may fail when referencing structs/contracts that are defined
|
|
39
|
-
// in SourceUnits that are missing
|
|
40
|
-
return undefined;
|
|
41
|
-
}
|
|
25
|
+
const ctx = callee.requiredContext;
|
|
26
|
+
const formals = (0, utils_2.getArgs)(callee);
|
|
42
27
|
let offsetFromTop = -1;
|
|
43
28
|
for (let i = formals.length - 1; i >= 0; i--) {
|
|
44
29
|
const [name, typ] = formals[i];
|
|
45
|
-
const rttTyp = (0, runtime_types_1.
|
|
30
|
+
const rttTyp = (0, runtime_types_1.typeIdToRuntimeType)(typ, ctx);
|
|
46
31
|
const stackSize = (0, utils_1.isCalldataArrayType)(rttTyp) ? 2 : 1;
|
|
47
32
|
offsetFromTop += stackSize;
|
|
48
33
|
if (offsetFromTop > stack.length) {
|
|
@@ -115,7 +100,7 @@ async function addInternalFrameInfo(vm, step, state, trace, artifactManager, str
|
|
|
115
100
|
if (ast instanceof solc_typed_ast_1.FunctionDefinition ||
|
|
116
101
|
(ast instanceof solc_typed_ast_1.VariableDeclaration && ast.stateVariable)) {
|
|
117
102
|
(0, solc_typed_ast_1.assert)(curExtFrame.info !== undefined, ``);
|
|
118
|
-
args = buildFunArgViews(ast, state.evmStack
|
|
103
|
+
args = buildFunArgViews(ast, state.evmStack);
|
|
119
104
|
}
|
|
120
105
|
const newFrame = {
|
|
121
106
|
kind: types_1.FrameKind.InternalCall,
|
|
@@ -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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"}
|