sol-dbg 0.8.4 → 0.8.5
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.
|
@@ -3,6 +3,7 @@ import { PointerView, View } from "./view";
|
|
|
3
3
|
import { BaseRuntimeType } from "../runtime_types";
|
|
4
4
|
import * as sol from "solc-typed-ast";
|
|
5
5
|
import * as rtt from "../runtime_types/ast";
|
|
6
|
+
import { BytecodeInfo, LinkMap } from "../artifact_manager";
|
|
6
7
|
export declare function isCalldataArrayType(typ: BaseRuntimeType): boolean;
|
|
7
8
|
/**
|
|
8
9
|
* Returns true IFF the n >= min && n <= max
|
|
@@ -34,4 +35,11 @@ export declare function isPointerView(v: any): v is PointerView<any, View>;
|
|
|
34
35
|
* @param infer
|
|
35
36
|
*/
|
|
36
37
|
export declare function getContractLayoutType(contract: sol.ContractDefinition, infer: sol.InferType): [rtt.StructType, boolean];
|
|
38
|
+
/**
|
|
39
|
+
* Given a `BytecodeInfo` and some actual linked bytecode, decode the `LinkMap` that was used to link the bytecode.
|
|
40
|
+
* @param bytecodeInfo
|
|
41
|
+
* @param actualBytecode
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
export declare function decodeLinkMap(bytecodeInfo: BytecodeInfo, actualBytecode: Uint8Array): LinkMap;
|
|
37
45
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK3C,OAAO,EAGH,eAAe,EAIlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK3C,OAAO,EAGH,eAAe,EAIlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,GAAG,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG5D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAQjE;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAE/F;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,eAAe,CAExD;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,kCAAkC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAOjE;AAuBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,GAAG,CAAC,kBAAkB,EAChC,KAAK,EAAE,GAAG,CAAC,SAAS,GACrB,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAkD3B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,GAAG,OAAO,CAc7F"}
|
|
@@ -42,6 +42,7 @@ exports.isTypeStringStruct = isTypeStringStruct;
|
|
|
42
42
|
exports.isTypeStringStatic32BytesInStorage = isTypeStringStatic32BytesInStorage;
|
|
43
43
|
exports.isPointerView = isPointerView;
|
|
44
44
|
exports.getContractLayoutType = getContractLayoutType;
|
|
45
|
+
exports.decodeLinkMap = decodeLinkMap;
|
|
45
46
|
const solc_typed_ast_1 = require("solc-typed-ast");
|
|
46
47
|
const value_1 = require("./value");
|
|
47
48
|
const calldata_1 = require("./calldata");
|
|
@@ -52,6 +53,7 @@ const runtime_types_1 = require("../runtime_types");
|
|
|
52
53
|
const sol = __importStar(require("solc-typed-ast"));
|
|
53
54
|
const rtt = __importStar(require("../runtime_types/ast"));
|
|
54
55
|
const utils_1 = require("../../utils");
|
|
56
|
+
const util_1 = require("@ethereumjs/util");
|
|
55
57
|
function isCalldataArrayType(typ) {
|
|
56
58
|
return (typ instanceof runtime_types_1.PointerType &&
|
|
57
59
|
((typ.toType instanceof runtime_types_1.ArrayType && typ.toType.size === undefined) ||
|
|
@@ -167,4 +169,22 @@ function getContractLayoutType(contract, infer) {
|
|
|
167
169
|
}
|
|
168
170
|
return [new rtt.StructType(contract.name, stateVars), complete];
|
|
169
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Given a `BytecodeInfo` and some actual linked bytecode, decode the `LinkMap` that was used to link the bytecode.
|
|
174
|
+
* @param bytecodeInfo
|
|
175
|
+
* @param actualBytecode
|
|
176
|
+
* @returns
|
|
177
|
+
*/
|
|
178
|
+
function decodeLinkMap(bytecodeInfo, actualBytecode) {
|
|
179
|
+
const res = new Map();
|
|
180
|
+
if (!bytecodeInfo.linkReferences) {
|
|
181
|
+
return res;
|
|
182
|
+
}
|
|
183
|
+
for (const [libId, ranges] of bytecodeInfo.linkReferences) {
|
|
184
|
+
sol.assert(ranges.length > 0 && ranges[0].length == 20, ``);
|
|
185
|
+
const rng = ranges[0];
|
|
186
|
+
res.set(libId, new util_1.Address(actualBytecode.slice(rng.start, rng.start + rng.length)));
|
|
187
|
+
}
|
|
188
|
+
return res;
|
|
189
|
+
}
|
|
170
190
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/debug/decoding/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/debug/decoding/utils.ts"],"names":[],"mappings":"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"}
|