sol-dbg 0.7.16 → 0.8.0

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.
Files changed (134) hide show
  1. package/dist/debug/abi.d.ts +10 -3
  2. package/dist/debug/abi.d.ts.map +1 -1
  3. package/dist/debug/abi.js +5 -4
  4. package/dist/debug/abi.js.map +1 -1
  5. package/dist/debug/artifact_manager/artifact_manager.d.ts +5 -2
  6. package/dist/debug/artifact_manager/artifact_manager.d.ts.map +1 -1
  7. package/dist/debug/artifact_manager/artifact_manager.js +24 -6
  8. package/dist/debug/artifact_manager/artifact_manager.js.map +1 -1
  9. package/dist/debug/decoding/calldata/view.d.ts +15 -16
  10. package/dist/debug/decoding/calldata/view.d.ts.map +1 -1
  11. package/dist/debug/decoding/calldata/view.js +47 -47
  12. package/dist/debug/decoding/calldata/view.js.map +1 -1
  13. package/dist/debug/decoding/index.d.ts +1 -2
  14. package/dist/debug/decoding/index.d.ts.map +1 -1
  15. package/dist/debug/decoding/index.js +2 -2
  16. package/dist/debug/decoding/index.js.map +1 -1
  17. package/dist/debug/decoding/memory/view.d.ts +16 -17
  18. package/dist/debug/decoding/memory/view.d.ts.map +1 -1
  19. package/dist/debug/decoding/memory/view.js +36 -36
  20. package/dist/debug/decoding/memory/view.js.map +1 -1
  21. package/dist/debug/decoding/stack/view.d.ts +4 -4
  22. package/dist/debug/decoding/stack/view.d.ts.map +1 -1
  23. package/dist/debug/decoding/stack/view.js +20 -19
  24. package/dist/debug/decoding/stack/view.js.map +1 -1
  25. package/dist/debug/decoding/storage/view.d.ts +18 -19
  26. package/dist/debug/decoding/storage/view.d.ts.map +1 -1
  27. package/dist/debug/decoding/storage/view.js +67 -65
  28. package/dist/debug/decoding/storage/view.js.map +1 -1
  29. package/dist/debug/decoding/utils.d.ts +20 -2
  30. package/dist/debug/decoding/utils.d.ts.map +1 -1
  31. package/dist/debug/decoding/utils.js +119 -3
  32. package/dist/debug/decoding/utils.js.map +1 -1
  33. package/dist/debug/decoding/view.d.ts +11 -6
  34. package/dist/debug/decoding/view.d.ts.map +1 -1
  35. package/dist/debug/index.d.ts +1 -0
  36. package/dist/debug/index.d.ts.map +1 -1
  37. package/dist/debug/index.js +1 -0
  38. package/dist/debug/index.js.map +1 -1
  39. package/dist/debug/layout.d.ts.map +1 -1
  40. package/dist/debug/layout.js +2 -1
  41. package/dist/debug/layout.js.map +1 -1
  42. package/dist/debug/runtime_types/ast/address_type.d.ts +5 -0
  43. package/dist/debug/runtime_types/ast/address_type.d.ts.map +1 -0
  44. package/dist/debug/runtime_types/ast/address_type.js +11 -0
  45. package/dist/debug/runtime_types/ast/address_type.js.map +1 -0
  46. package/dist/debug/runtime_types/ast/array_type.d.ts +8 -0
  47. package/dist/debug/runtime_types/ast/array_type.d.ts.map +1 -0
  48. package/dist/debug/runtime_types/ast/array_type.js +16 -0
  49. package/dist/debug/runtime_types/ast/array_type.js.map +1 -0
  50. package/dist/debug/runtime_types/ast/base_type.d.ts +16 -0
  51. package/dist/debug/runtime_types/ast/base_type.d.ts.map +1 -0
  52. package/dist/debug/runtime_types/ast/base_type.js +19 -0
  53. package/dist/debug/runtime_types/ast/base_type.js.map +1 -0
  54. package/dist/debug/runtime_types/ast/bool_type.d.ts +5 -0
  55. package/dist/debug/runtime_types/ast/bool_type.d.ts.map +1 -0
  56. package/dist/debug/runtime_types/ast/bool_type.js +11 -0
  57. package/dist/debug/runtime_types/ast/bool_type.js.map +1 -0
  58. package/dist/debug/runtime_types/ast/bytes_type.d.ts +5 -0
  59. package/dist/debug/runtime_types/ast/bytes_type.d.ts.map +1 -0
  60. package/dist/debug/runtime_types/ast/bytes_type.js +11 -0
  61. package/dist/debug/runtime_types/ast/bytes_type.js.map +1 -0
  62. package/dist/debug/runtime_types/ast/fixed_bytes_type.d.ts +7 -0
  63. package/dist/debug/runtime_types/ast/fixed_bytes_type.d.ts.map +1 -0
  64. package/dist/debug/runtime_types/ast/fixed_bytes_type.js +15 -0
  65. package/dist/debug/runtime_types/ast/fixed_bytes_type.js.map +1 -0
  66. package/dist/debug/runtime_types/ast/function_type.d.ts +11 -0
  67. package/dist/debug/runtime_types/ast/function_type.d.ts.map +1 -0
  68. package/dist/debug/runtime_types/ast/function_type.js +22 -0
  69. package/dist/debug/runtime_types/ast/function_type.js.map +1 -0
  70. package/dist/debug/runtime_types/ast/index.d.ts +16 -0
  71. package/dist/debug/runtime_types/ast/index.d.ts.map +1 -0
  72. package/dist/debug/runtime_types/ast/index.js +32 -0
  73. package/dist/debug/runtime_types/ast/index.js.map +1 -0
  74. package/dist/debug/runtime_types/ast/int_type.d.ts +10 -0
  75. package/dist/debug/runtime_types/ast/int_type.d.ts.map +1 -0
  76. package/dist/debug/runtime_types/ast/int_type.js +24 -0
  77. package/dist/debug/runtime_types/ast/int_type.js.map +1 -0
  78. package/dist/debug/runtime_types/ast/mapping_type.d.ts +8 -0
  79. package/dist/debug/runtime_types/ast/mapping_type.d.ts.map +1 -0
  80. package/dist/debug/runtime_types/ast/mapping_type.js +16 -0
  81. package/dist/debug/runtime_types/ast/mapping_type.js.map +1 -0
  82. package/dist/debug/runtime_types/ast/missing_type.d.ts +11 -0
  83. package/dist/debug/runtime_types/ast/missing_type.d.ts.map +1 -0
  84. package/dist/debug/runtime_types/ast/missing_type.js +19 -0
  85. package/dist/debug/runtime_types/ast/missing_type.js.map +1 -0
  86. package/dist/debug/runtime_types/ast/pointer_type.d.ts +9 -0
  87. package/dist/debug/runtime_types/ast/pointer_type.d.ts.map +1 -0
  88. package/dist/debug/runtime_types/ast/pointer_type.js +51 -0
  89. package/dist/debug/runtime_types/ast/pointer_type.js.map +1 -0
  90. package/dist/debug/runtime_types/ast/string_type.d.ts +5 -0
  91. package/dist/debug/runtime_types/ast/string_type.d.ts.map +1 -0
  92. package/dist/debug/runtime_types/ast/string_type.js +11 -0
  93. package/dist/debug/runtime_types/ast/string_type.js.map +1 -0
  94. package/dist/debug/runtime_types/ast/struct_type.d.ts +8 -0
  95. package/dist/debug/runtime_types/ast/struct_type.d.ts.map +1 -0
  96. package/dist/debug/runtime_types/ast/struct_type.js +16 -0
  97. package/dist/debug/runtime_types/ast/struct_type.js.map +1 -0
  98. package/dist/debug/runtime_types/ast/tuple_type.d.ts +7 -0
  99. package/dist/debug/runtime_types/ast/tuple_type.d.ts.map +1 -0
  100. package/dist/debug/runtime_types/ast/tuple_type.js +15 -0
  101. package/dist/debug/runtime_types/ast/tuple_type.js.map +1 -0
  102. package/dist/debug/runtime_types/ast/type_type.d.ts +12 -0
  103. package/dist/debug/runtime_types/ast/type_type.d.ts.map +1 -0
  104. package/dist/debug/runtime_types/ast/type_type.js +19 -0
  105. package/dist/debug/runtime_types/ast/type_type.js.map +1 -0
  106. package/dist/debug/runtime_types/index.d.ts +3 -0
  107. package/dist/debug/runtime_types/index.d.ts.map +1 -0
  108. package/dist/debug/runtime_types/index.js +19 -0
  109. package/dist/debug/runtime_types/index.js.map +1 -0
  110. package/dist/debug/runtime_types/utils.d.ts +32 -0
  111. package/dist/debug/runtime_types/utils.d.ts.map +1 -0
  112. package/dist/debug/runtime_types/utils.js +213 -0
  113. package/dist/debug/runtime_types/utils.js.map +1 -0
  114. package/dist/debug/tracers/transformers/int_stack.d.ts.map +1 -1
  115. package/dist/debug/tracers/transformers/int_stack.js +4 -2
  116. package/dist/debug/tracers/transformers/int_stack.js.map +1 -1
  117. package/dist/debug/tracers/transformers/ret_info.js +2 -2
  118. package/dist/debug/tracers/transformers/ret_info.js.map +1 -1
  119. package/dist/utils/misc.d.ts +5 -1
  120. package/dist/utils/misc.d.ts.map +1 -1
  121. package/dist/utils/misc.js +20 -9
  122. package/dist/utils/misc.js.map +1 -1
  123. package/dist/utils/pp.d.ts.map +1 -1
  124. package/dist/utils/pp.js +13 -12
  125. package/dist/utils/pp.js.map +1 -1
  126. package/dist/utils/solidity.d.ts +1 -0
  127. package/dist/utils/solidity.d.ts.map +1 -1
  128. package/dist/utils/solidity.js +8 -0
  129. package/dist/utils/solidity.js.map +1 -1
  130. package/package.json +1 -1
  131. package/dist/debug/decoding/exp_types.d.ts +0 -46
  132. package/dist/debug/decoding/exp_types.d.ts.map +0 -1
  133. package/dist/debug/decoding/exp_types.js +0 -202
  134. package/dist/debug/decoding/exp_types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../src/utils/solidity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wCAgBC;AAKD,0CAgBC;AAED,0CAkBC;AA9DD,oDAAsC;AAEtC;;GAEG;AACH,SAAgB,cAAc,CAC1B,QAAgC;IAEhC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,SAAS;QACb,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBACxC,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC3B,QAAgC;IAEhC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,SAAS;QACb,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACzC,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,eAAe,CAC3B,KAAuB,EACvB,QAAgB,EAChB,YAAoB;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YACnC,SAAS;QACb,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"solidity.js","sourceRoot":"","sources":["../../src/utils/solidity.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,sDAQC;AAID,wCAgBC;AAKD,0CAgBC;AAED,0CAkBC;AAvED,oDAAsC;AAEtC,SAAgB,qBAAqB,CAAC,CAA2B;IAC7D,OAAO,CACH,CAAC,YAAY,GAAG,CAAC,mBAAmB;QACpC,CAAC,CAAC,qBAAqB,GAAG,CAAC;QAC3B,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC;YACjC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;YACrC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAC3C,CAAC;AACN,CAAC;AACD;;GAEG;AACH,SAAgB,cAAc,CAC1B,QAAgC;IAEhC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,SAAS;QACb,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBACxC,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC3B,QAAgC;IAEhC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QACnD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,SAAS;QACb,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBACzC,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,eAAe,CAC3B,KAAuB,EACvB,QAAgB,EAChB,YAAoB;IAEpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YACnC,SAAS;QACb,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sol-dbg",
3
- "version": "0.7.16",
3
+ "version": "0.8.0",
4
4
  "description": "Small (experimental) Solidity-level debugger built around EthereumJS",
5
5
  "keywords": [],
6
6
  "files": [
@@ -1,46 +0,0 @@
1
- import { ContractDefinition, DataLocation, InferType, TypeName, TypeNode } from "solc-typed-ast";
2
- /**
3
- * An internal struct type that converts all field VariableDeclaration(s) to
4
- * TypeNode(s). This way handling this type doesn't require an InferType
5
- * instance.
6
- */
7
- export declare class ExpStructType extends TypeNode {
8
- readonly name: string;
9
- readonly fields: Array<[string, TypeNode]>;
10
- readonly rawType: TypeNode | undefined;
11
- constructor(name: string, fields: Array<[string, TypeNode]>, rawType?: TypeNode | undefined);
12
- pp(): string;
13
- }
14
- /**
15
- * Simplify the given solc-typed-ast types for use in encoding. This does the following conversions:
16
- *
17
- * - Convert `UserDefinedType(StructDefinition)` to `ExpStructType`
18
- * - Convert `UserDefinedType(UserDefinedValueTypeDefinition)` to the underlying type
19
- * - Convert `UserDefinedType(ContractDefinition)` to address
20
- *
21
- * in the given rawT
22
- * @param rawT
23
- */
24
- export declare function simplifyType(rawT: TypeNode, infer: InferType, loc?: DataLocation | undefined): TypeNode;
25
- export declare class MissingType extends TypeNode {
26
- readonly rawTypeName: TypeName | undefined;
27
- constructor(rawTypeName: TypeName | undefined);
28
- pp(): string;
29
- }
30
- /**
31
- * Given a `ContractDefinition` try and compute an `ExpStructType` struct that
32
- * describes the layout of the class. This takes into account all base classes,
33
- * and simplifies types using `simplifyType`.
34
- *
35
- * Since we may be missing AST information for some user-defined types, or even
36
- * entire bases, the layout may be partial. It may be only up to a given base,
37
- * and it may be missing exact type information for certain fields.
38
- *
39
- * We return a tuple with the resulting layout, and a boolean specifying whether
40
- * the layout is complete.
41
- *
42
- * @param def
43
- * @param infer
44
- */
45
- export declare function getContractLayoutType(contract: ContractDefinition, infer: InferType): [ExpStructType, boolean];
46
- //# sourceMappingURL=exp_types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exp_types.d.ts","sourceRoot":"","sources":["../../../src/debug/decoding/exp_types.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,kBAAkB,EAClB,YAAY,EAGZ,SAAS,EAMT,QAAQ,EACR,QAAQ,EAKX,MAAM,gBAAgB,CAAC;AAIxB;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAQ;aAEnB,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACjC,OAAO,EAAE,QAAQ,GAAG,SAAS;gBAF7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EACjC,OAAO,GAAE,QAAQ,GAAG,SAAqB;IAK7D,EAAE,IAAI,MAAM;CAGf;AAgDD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CACxB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,EAChB,GAAG,GAAE,YAAY,GAAG,SAAqB,GAC1C,QAAQ,CAyEV;AAED,qBAAa,WAAY,SAAQ,QAAQ;aACT,WAAW,EAAE,QAAQ,GAAG,SAAS;gBAAjC,WAAW,EAAE,QAAQ,GAAG,SAAS;IAI7D,EAAE,IAAI,MAAM;CAGf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACjC,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,SAAS,GACjB,CAAC,aAAa,EAAE,OAAO,CAAC,CA8C1B"}
@@ -1,202 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MissingType = exports.ExpStructType = void 0;
4
- exports.simplifyType = simplifyType;
5
- exports.getContractLayoutType = getContractLayoutType;
6
- const solc_typed_ast_1 = require("solc-typed-ast");
7
- const utils_1 = require("../../utils");
8
- const utils_2 = require("./utils");
9
- /**
10
- * An internal struct type that converts all field VariableDeclaration(s) to
11
- * TypeNode(s). This way handling this type doesn't require an InferType
12
- * instance.
13
- */
14
- class ExpStructType extends solc_typed_ast_1.TypeNode {
15
- constructor(name, fields, rawType = undefined) {
16
- super();
17
- this.name = name;
18
- this.fields = fields;
19
- this.rawType = rawType;
20
- }
21
- pp() {
22
- return `struct ${this.name}{\n${this.fields.map(([name, type]) => `${name}: ${type.pp()}`).join("\n")}\n}`;
23
- }
24
- }
25
- exports.ExpStructType = ExpStructType;
26
- function isTypeUnknownContract(t) {
27
- return (t instanceof solc_typed_ast_1.UserDefinedTypeName &&
28
- t.referencedDeclaration < 0 &&
29
- (t.typeString.startsWith("contract ") ||
30
- t.typeString.startsWith("interface ") ||
31
- t.typeString.startsWith("library ")));
32
- }
33
- /**
34
- * Helper for converting `TypeName`s to `TypeNode`s. In some cases when solc-typed-ast conversion fails,
35
- * it can try and guess the correct simplified type from the typeString
36
- *
37
- * - unknown contracts - retun address
38
- */
39
- function typeNameToTypeNode(t, infer, loc) {
40
- try {
41
- return loc ? infer.typeNameToSpecializedTypeNode(t, loc) : infer.typeNameToTypeNode(t);
42
- }
43
- catch (e) {
44
- if (isTypeUnknownContract(t)) {
45
- return utils_1.address;
46
- }
47
- throw e;
48
- }
49
- }
50
- /**
51
- * Helper for converting `VariableDeclartaion`s to `TypeNode`s. In some cases when solc-typed-ast conversion fails,
52
- * it can try and guess the correct simplified type from the typeString
53
- *
54
- * - unknown contracts - retun address
55
- */
56
- function variableDeclarationToTypeNode(v, infer) {
57
- try {
58
- return infer.variableDeclarationToTypeNode(v);
59
- }
60
- catch (e) {
61
- if (v.vType && isTypeUnknownContract(v.vType)) {
62
- return utils_1.address;
63
- }
64
- throw e;
65
- }
66
- }
67
- /**
68
- * Simplify the given solc-typed-ast types for use in encoding. This does the following conversions:
69
- *
70
- * - Convert `UserDefinedType(StructDefinition)` to `ExpStructType`
71
- * - Convert `UserDefinedType(UserDefinedValueTypeDefinition)` to the underlying type
72
- * - Convert `UserDefinedType(ContractDefinition)` to address
73
- *
74
- * in the given rawT
75
- * @param rawT
76
- */
77
- function simplifyType(rawT, infer, loc = undefined) {
78
- if (rawT instanceof solc_typed_ast_1.ArrayType) {
79
- const expElT = simplifyType(rawT.elementT, infer, loc);
80
- return expElT === rawT.elementT ? rawT : new solc_typed_ast_1.ArrayType(expElT, rawT.size, rawT.src);
81
- }
82
- if (rawT instanceof solc_typed_ast_1.MappingType) {
83
- const keyT = simplifyType(rawT.keyType, infer, loc);
84
- const valueT = simplifyType(rawT.valueType, infer, loc);
85
- return keyT === rawT.keyType && valueT === rawT.valueType
86
- ? rawT
87
- : new solc_typed_ast_1.MappingType(keyT, valueT, rawT.src);
88
- }
89
- if (rawT instanceof solc_typed_ast_1.TupleType) {
90
- return new solc_typed_ast_1.TupleType(rawT.elements.map((elT) => (elT === null ? elT : simplifyType(elT, infer, loc))));
91
- }
92
- if (rawT instanceof solc_typed_ast_1.PointerType) {
93
- const toT = simplifyType(rawT.to, infer, rawT.location);
94
- return toT === rawT.to ? rawT : new solc_typed_ast_1.PointerType(toT, rawT.location, rawT.kind, rawT.src);
95
- }
96
- if (rawT instanceof solc_typed_ast_1.UserDefinedType) {
97
- if (rawT.definition === undefined) {
98
- return new MissingType(undefined);
99
- }
100
- if (rawT.definition instanceof solc_typed_ast_1.StructDefinition) {
101
- (0, solc_typed_ast_1.assert)(loc !== undefined, `Missing location in struct expansion {0}`, rawT);
102
- const fields = rawT.definition.vMembers.map((decl) => {
103
- let fieldT;
104
- try {
105
- fieldT = typeNameToTypeNode(decl.vType, infer, loc);
106
- }
107
- catch (e) {
108
- fieldT = new MissingType(decl.vType);
109
- }
110
- return [decl.name, simplifyType(fieldT, infer, loc)];
111
- });
112
- return new ExpStructType(rawT.name, fields, rawT);
113
- }
114
- if (rawT.definition instanceof solc_typed_ast_1.UserDefinedValueTypeDefinition) {
115
- let underlyingType;
116
- try {
117
- underlyingType = typeNameToTypeNode(rawT.definition.underlyingType, infer);
118
- }
119
- catch (e) {
120
- underlyingType = new MissingType(rawT.definition.underlyingType);
121
- }
122
- return simplifyType(underlyingType, infer, loc);
123
- }
124
- if (rawT.definition instanceof solc_typed_ast_1.ContractDefinition) {
125
- return utils_1.address;
126
- }
127
- if (rawT.definition instanceof solc_typed_ast_1.EnumDefinition) {
128
- return (0, solc_typed_ast_1.enumToIntType)(rawT.definition);
129
- }
130
- }
131
- if (rawT instanceof MissingType) {
132
- return rawT;
133
- }
134
- return rawT;
135
- }
136
- class MissingType extends solc_typed_ast_1.TypeNode {
137
- constructor(rawTypeName) {
138
- super();
139
- this.rawTypeName = rawTypeName;
140
- }
141
- pp() {
142
- return `<missing type info for ${this.rawTypeName?.print()}>`;
143
- }
144
- }
145
- exports.MissingType = MissingType;
146
- /**
147
- * Given a `ContractDefinition` try and compute an `ExpStructType` struct that
148
- * describes the layout of the class. This takes into account all base classes,
149
- * and simplifies types using `simplifyType`.
150
- *
151
- * Since we may be missing AST information for some user-defined types, or even
152
- * entire bases, the layout may be partial. It may be only up to a given base,
153
- * and it may be missing exact type information for certain fields.
154
- *
155
- * We return a tuple with the resulting layout, and a boolean specifying whether
156
- * the layout is complete.
157
- *
158
- * @param def
159
- * @param infer
160
- */
161
- function getContractLayoutType(contract, infer) {
162
- const stateVars = [];
163
- let complete = true;
164
- for (const base of [...contract.vLinearizedBaseContracts].reverse()) {
165
- if (base === null || base === undefined) {
166
- complete = false;
167
- break;
168
- }
169
- for (const varDecl of base.vStateVariables) {
170
- // Not part of layout
171
- if (varDecl.mutability === solc_typed_ast_1.Mutability.Constant ||
172
- varDecl.mutability === solc_typed_ast_1.Mutability.Immutable ||
173
- varDecl.storageLocation === solc_typed_ast_1.DataLocation.Transient) {
174
- continue;
175
- }
176
- let typeNode;
177
- try {
178
- typeNode = variableDeclarationToTypeNode(varDecl, infer);
179
- }
180
- catch (e) {
181
- /**
182
- * Missing type info. If this is a:
183
- * - map type
184
- * - array type
185
- *
186
- * then we can continue decoding as it takes exactly 32 bytes
187
- * statically in the layout. Otherwise we have to abort decoding
188
- */
189
- complete = false;
190
- if ((0, utils_2.isTypeStringStatic32BytesInStorage)(varDecl.typeString)) {
191
- typeNode = new MissingType(varDecl.vType);
192
- }
193
- else {
194
- break;
195
- }
196
- }
197
- stateVars.push([varDecl.name, simplifyType(typeNode, infer, solc_typed_ast_1.DataLocation.Storage)]);
198
- }
199
- }
200
- return [new ExpStructType(contract.name, stateVars), complete];
201
- }
202
- //# sourceMappingURL=exp_types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exp_types.js","sourceRoot":"","sources":["../../../src/debug/decoding/exp_types.ts"],"names":[],"mappings":";;;AAkGA,oCA6EC;AA2BD,sDAiDC;AA3PD,mDAmBwB;AACxB,uCAAsC;AACtC,mCAA6D;AAE7D;;;;GAIG;AACH,MAAa,aAAc,SAAQ,yBAAQ;IACvC,YACoB,IAAY,EACZ,MAAiC,EACjC,UAAgC,SAAS;QAEzD,KAAK,EAAE,CAAC;QAJQ,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAA2B;QACjC,YAAO,GAAP,OAAO,CAAkC;IAG7D,CAAC;IAED,EAAE;QACE,OAAO,UAAU,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC/G,CAAC;CACJ;AAZD,sCAYC;AAED,SAAS,qBAAqB,CAAC,CAAuB;IAClD,OAAO,CACH,CAAC,YAAY,oCAAmB;QAChC,CAAC,CAAC,qBAAqB,GAAG,CAAC;QAC3B,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC;YACjC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;YACrC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAC3C,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,CAAW,EAAE,KAAgB,EAAE,GAAkB;IACzE,IAAI,CAAC;QACD,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,eAAO,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CAAC,CAAsB,EAAE,KAAgB;IAC3E,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,eAAO,CAAC;QACnB,CAAC;QAED,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CACxB,IAAc,EACd,KAAgB,EAChB,MAAgC,SAAS;IAEzC,IAAI,IAAI,YAAY,0BAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAEvD,OAAO,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,0BAAS,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,IAAI,YAAY,4BAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAExD,OAAO,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,IAAI,CAAC,SAAS;YACrD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,4BAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,IAAI,YAAY,0BAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,0BAAS,CAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CACnF,CAAC;IACN,CAAC;IAED,IAAI,IAAI,YAAY,4BAAW,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExD,OAAO,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,4BAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,IAAI,YAAY,gCAAe,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,YAAY,iCAAgB,EAAE,CAAC;YAC9C,IAAA,uBAAM,EAAC,GAAG,KAAK,SAAS,EAAE,0CAA0C,EAAE,IAAI,CAAC,CAAC;YAC5E,MAAM,MAAM,GAA8B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5E,IAAI,MAAgB,CAAC;gBACrB,IAAI,CAAC;oBACD,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAiB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBACpE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,YAAY,+CAA8B,EAAE,CAAC;YAC5D,IAAI,cAAwB,CAAC;YAC7B,IAAI,CAAC;gBACD,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,cAAc,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,YAAY,mCAAkB,EAAE,CAAC;YAChD,OAAO,eAAO,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,YAAY,+BAAc,EAAE,CAAC;YAC5C,OAAO,IAAA,8BAAa,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IAED,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAa,WAAY,SAAQ,yBAAQ;IACrC,YAA4B,WAAiC;QACzD,KAAK,EAAE,CAAC;QADgB,gBAAW,GAAX,WAAW,CAAsB;IAE7D,CAAC;IAED,EAAE;QACE,OAAO,0BAA0B,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC;IAClE,CAAC;CACJ;AARD,kCAQC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,qBAAqB,CACjC,QAA4B,EAC5B,KAAgB;IAEhB,MAAM,SAAS,GAA8B,EAAE,CAAC;IAChD,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,QAAQ,GAAG,KAAK,CAAC;YACjB,MAAM;QACV,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,qBAAqB;YACrB,IACI,OAAO,CAAC,UAAU,KAAK,2BAAU,CAAC,QAAQ;gBAC1C,OAAO,CAAC,UAAU,KAAK,2BAAU,CAAC,SAAS;gBAC3C,OAAO,CAAC,eAAe,KAAK,6BAAY,CAAC,SAAS,EACpD,CAAC;gBACC,SAAS;YACb,CAAC;YAED,IAAI,QAAkB,CAAC;YAEvB,IAAI,CAAC;gBACD,QAAQ,GAAG,6BAA6B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT;;;;;;;mBAOG;gBACH,QAAQ,GAAG,KAAK,CAAC;gBACjB,IAAI,IAAA,0CAAkC,EAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBACzD,QAAQ,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACJ,MAAM;gBACV,CAAC;YACL,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,6BAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,OAAO,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnE,CAAC"}