solc-typed-ast 10.3.0 → 11.0.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.
- package/dist/ast/definitions.d.ts +2 -1
- package/dist/ast/definitions.d.ts.map +1 -1
- package/dist/ast/definitions.js +45 -56
- package/dist/ast/definitions.js.map +1 -1
- package/dist/ast/dispatch.d.ts +5 -4
- package/dist/ast/dispatch.d.ts.map +1 -1
- package/dist/ast/dispatch.js +22 -27
- package/dist/ast/dispatch.js.map +1 -1
- package/dist/ast/implementation/declaration/contract_definition.d.ts +0 -2
- package/dist/ast/implementation/declaration/contract_definition.d.ts.map +1 -1
- package/dist/ast/implementation/declaration/contract_definition.js +0 -24
- package/dist/ast/implementation/declaration/contract_definition.js.map +1 -1
- package/dist/ast/implementation/declaration/error_definition.d.ts +0 -14
- package/dist/ast/implementation/declaration/error_definition.d.ts.map +1 -1
- package/dist/ast/implementation/declaration/error_definition.js +0 -19
- package/dist/ast/implementation/declaration/error_definition.js.map +1 -1
- package/dist/ast/implementation/declaration/event_definition.d.ts +0 -18
- package/dist/ast/implementation/declaration/event_definition.d.ts.map +1 -1
- package/dist/ast/implementation/declaration/event_definition.js +0 -25
- package/dist/ast/implementation/declaration/event_definition.js.map +1 -1
- package/dist/ast/implementation/declaration/function_definition.d.ts +0 -18
- package/dist/ast/implementation/declaration/function_definition.d.ts.map +1 -1
- package/dist/ast/implementation/declaration/function_definition.js +0 -40
- package/dist/ast/implementation/declaration/function_definition.js.map +1 -1
- package/dist/ast/implementation/declaration/modifier_definition.d.ts +0 -14
- package/dist/ast/implementation/declaration/modifier_definition.d.ts.map +1 -1
- package/dist/ast/implementation/declaration/modifier_definition.js +0 -19
- package/dist/ast/implementation/declaration/modifier_definition.js.map +1 -1
- package/dist/ast/implementation/declaration/variable_declaration.d.ts +0 -34
- package/dist/ast/implementation/declaration/variable_declaration.d.ts.map +1 -1
- package/dist/ast/implementation/declaration/variable_declaration.js +0 -87
- package/dist/ast/implementation/declaration/variable_declaration.js.map +1 -1
- package/dist/ast/implementation/expression/function_call.d.ts +0 -17
- package/dist/ast/implementation/expression/function_call.d.ts.map +1 -1
- package/dist/ast/implementation/expression/function_call.js +0 -35
- package/dist/ast/implementation/expression/function_call.js.map +1 -1
- package/dist/ast/utils.d.ts +1 -1
- package/dist/ast/utils.js +1 -1
- package/dist/bin/compile.js +10 -7
- package/dist/bin/compile.js.map +1 -1
- package/dist/types/abi.d.ts +0 -12
- package/dist/types/abi.d.ts.map +1 -1
- package/dist/types/abi.js +1 -42
- package/dist/types/abi.js.map +1 -1
- package/dist/types/ast/index.d.ts +0 -1
- package/dist/types/ast/index.d.ts.map +1 -1
- package/dist/types/ast/index.js +0 -1
- package/dist/types/ast/index.js.map +1 -1
- package/dist/types/ast/internal/index.d.ts +0 -1
- package/dist/types/ast/internal/index.d.ts.map +1 -1
- package/dist/types/ast/internal/index.js +0 -1
- package/dist/types/ast/internal/index.js.map +1 -1
- package/dist/types/builtins.d.ts.map +1 -1
- package/dist/types/builtins.js +2 -3
- package/dist/types/builtins.js.map +1 -1
- package/dist/types/eval_const.d.ts.map +1 -1
- package/dist/types/eval_const.js +10 -9
- package/dist/types/eval_const.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/infer.d.ts +56 -20
- package/dist/types/infer.d.ts.map +1 -1
- package/dist/types/infer.js +338 -166
- package/dist/types/infer.js.map +1 -1
- package/dist/types/utils.d.ts +27 -30
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/utils.js +104 -144
- package/dist/types/utils.js.map +1 -1
- package/package.json +14 -15
- package/dist/types/ast/internal/inaccessible_dynamic_type.d.ts +0 -10
- package/dist/types/ast/internal/inaccessible_dynamic_type.d.ts.map +0 -1
- package/dist/types/ast/internal/inaccessible_dynamic_type.js +0 -16
- package/dist/types/ast/internal/inaccessible_dynamic_type.js.map +0 -1
- package/dist/types/ast/module_type.d.ts +0 -8
- package/dist/types/ast/module_type.d.ts.map +0 -1
- package/dist/types/ast/module_type.js +0 -18
- package/dist/types/ast/module_type.js.map +0 -1
- package/dist/types/typeStrings/index.d.ts +0 -2
- package/dist/types/typeStrings/index.d.ts.map +0 -1
- package/dist/types/typeStrings/index.js +0 -18
- package/dist/types/typeStrings/index.js.map +0 -1
- package/dist/types/typeStrings/typeString_parser.d.ts +0 -89
- package/dist/types/typeStrings/typeString_parser.d.ts.map +0 -1
- package/dist/types/typeStrings/typeString_parser.js +0 -5346
- package/dist/types/typeStrings/typeString_parser.js.map +0 -1
- package/dist/types/typeStrings/typeString_parser_header.d.ts +0 -30
- package/dist/types/typeStrings/typeString_parser_header.d.ts.map +0 -1
- package/dist/types/typeStrings/typeString_parser_header.js +0 -104
- package/dist/types/typeStrings/typeString_parser_header.js.map +0 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { InferType } from "../types";
|
|
1
2
|
import { ASTNode } from "./ast_node";
|
|
2
3
|
import { ContractDefinition } from "./implementation/declaration/contract_definition";
|
|
3
4
|
import { EnumDefinition } from "./implementation/declaration/enum_definition";
|
|
@@ -33,5 +34,5 @@ export declare type ScopeNode = SourceUnit | ContractDefinition | FunctionDefini
|
|
|
33
34
|
* functions/events with the same name but different arguments. In all other
|
|
34
35
|
* cases the returned set should have either 0 or 1 elements.
|
|
35
36
|
*/
|
|
36
|
-
export declare function resolveAny(name: string, ctx: ASTNode,
|
|
37
|
+
export declare function resolveAny(name: string, ctx: ASTNode, inference: InferType, inclusive?: boolean, ignoreVisiblity?: boolean): Set<AnyResolvable>;
|
|
37
38
|
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/ast/definitions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/ast/definitions.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,SAAS,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,8BAA8B,EAAE,MAAM,iEAAiE,CAAC;AACjH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACH,KAAK,EAEL,cAAc,EACd,cAAc,EACd,4BAA4B,EAC/B,MAAM,4BAA4B,CAAC;AAEpC;;GAEG;AACH,oBAAY,aAAa,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,kBAAkB,GAClB,8BAA8B,GAC9B,eAAe,CAAC;AAEtB;;GAEG;AACH,oBAAY,SAAS,GACf,UAAU,GACV,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,4BAA4B,GAC5B,KAAK,GACL,cAAc,GACd,cAAc,CAAC;AA8SrB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CACtB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,UAAQ,EACjB,eAAe,UAAQ,GACxB,GAAG,CAAC,aAAa,CAAC,CAqGpB"}
|
package/dist/ast/definitions.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.resolveAny = void 0;
|
|
|
4
4
|
const semver_1 = require("semver");
|
|
5
5
|
const _1 = require(".");
|
|
6
6
|
const misc_1 = require("../misc");
|
|
7
|
-
const
|
|
7
|
+
const types_1 = require("../types");
|
|
8
8
|
const constants_1 = require("./constants");
|
|
9
9
|
const contract_definition_1 = require("./implementation/declaration/contract_definition");
|
|
10
10
|
const enum_definition_1 = require("./implementation/declaration/enum_definition");
|
|
@@ -81,7 +81,7 @@ function getContainingScope(node, version) {
|
|
|
81
81
|
/**
|
|
82
82
|
* Lookup the definition corresponding to `name` in the `SourceUnit` `scope`. Yield all matches.
|
|
83
83
|
*/
|
|
84
|
-
function* lookupInSourceUnit(name, scope, visitedUnits) {
|
|
84
|
+
function* lookupInSourceUnit(name, inference, scope, visitedUnits) {
|
|
85
85
|
/**
|
|
86
86
|
* Hit a cycle during lookup due to recursive imports
|
|
87
87
|
*/
|
|
@@ -110,7 +110,7 @@ function* lookupInSourceUnit(name, scope, visitedUnits) {
|
|
|
110
110
|
else if (child.vSymbolAliases.length === 0) {
|
|
111
111
|
// import "..."
|
|
112
112
|
// @todo maybe its better to go through child.vSourceUnit.vExportedSymbols here?
|
|
113
|
-
yield* lookupInScope(name, child.vSourceUnit, visitedUnits, false);
|
|
113
|
+
yield* lookupInScope(name, child.vSourceUnit, inference, visitedUnits, false);
|
|
114
114
|
}
|
|
115
115
|
else {
|
|
116
116
|
// `import {<name>} from "..."` or `import {a as <name>} from "..."`
|
|
@@ -122,9 +122,7 @@ function* lookupInSourceUnit(name, scope, visitedUnits) {
|
|
|
122
122
|
else {
|
|
123
123
|
if (foreignDef instanceof meta_1.ImportDirective) {
|
|
124
124
|
symImportName = foreignDef.unitAlias;
|
|
125
|
-
|
|
126
|
-
throw new Error(`Unexpected ImportDirective foreign def with non-unit alias ${(0, misc_1.pp)(foreignDef)}`);
|
|
127
|
-
}
|
|
125
|
+
(0, misc_1.assert)(symImportName !== "", "Unexpected ImportDirective foreign def with non-unit alias {0}", foreignDef);
|
|
128
126
|
}
|
|
129
127
|
else {
|
|
130
128
|
symImportName = foreignDef.name;
|
|
@@ -141,7 +139,7 @@ function* lookupInSourceUnit(name, scope, visitedUnits) {
|
|
|
141
139
|
/**
|
|
142
140
|
* Lookup the definition corresponding to `name` in the `ContractDefinition` `scope`. Yield all matches.
|
|
143
141
|
*/
|
|
144
|
-
function* lookupInContractDefinition(name, scope, ignoreVisiblity) {
|
|
142
|
+
function* lookupInContractDefinition(name, inference, scope, ignoreVisiblity) {
|
|
145
143
|
const overridenSigHashes = new Set();
|
|
146
144
|
for (const base of scope.vLinearizedBaseContracts) {
|
|
147
145
|
for (const child of base.children) {
|
|
@@ -164,21 +162,15 @@ function* lookupInContractDefinition(name, scope, ignoreVisiblity) {
|
|
|
164
162
|
base !== scope) {
|
|
165
163
|
continue;
|
|
166
164
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
child
|
|
175
|
-
|
|
176
|
-
// we only use it internally here
|
|
177
|
-
sigHash = child.getterCanonicalSignatureHash(abi_1.ABIEncoderVersion.V2);
|
|
178
|
-
}
|
|
179
|
-
else if (child instanceof event_definition_1.EventDefinition) {
|
|
180
|
-
sigHash = child.canonicalSignatureHash(abi_1.ABIEncoderVersion.V2);
|
|
181
|
-
}
|
|
165
|
+
/**
|
|
166
|
+
* Its a safe to assume V2 as its backward-compatible and we only use it internally here
|
|
167
|
+
*/
|
|
168
|
+
const sigHash = child instanceof function_definition_1.FunctionDefinition ||
|
|
169
|
+
child instanceof event_definition_1.EventDefinition ||
|
|
170
|
+
(child instanceof variable_declaration_1.VariableDeclaration &&
|
|
171
|
+
child.visibility === constants_1.StateVariableVisibility.Public)
|
|
172
|
+
? inference.signatureHash(child, types_1.ABIEncoderVersion.V2)
|
|
173
|
+
: undefined;
|
|
182
174
|
if (sigHash !== undefined) {
|
|
183
175
|
if (overridenSigHashes.has(sigHash)) {
|
|
184
176
|
continue;
|
|
@@ -205,15 +197,22 @@ function* lookupInFunctionDefinition(name, scope) {
|
|
|
205
197
|
/**
|
|
206
198
|
* Lookup the definition corresponding to `name` in the `Block|UncheckedBlock` `scope`. Yield all matches.
|
|
207
199
|
*/
|
|
208
|
-
function* lookupInBlock(name, scope) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
200
|
+
function* lookupInBlock(name, scope, inference) {
|
|
201
|
+
let declarations;
|
|
202
|
+
if ((0, semver_1.lt)(inference.version, "0.5.0")) {
|
|
203
|
+
declarations = scope.getChildrenByType(variable_declaration_1.VariableDeclaration);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
declarations = scope.children
|
|
207
|
+
.filter((node) => node instanceof statement_1.VariableDeclarationStatement)
|
|
208
|
+
.reduce((declarations, statement) => [
|
|
209
|
+
...declarations,
|
|
210
|
+
...statement.vDeclarations
|
|
211
|
+
], []);
|
|
212
|
+
}
|
|
213
|
+
for (const declaration of declarations) {
|
|
214
|
+
if (declaration.name === name) {
|
|
215
|
+
yield declaration;
|
|
217
216
|
}
|
|
218
217
|
}
|
|
219
218
|
}
|
|
@@ -223,13 +222,13 @@ function* lookupInBlock(name, scope) {
|
|
|
223
222
|
* 1. Multiple FunctionDefinitions (and potentially VariableDeclarations corresponding to public state variables) with the same name and DIFFERENT SIGNATURES
|
|
224
223
|
* 2. Multiple EventDefinitions with the same name and different signatures.
|
|
225
224
|
*/
|
|
226
|
-
function lookupInScope(name, scope, visitedUnits = new Set(), ignoreVisiblity) {
|
|
225
|
+
function lookupInScope(name, scope, inference, visitedUnits = new Set(), ignoreVisiblity) {
|
|
227
226
|
let results;
|
|
228
227
|
if (scope instanceof meta_1.SourceUnit) {
|
|
229
|
-
results = lookupInSourceUnit(name, scope, visitedUnits);
|
|
228
|
+
results = lookupInSourceUnit(name, inference, scope, visitedUnits);
|
|
230
229
|
}
|
|
231
230
|
else if (scope instanceof contract_definition_1.ContractDefinition) {
|
|
232
|
-
results = lookupInContractDefinition(name, scope, ignoreVisiblity);
|
|
231
|
+
results = lookupInContractDefinition(name, inference, scope, ignoreVisiblity);
|
|
233
232
|
}
|
|
234
233
|
else if (scope instanceof function_definition_1.FunctionDefinition) {
|
|
235
234
|
results = lookupInFunctionDefinition(name, scope);
|
|
@@ -241,7 +240,7 @@ function lookupInScope(name, scope, visitedUnits = new Set(), ignoreVisiblity) {
|
|
|
241
240
|
results = scope.vDeclarations.filter((decl) => decl.name === name);
|
|
242
241
|
}
|
|
243
242
|
else if (scope instanceof statement_1.Block || scope instanceof statement_1.UncheckedBlock) {
|
|
244
|
-
results = lookupInBlock(name, scope);
|
|
243
|
+
results = lookupInBlock(name, scope, inference);
|
|
245
244
|
}
|
|
246
245
|
else if (scope instanceof statement_1.TryCatchClause) {
|
|
247
246
|
results = scope.vParameters
|
|
@@ -268,8 +267,10 @@ function lookupInScope(name, scope, visitedUnits = new Set(), ignoreVisiblity) {
|
|
|
268
267
|
* functions/events with the same name but different arguments. In all other
|
|
269
268
|
* cases the returned set should have either 0 or 1 elements.
|
|
270
269
|
*/
|
|
271
|
-
function resolveAny(name, ctx,
|
|
272
|
-
let scope = inclusive && isScope(ctx, version)
|
|
270
|
+
function resolveAny(name, ctx, inference, inclusive = false, ignoreVisiblity = false) {
|
|
271
|
+
let scope = inclusive && isScope(ctx, inference.version)
|
|
272
|
+
? ctx
|
|
273
|
+
: getContainingScope(ctx, inference.version);
|
|
273
274
|
const elements = name.split(".");
|
|
274
275
|
for (let i = 0; i < elements.length; i++) {
|
|
275
276
|
const element = elements[i];
|
|
@@ -278,20 +279,16 @@ function resolveAny(name, ctx, version, inclusive = false, ignoreVisiblity = fal
|
|
|
278
279
|
// If this is the first element (e.g. `A` in `A.B.C`), walk up the
|
|
279
280
|
// stack of scopes starting from the current context, looking for `A`
|
|
280
281
|
while (scope !== undefined) {
|
|
281
|
-
res = lookupInScope(element, scope, undefined, ignoreVisiblity);
|
|
282
|
+
res = lookupInScope(element, scope, inference, undefined, ignoreVisiblity);
|
|
282
283
|
if (res.size > 0) {
|
|
283
284
|
// Sanity check - when multiple results are found, they must either be overloaded events
|
|
284
285
|
// or overloaded functions/public state vars.
|
|
285
286
|
if (res.size > 1) {
|
|
286
|
-
|
|
287
|
+
(0, misc_1.assert)((0, misc_1.forAll)(res, (def) => def instanceof event_definition_1.EventDefinition ||
|
|
287
288
|
def instanceof function_definition_1.FunctionDefinition ||
|
|
288
289
|
(def instanceof variable_declaration_1.VariableDeclaration &&
|
|
289
290
|
def.stateVariable &&
|
|
290
|
-
def.visibility === constants_1.StateVariableVisibility.Public))
|
|
291
|
-
throw new Error(`Unexpected intermediate def for ${element} in ${name}: ${[
|
|
292
|
-
...res
|
|
293
|
-
].map((n) => `${n.constructor.name}#${n.id}`)}`);
|
|
294
|
-
}
|
|
291
|
+
def.visibility === constants_1.StateVariableVisibility.Public)), "Unexpected intermediate def for {0} in {1}: {2}", element, name, res);
|
|
295
292
|
}
|
|
296
293
|
const first = [...res][0];
|
|
297
294
|
// If we are resolving `A` in `A.B` skip anything that is
|
|
@@ -303,13 +300,13 @@ function resolveAny(name, ctx, version, inclusive = false, ignoreVisiblity = fal
|
|
|
303
300
|
break;
|
|
304
301
|
}
|
|
305
302
|
}
|
|
306
|
-
scope = getContainingScope(scope, version);
|
|
303
|
+
scope = getContainingScope(scope, inference.version);
|
|
307
304
|
}
|
|
308
305
|
}
|
|
309
306
|
else {
|
|
310
307
|
// If this is a later segment (e.g. `B` or `C` in `A.B.C`),
|
|
311
308
|
// then resolve it recursively in the current scope.
|
|
312
|
-
res = resolveAny(element, scope,
|
|
309
|
+
res = resolveAny(element, scope, inference, true, ignoreVisiblity);
|
|
313
310
|
}
|
|
314
311
|
// We didn't find anything - return empty set
|
|
315
312
|
if (res === undefined || res.size === 0) {
|
|
@@ -322,19 +319,11 @@ function resolveAny(name, ctx, version, inclusive = false, ignoreVisiblity = fal
|
|
|
322
319
|
// We found multiple definitions for an intermediate segment of
|
|
323
320
|
// identifier path (e.g. multiple resolutions for `A` in `A.B`). This
|
|
324
321
|
// shouldn't happen.
|
|
325
|
-
|
|
326
|
-
throw new Error(`Ambigious path resolution for ${element} in ${name} in ctx ${(0, misc_1.pp)(ctx)}: got ${[
|
|
327
|
-
...res
|
|
328
|
-
]
|
|
329
|
-
.map(misc_1.pp)
|
|
330
|
-
.join(",")}`);
|
|
331
|
-
}
|
|
322
|
+
(0, misc_1.assert)(res.size === 1, "Ambigious path resolution for {0} in {1} in ctx {2}: got {3}", element, name, ctx, res);
|
|
332
323
|
const resolvedNode = [...res][0];
|
|
333
324
|
// An intermediate segment in an identifier path (e.g. `A` in `A.B`) should always resolve to a
|
|
334
325
|
// single imported source unit or contract.
|
|
335
|
-
|
|
336
|
-
throw new Error(`Unexpected non-scope node for ${element} in ${name} in ctx ${(0, misc_1.pp)(ctx)}: got ${(0, misc_1.pp)(resolvedNode)}`);
|
|
337
|
-
}
|
|
326
|
+
(0, misc_1.assert)(resolvedNode instanceof meta_1.ImportDirective || resolvedNode instanceof contract_definition_1.ContractDefinition, "Unexpected non-scope node for {0} in {1} in ctx {2}: got {3}", element, name, ctx, resolvedNode);
|
|
338
327
|
scope = resolvedNode instanceof meta_1.ImportDirective ? resolvedNode.vSourceUnit : resolvedNode;
|
|
339
328
|
}
|
|
340
329
|
return new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/ast/definitions.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AACjC,wBAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/ast/definitions.ts"],"names":[],"mappings":"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"}
|
package/dist/ast/dispatch.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { InferType } from "../types";
|
|
1
2
|
import { ASTNodeConstructor } from "./ast_node";
|
|
2
3
|
import { ContractDefinition } from "./implementation/declaration/contract_definition";
|
|
3
4
|
import { EventDefinition } from "./implementation/declaration/event_definition";
|
|
@@ -7,7 +8,7 @@ import { VariableDeclaration } from "./implementation/declaration/variable_decla
|
|
|
7
8
|
import { EmitStatement } from "./implementation/statement/emit_statement";
|
|
8
9
|
declare type FunctionLikeResolvable = FunctionDefinition | ModifierDefinition | EventDefinition;
|
|
9
10
|
declare type Resolvable = FunctionLikeResolvable | VariableDeclaration;
|
|
10
|
-
export declare function resolve<T extends Resolvable>(scope: ContractDefinition, target: T, onlyParents?: boolean): T | undefined;
|
|
11
|
+
export declare function resolve<T extends Resolvable>(scope: ContractDefinition, target: T, inference: InferType, onlyParents?: boolean): T | undefined;
|
|
11
12
|
/**
|
|
12
13
|
* Resolve an inheritable contract property following the standard C3 linearization order.
|
|
13
14
|
*
|
|
@@ -19,8 +20,8 @@ export declare function resolve<T extends Resolvable>(scope: ContractDefinition,
|
|
|
19
20
|
* functions/events can have the same name and different arguments
|
|
20
21
|
* @param onlyParents boolean flag specifing that we want to only look through the bases of the contract.
|
|
21
22
|
*/
|
|
22
|
-
export declare function resolveByName<T extends Resolvable>(scope: ContractDefinition, constructor: ASTNodeConstructor<T>, name: string, onlyParents?: boolean): T[];
|
|
23
|
-
export declare function resolveEvent(scope: ContractDefinition, statement: EmitStatement, onlyParents?: boolean): EventDefinition | undefined;
|
|
24
|
-
export declare function resolveCallable(scope: ContractDefinition, definition: FunctionDefinition | VariableDeclaration, onlyParents?: boolean): FunctionDefinition | VariableDeclaration | undefined;
|
|
23
|
+
export declare function resolveByName<T extends Resolvable>(scope: ContractDefinition, constructor: ASTNodeConstructor<T>, name: string, inference: InferType, onlyParents?: boolean): T[];
|
|
24
|
+
export declare function resolveEvent(scope: ContractDefinition, statement: EmitStatement, inference: InferType, onlyParents?: boolean): EventDefinition | undefined;
|
|
25
|
+
export declare function resolveCallable(scope: ContractDefinition, definition: FunctionDefinition | VariableDeclaration, inference: InferType, onlyParents?: boolean): FunctionDefinition | VariableDeclaration | undefined;
|
|
25
26
|
export {};
|
|
26
27
|
//# sourceMappingURL=dispatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/ast/dispatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/ast/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAIxF,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE1E,aAAK,sBAAsB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,eAAe,CAAC;AACxF,aAAK,UAAU,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAyB/D,wBAAgB,OAAO,CAAC,CAAC,SAAS,UAAU,EACxC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,SAAS,EACpB,WAAW,UAAQ,GACpB,CAAC,GAAG,SAAS,CA8Bf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,UAAU,EAC9C,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,WAAW,UAAQ,GACpB,CAAC,EAAE,CAgCL;AAiBD,wBAAgB,YAAY,CACxB,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,SAAS,EACpB,WAAW,UAAQ,GACpB,eAAe,GAAG,SAAS,CAW7B;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,kBAAkB,GAAG,mBAAmB,EACpD,SAAS,EAAE,SAAS,EACpB,WAAW,UAAQ,GACpB,kBAAkB,GAAG,mBAAmB,GAAG,SAAS,CAwBtD"}
|
package/dist/ast/dispatch.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveCallable = exports.resolveEvent = exports.resolveByName = exports.resolve = void 0;
|
|
4
|
-
const
|
|
4
|
+
const types_1 = require("../types");
|
|
5
5
|
const constants_1 = require("./constants");
|
|
6
6
|
const contract_definition_1 = require("./implementation/declaration/contract_definition");
|
|
7
7
|
const event_definition_1 = require("./implementation/declaration/event_definition");
|
|
@@ -11,33 +11,28 @@ const variable_declaration_1 = require("./implementation/declaration/variable_de
|
|
|
11
11
|
const identifier_1 = require("./implementation/expression/identifier");
|
|
12
12
|
const member_access_1 = require("./implementation/expression/member_access");
|
|
13
13
|
function getResolvableCollection(contract, target) {
|
|
14
|
-
let collection;
|
|
15
14
|
if (target === function_definition_1.FunctionDefinition) {
|
|
16
|
-
|
|
15
|
+
return contract.vFunctions;
|
|
17
16
|
}
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
if (target === modifier_definition_1.ModifierDefinition) {
|
|
18
|
+
return contract.vModifiers;
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
if (target === event_definition_1.EventDefinition) {
|
|
21
|
+
return contract.vEvents;
|
|
23
22
|
}
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
if (target === variable_declaration_1.VariableDeclaration) {
|
|
24
|
+
return contract.vStateVariables;
|
|
26
25
|
}
|
|
27
|
-
|
|
28
|
-
throw new Error("Unable to select resolvable collection for target " + target.constructor.name);
|
|
29
|
-
}
|
|
30
|
-
return collection;
|
|
26
|
+
throw new Error("Unable to select resolvable collection for target " + target.name);
|
|
31
27
|
}
|
|
32
|
-
function resolve(scope, target, onlyParents = false) {
|
|
28
|
+
function resolve(scope, target, inference, onlyParents = false) {
|
|
33
29
|
let finder;
|
|
34
30
|
if (target instanceof variable_declaration_1.VariableDeclaration) {
|
|
35
31
|
finder = (candidate) => candidate.name === target.name;
|
|
36
32
|
}
|
|
37
33
|
else {
|
|
38
|
-
const signatureHash =
|
|
39
|
-
finder = (candidate) => signatureHash ===
|
|
40
|
-
candidate.canonicalSignatureHash(abi_1.ABIEncoderVersion.V2);
|
|
34
|
+
const signatureHash = inference.signatureHash(target, types_1.ABIEncoderVersion.V2);
|
|
35
|
+
finder = (candidate) => signatureHash === inference.signatureHash(candidate, types_1.ABIEncoderVersion.V2);
|
|
41
36
|
}
|
|
42
37
|
for (const base of scope.vLinearizedBaseContracts) {
|
|
43
38
|
if (onlyParents && base === scope) {
|
|
@@ -63,7 +58,7 @@ exports.resolve = resolve;
|
|
|
63
58
|
* functions/events can have the same name and different arguments
|
|
64
59
|
* @param onlyParents boolean flag specifing that we want to only look through the bases of the contract.
|
|
65
60
|
*/
|
|
66
|
-
function resolveByName(scope, constructor, name, onlyParents = false) {
|
|
61
|
+
function resolveByName(scope, constructor, name, inference, onlyParents = false) {
|
|
67
62
|
const result = [];
|
|
68
63
|
const found = new Set();
|
|
69
64
|
for (const base of scope.vLinearizedBaseContracts) {
|
|
@@ -80,7 +75,7 @@ function resolveByName(scope, constructor, name, onlyParents = false) {
|
|
|
80
75
|
*/
|
|
81
76
|
const resolvableIdentifier = resolvable instanceof variable_declaration_1.VariableDeclaration
|
|
82
77
|
? resolvable.name
|
|
83
|
-
:
|
|
78
|
+
: inference.signatureHash(resolvable, types_1.ABIEncoderVersion.V2);
|
|
84
79
|
if (resolvable.name === name && !found.has(resolvableIdentifier)) {
|
|
85
80
|
result.push(resolvable);
|
|
86
81
|
found.add(resolvableIdentifier);
|
|
@@ -100,31 +95,31 @@ function isExplicitlyBound(call) {
|
|
|
100
95
|
}
|
|
101
96
|
return false;
|
|
102
97
|
}
|
|
103
|
-
function resolveEvent(scope, statement, onlyParents = false) {
|
|
98
|
+
function resolveEvent(scope, statement, inference, onlyParents = false) {
|
|
104
99
|
const call = statement.vEventCall;
|
|
105
100
|
const definition = call.vReferencedDeclaration;
|
|
106
101
|
if (definition instanceof event_definition_1.EventDefinition) {
|
|
107
|
-
return isExplicitlyBound(call)
|
|
102
|
+
return isExplicitlyBound(call)
|
|
103
|
+
? definition
|
|
104
|
+
: resolve(scope, definition, inference, onlyParents);
|
|
108
105
|
}
|
|
109
106
|
return undefined;
|
|
110
107
|
}
|
|
111
108
|
exports.resolveEvent = resolveEvent;
|
|
112
|
-
function resolveCallable(scope, definition, onlyParents = false) {
|
|
113
|
-
const selector = definition
|
|
114
|
-
? definition.canonicalSignatureHash(abi_1.ABIEncoderVersion.V2)
|
|
115
|
-
: definition.getterCanonicalSignatureHash(abi_1.ABIEncoderVersion.V2);
|
|
109
|
+
function resolveCallable(scope, definition, inference, onlyParents = false) {
|
|
110
|
+
const selector = inference.signatureHash(definition, types_1.ABIEncoderVersion.V2);
|
|
116
111
|
for (const base of scope.vLinearizedBaseContracts) {
|
|
117
112
|
if (onlyParents && base === scope) {
|
|
118
113
|
continue;
|
|
119
114
|
}
|
|
120
115
|
for (const fn of base.vFunctions) {
|
|
121
|
-
if (
|
|
116
|
+
if (inference.signatureHash(fn, types_1.ABIEncoderVersion.V2) === selector) {
|
|
122
117
|
return fn;
|
|
123
118
|
}
|
|
124
119
|
}
|
|
125
120
|
for (const v of base.vStateVariables) {
|
|
126
121
|
if (v.visibility === constants_1.StateVariableVisibility.Public) {
|
|
127
|
-
if (
|
|
122
|
+
if (inference.signatureHash(v, types_1.ABIEncoderVersion.V2) === selector) {
|
|
128
123
|
return v;
|
|
129
124
|
}
|
|
130
125
|
}
|
package/dist/ast/dispatch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/ast/dispatch.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/ast/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ABIEncoderVersion } from "../../../types/abi";
|
|
2
1
|
import { ASTNode, ASTNodeWithChildren } from "../../ast_node";
|
|
3
2
|
import { ContractKind } from "../../constants";
|
|
4
3
|
import { WithDanglingDocs, WithPrecedingDocs } from "../../documentation";
|
|
@@ -132,7 +131,6 @@ export declare class ContractDefinition extends ASTNodeWithChildren<ASTNode> imp
|
|
|
132
131
|
* Constructor reference (if definition is present for this contract)
|
|
133
132
|
*/
|
|
134
133
|
get vConstructor(): FunctionDefinition | undefined;
|
|
135
|
-
interfaceId(encoderVersion: ABIEncoderVersion): string | undefined;
|
|
136
134
|
/**
|
|
137
135
|
* Returns `true` if `other` contract is present in the inheritance chain
|
|
138
136
|
* of the current contract. Returns `false` otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_definition.d.ts","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/contract_definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"contract_definition.d.ts","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/contract_definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ContractDefinition = void 0;
|
|
4
4
|
const ast_node_1 = require("../../ast_node");
|
|
5
|
-
const constants_1 = require("../../constants");
|
|
6
5
|
const documentation_1 = require("../../documentation");
|
|
7
6
|
const inheritance_specifier_1 = require("../meta/inheritance_specifier");
|
|
8
7
|
const using_for_directive_1 = require("../meta/using_for_directive");
|
|
@@ -152,29 +151,6 @@ class ContractDefinition extends ast_node_1.ASTNodeWithChildren {
|
|
|
152
151
|
get vConstructor() {
|
|
153
152
|
return this.vFunctions.find((fn) => fn.isConstructor);
|
|
154
153
|
}
|
|
155
|
-
interfaceId(encoderVersion) {
|
|
156
|
-
if (this.kind === constants_1.ContractKind.Interface ||
|
|
157
|
-
(this.kind === constants_1.ContractKind.Contract && this.abstract)) {
|
|
158
|
-
const selectors = [];
|
|
159
|
-
for (const fn of this.vFunctions) {
|
|
160
|
-
const hash = fn.canonicalSignatureHash(encoderVersion);
|
|
161
|
-
if (hash) {
|
|
162
|
-
selectors.push(hash);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
for (const v of this.vStateVariables) {
|
|
166
|
-
if (v.visibility === constants_1.StateVariableVisibility.Public) {
|
|
167
|
-
selectors.push(v.getterCanonicalSignatureHash(encoderVersion));
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return selectors
|
|
171
|
-
.map((selector) => BigInt("0x" + selector))
|
|
172
|
-
.reduce((a, b) => a ^ b, 0n)
|
|
173
|
-
.toString(16)
|
|
174
|
-
.padStart(8, "0");
|
|
175
|
-
}
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
178
154
|
/**
|
|
179
155
|
* Returns `true` if `other` contract is present in the inheritance chain
|
|
180
156
|
* of the current contract. Returns `false` otherwise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract_definition.js","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/contract_definition.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"contract_definition.js","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/contract_definition.ts"],"names":[],"mappings":";;;AAAA,6CAA8D;AAE9D,uDAO6B;AAC7B,yEAAqE;AAGrE,qEAAgE;AAChE,uDAAmD;AACnD,yDAAqD;AACrD,yDAAqD;AACrD,+DAA2D;AAC3D,+DAA2D;AAC3D,2DAAuD;AACvD,6FAAsF;AACtF,iEAA6D;AAE7D,MAAa,kBACT,SAAQ,8BAA4B;IAmDpC,YACI,EAAU,EACV,GAAW,EACX,IAAY,EACZ,KAAa,EACb,IAAkB,EAClB,QAAiB,EACjB,gBAAyB,EACzB,uBAAiC,EACjC,UAAoB,EACpB,aAAgD,EAChD,QAA4B,EAC5B,YAAqB,EACrB,GAAS;QAET,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAE7B,IAAI,QAAQ,EAAE;YACV,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;gBACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAC1B;SACJ;QAED,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QACb,OAAO,IAAA,gCAAgB,EAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,aAAa,CAAC,KAAmD;QACjE,IAAA,gCAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,qBAAqB;QACrB,OAAO,IAAA,wCAAwB,EAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,qBAAqB,CAAC,KAAmD;QACzE,IAAA,wCAAwB,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAe,CAAC;IACjE,CAAC;IAED,IAAI,MAAM,CAAC,KAAiB;QACxB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,mCAAmC,CAAC,CAAC;SACtF;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;QAErC,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAyB,CAAC;IAChG,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;QAErC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAsB,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,4CAAoB,CACvB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAI,eAAe;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,0CAAmB,CACvB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,wCAAkB,CACvB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,kCAAe,CACvB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,kCAAe,CACvB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,wCAAkB,CACvB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,mBAAmB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,uCAAiB,CACvB,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,oCAAgB,CACvB,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,gCAAc,CACvB,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,mEAA8B,CACvB,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAyB;QAClC,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;CACJ;AAhQD,gDAgQC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ABIEncoderVersion } from "../../../types/abi";
|
|
2
1
|
import { ASTNode } from "../../ast_node";
|
|
3
2
|
import { SourceUnit } from "../meta";
|
|
4
3
|
import { ParameterList } from "../meta/parameter_list";
|
|
@@ -31,18 +30,5 @@ export declare class ErrorDefinition extends ASTNode {
|
|
|
31
30
|
* Reference to a scoped `SourceUnit` if event is declared on file level.
|
|
32
31
|
*/
|
|
33
32
|
get vScope(): ContractDefinition | SourceUnit;
|
|
34
|
-
/**
|
|
35
|
-
* Returns canonical representation of the error signature as string
|
|
36
|
-
*
|
|
37
|
-
* @deprecated
|
|
38
|
-
*/
|
|
39
|
-
canonicalSignature(encoderVersion: ABIEncoderVersion): string;
|
|
40
|
-
/**
|
|
41
|
-
* Returns HEX string containing first 4 bytes of Keccak256 hash function
|
|
42
|
-
* applied to the canonical representation of the error signature.
|
|
43
|
-
*
|
|
44
|
-
* @deprecated
|
|
45
|
-
*/
|
|
46
|
-
canonicalSignatureHash(encoderVersion: ABIEncoderVersion): string;
|
|
47
33
|
}
|
|
48
34
|
//# sourceMappingURL=error_definition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error_definition.d.ts","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/error_definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"error_definition.d.ts","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/error_definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,qBAAa,eAAgB,SAAQ,OAAO;IACxC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAAC;IAEjD;;OAEG;IACH,WAAW,EAAE,aAAa,CAAC;gBAGvB,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,aAAa,EACzB,aAAa,CAAC,EAAE,MAAM,GAAG,uBAAuB,EAChD,YAAY,CAAC,EAAE,MAAM,EACrB,GAAG,CAAC,EAAE,GAAG;IAab,IAAI,QAAQ,IAAI,SAAS,OAAO,EAAE,CAEjC;IAED;;;OAGG;IACH,IAAI,MAAM,IAAI,kBAAkB,GAAG,UAAU,CAE5C;CACJ"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ErrorDefinition = void 0;
|
|
4
4
|
const ast_node_1 = require("../../ast_node");
|
|
5
|
-
const utils_1 = require("../../utils");
|
|
6
5
|
class ErrorDefinition extends ast_node_1.ASTNode {
|
|
7
6
|
constructor(id, src, name, parameters, documentation, nameLocation, raw) {
|
|
8
7
|
super(id, src, raw);
|
|
@@ -22,24 +21,6 @@ class ErrorDefinition extends ast_node_1.ASTNode {
|
|
|
22
21
|
get vScope() {
|
|
23
22
|
return this.parent;
|
|
24
23
|
}
|
|
25
|
-
/**
|
|
26
|
-
* Returns canonical representation of the error signature as string
|
|
27
|
-
*
|
|
28
|
-
* @deprecated
|
|
29
|
-
*/
|
|
30
|
-
canonicalSignature(encoderVersion) {
|
|
31
|
-
const args = this.vParameters.vParameters.map((arg) => arg.canonicalSignatureType(encoderVersion));
|
|
32
|
-
return this.name + "(" + args.join(",") + ")";
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Returns HEX string containing first 4 bytes of Keccak256 hash function
|
|
36
|
-
* applied to the canonical representation of the error signature.
|
|
37
|
-
*
|
|
38
|
-
* @deprecated
|
|
39
|
-
*/
|
|
40
|
-
canonicalSignatureHash(encoderVersion) {
|
|
41
|
-
return (0, utils_1.encodeFuncSignature)(this.canonicalSignature(encoderVersion));
|
|
42
|
-
}
|
|
43
24
|
}
|
|
44
25
|
exports.ErrorDefinition = ErrorDefinition;
|
|
45
26
|
//# sourceMappingURL=error_definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error_definition.js","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/error_definition.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"error_definition.js","sourceRoot":"","sources":["../../../../src/ast/implementation/declaration/error_definition.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAMzC,MAAa,eAAgB,SAAQ,kBAAO;IAwBxC,YACI,EAAU,EACV,GAAW,EACX,IAAY,EACZ,UAAyB,EACzB,aAAgD,EAChD,YAAqB,EACrB,GAAS;QAET,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAE9B,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,MAAyC,CAAC;IAC1D,CAAC;CACJ;AAvDD,0CAuDC"}
|