@subsquid/evm-typegen 4.6.0 → 5.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/lib/abi.support.d.ts +3 -0
- package/lib/abi.support.d.ts.map +1 -0
- package/lib/abi.support.js +9 -0
- package/lib/abi.support.js.map +1 -0
- package/lib/description.d.ts +76 -0
- package/lib/description.d.ts.map +1 -0
- package/lib/description.js +156 -0
- package/lib/description.js.map +1 -0
- package/lib/main.js +36 -35
- package/lib/main.js.map +1 -1
- package/lib/multicall.d.ts +17 -13
- package/lib/multicall.d.ts.map +1 -1
- package/lib/multicall.js +9 -7
- package/lib/multicall.js.map +1 -1
- package/lib/typegen.d.ts +8 -23
- package/lib/typegen.d.ts.map +1 -1
- package/lib/typegen.js +267 -187
- package/lib/typegen.js.map +1 -1
- package/package.json +9 -9
- package/src/abi.support.ts +2 -0
- package/src/description.ts +221 -0
- package/src/main.ts +195 -194
- package/src/multicall.ts +171 -159
- package/src/typegen.ts +276 -227
- package/lib/util/types.d.ts +0 -3
- package/lib/util/types.d.ts.map +0 -1
- package/lib/util/types.js +0 -46
- package/lib/util/types.js.map +0 -1
- package/src/util/types.ts +0 -54
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abi.support.d.ts","sourceRoot":"","sources":["../src/abi.support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAA;AACpE,YAAY,EAAC,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContractBase = exports.indexed = exports.func = exports.event = void 0;
|
|
4
|
+
var evm_abi_1 = require("@subsquid/evm-abi");
|
|
5
|
+
Object.defineProperty(exports, "event", { enumerable: true, get: function () { return evm_abi_1.event; } });
|
|
6
|
+
Object.defineProperty(exports, "func", { enumerable: true, get: function () { return evm_abi_1.func; } });
|
|
7
|
+
Object.defineProperty(exports, "indexed", { enumerable: true, get: function () { return evm_abi_1.indexed; } });
|
|
8
|
+
Object.defineProperty(exports, "ContractBase", { enumerable: true, get: function () { return evm_abi_1.ContractBase; } });
|
|
9
|
+
//# sourceMappingURL=abi.support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abi.support.js","sourceRoot":"","sources":["../src/abi.support.ts"],"names":[],"mappings":";;;AAAA,6CAAoE;AAA5D,gGAAA,KAAK,OAAA;AAAE,+FAAA,IAAI,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { Abi, AbiParameter } from 'abitype';
|
|
2
|
+
export interface ContractDef {
|
|
3
|
+
events: EventDef[];
|
|
4
|
+
functions: FunctionDef[];
|
|
5
|
+
}
|
|
6
|
+
export interface DocDef {
|
|
7
|
+
notice?: string;
|
|
8
|
+
dev?: string;
|
|
9
|
+
params?: Record<string, string>;
|
|
10
|
+
returns?: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
/** NatSpec documentation extracted from a compilation artifact's userdoc/devdoc fields. */
|
|
13
|
+
export interface NatSpec {
|
|
14
|
+
userdoc?: {
|
|
15
|
+
methods?: Record<string, {
|
|
16
|
+
notice?: string;
|
|
17
|
+
}>;
|
|
18
|
+
events?: Record<string, {
|
|
19
|
+
notice?: string;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
devdoc?: {
|
|
23
|
+
methods?: Record<string, {
|
|
24
|
+
details?: string;
|
|
25
|
+
params?: Record<string, string>;
|
|
26
|
+
returns?: Record<string, string>;
|
|
27
|
+
}>;
|
|
28
|
+
events?: Record<string, {
|
|
29
|
+
details?: string;
|
|
30
|
+
params?: Record<string, string>;
|
|
31
|
+
}>;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface EventDef {
|
|
35
|
+
name: string;
|
|
36
|
+
signature: string;
|
|
37
|
+
topic: string;
|
|
38
|
+
inputs: FieldDef[];
|
|
39
|
+
key: string;
|
|
40
|
+
typeName: string;
|
|
41
|
+
docs?: DocDef;
|
|
42
|
+
}
|
|
43
|
+
export interface FunctionDef {
|
|
44
|
+
name: string;
|
|
45
|
+
signature: string;
|
|
46
|
+
selector: string;
|
|
47
|
+
inputs: FieldDef[];
|
|
48
|
+
outputs: FieldDef[];
|
|
49
|
+
key: string;
|
|
50
|
+
paramsTypeName: string;
|
|
51
|
+
returnTypeName: string;
|
|
52
|
+
docs?: DocDef;
|
|
53
|
+
}
|
|
54
|
+
export interface FieldDef {
|
|
55
|
+
name: string;
|
|
56
|
+
type: TypeDef;
|
|
57
|
+
indexed?: boolean;
|
|
58
|
+
doc?: string;
|
|
59
|
+
}
|
|
60
|
+
export type TypeDef = {
|
|
61
|
+
kind: 'primitive';
|
|
62
|
+
name: string;
|
|
63
|
+
} | {
|
|
64
|
+
kind: 'array';
|
|
65
|
+
item: TypeDef;
|
|
66
|
+
} | {
|
|
67
|
+
kind: 'fixedArray';
|
|
68
|
+
item: TypeDef;
|
|
69
|
+
size: number;
|
|
70
|
+
} | {
|
|
71
|
+
kind: 'tuple';
|
|
72
|
+
fields: FieldDef[];
|
|
73
|
+
};
|
|
74
|
+
export declare function describe(abi: Abi, natspec?: NatSpec): ContractDef;
|
|
75
|
+
export declare function canonicalType(p: AbiParameter): string;
|
|
76
|
+
//# sourceMappingURL=description.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"description.d.ts","sourceRoot":"","sources":["../src/description.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.describe = describe;
|
|
4
|
+
exports.canonicalType = canonicalType;
|
|
5
|
+
const evm_abi_1 = require("@subsquid/evm-abi");
|
|
6
|
+
function describe(abi, natspec) {
|
|
7
|
+
const rawEvents = abi.filter((x) => x.type === 'event');
|
|
8
|
+
const rawFunctions = abi.filter((x) => x.type === 'function');
|
|
9
|
+
const eventSuffix = overloadSuffixer(rawEvents);
|
|
10
|
+
const functionSuffix = overloadSuffixer(rawFunctions);
|
|
11
|
+
const events = rawEvents.map((e) => {
|
|
12
|
+
const signature = eventSignature(e);
|
|
13
|
+
const docs = buildEventDocs(signature, natspec);
|
|
14
|
+
const inputs = e.inputs.map((p, i) => toFieldDef(p, i, true));
|
|
15
|
+
annotateParamDocs(inputs, docs?.params);
|
|
16
|
+
return {
|
|
17
|
+
name: e.name,
|
|
18
|
+
signature,
|
|
19
|
+
topic: `0x${(0, evm_abi_1.keccak256)(signature).toString('hex')}`,
|
|
20
|
+
inputs,
|
|
21
|
+
key: eventSuffix(e, e.name),
|
|
22
|
+
typeName: eventSuffix(e, `${capitalize(e.name)}EventArgs`),
|
|
23
|
+
docs,
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
const functions = rawFunctions.map((f) => {
|
|
27
|
+
const signature = fnSignature(f);
|
|
28
|
+
const docs = buildFunctionDocs(signature, natspec);
|
|
29
|
+
const inputs = f.inputs.map((p, i) => toFieldDef(p, i, false));
|
|
30
|
+
const outputs = (f.outputs ?? []).map((p, i) => toFieldDef(p, i, false));
|
|
31
|
+
annotateParamDocs(inputs, docs?.params);
|
|
32
|
+
annotateReturnDocs(outputs, docs?.returns);
|
|
33
|
+
return {
|
|
34
|
+
name: f.name,
|
|
35
|
+
signature,
|
|
36
|
+
selector: `0x${(0, evm_abi_1.keccak256)(signature).slice(0, 4).toString('hex')}`,
|
|
37
|
+
inputs,
|
|
38
|
+
outputs,
|
|
39
|
+
key: functionSuffix(f, f.name),
|
|
40
|
+
paramsTypeName: functionSuffix(f, `${capitalize(f.name)}Params`),
|
|
41
|
+
returnTypeName: functionSuffix(f, `${capitalize(f.name)}Return`),
|
|
42
|
+
docs,
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
return { events, functions };
|
|
46
|
+
}
|
|
47
|
+
function buildEventDocs(signature, natspec) {
|
|
48
|
+
const notice = natspec?.userdoc?.events?.[signature]?.notice;
|
|
49
|
+
const devEntry = natspec?.devdoc?.events?.[signature];
|
|
50
|
+
if (!notice && !devEntry)
|
|
51
|
+
return undefined;
|
|
52
|
+
return filterEmptyDoc({
|
|
53
|
+
notice,
|
|
54
|
+
dev: devEntry?.details,
|
|
55
|
+
params: devEntry?.params,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function buildFunctionDocs(signature, natspec) {
|
|
59
|
+
const notice = natspec?.userdoc?.methods?.[signature]?.notice;
|
|
60
|
+
const devEntry = natspec?.devdoc?.methods?.[signature];
|
|
61
|
+
if (!notice && !devEntry)
|
|
62
|
+
return undefined;
|
|
63
|
+
return filterEmptyDoc({
|
|
64
|
+
notice,
|
|
65
|
+
dev: devEntry?.details,
|
|
66
|
+
params: devEntry?.params,
|
|
67
|
+
returns: devEntry?.returns,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function filterEmptyDoc(doc) {
|
|
71
|
+
const hasContent = doc.notice != null ||
|
|
72
|
+
doc.dev != null ||
|
|
73
|
+
(doc.params != null && Object.keys(doc.params).length > 0) ||
|
|
74
|
+
(doc.returns != null && Object.keys(doc.returns).length > 0);
|
|
75
|
+
return hasContent ? doc : undefined;
|
|
76
|
+
}
|
|
77
|
+
function annotateParamDocs(fields, params) {
|
|
78
|
+
if (!params)
|
|
79
|
+
return;
|
|
80
|
+
for (const field of fields) {
|
|
81
|
+
const doc = params[field.name];
|
|
82
|
+
if (doc)
|
|
83
|
+
field.doc = doc;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function annotateReturnDocs(fields, returns) {
|
|
87
|
+
if (!returns)
|
|
88
|
+
return;
|
|
89
|
+
for (let i = 0; i < fields.length; i++) {
|
|
90
|
+
const field = fields[i];
|
|
91
|
+
const doc = returns[field.name] ?? returns[`_${i}`];
|
|
92
|
+
if (doc)
|
|
93
|
+
field.doc = doc;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function overloadSuffixer(items) {
|
|
97
|
+
const counts = new Map();
|
|
98
|
+
const indices = new Map();
|
|
99
|
+
for (const item of items) {
|
|
100
|
+
const seen = counts.get(item.name) ?? 0;
|
|
101
|
+
indices.set(item, seen);
|
|
102
|
+
counts.set(item.name, seen + 1);
|
|
103
|
+
}
|
|
104
|
+
return (item, base) => {
|
|
105
|
+
if ((counts.get(item.name) ?? 1) <= 1)
|
|
106
|
+
return base;
|
|
107
|
+
const idx = indices.get(item);
|
|
108
|
+
return idx === 0 ? base : `${base}_${idx}`;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function toFieldDef(p, index, isEventInput) {
|
|
112
|
+
const field = {
|
|
113
|
+
name: p.name || `_${index}`,
|
|
114
|
+
type: toTypeDef(p),
|
|
115
|
+
};
|
|
116
|
+
if (isEventInput && p.indexed)
|
|
117
|
+
field.indexed = true;
|
|
118
|
+
return field;
|
|
119
|
+
}
|
|
120
|
+
function toTypeDef(p) {
|
|
121
|
+
const fixed = p.type.match(/\[(\d+)\]$/);
|
|
122
|
+
if (fixed) {
|
|
123
|
+
return { kind: 'fixedArray', size: Number(fixed[1]), item: toTypeDef(stripOuterArray(p)) };
|
|
124
|
+
}
|
|
125
|
+
if (p.type.endsWith('[]')) {
|
|
126
|
+
return { kind: 'array', item: toTypeDef(stripOuterArray(p)) };
|
|
127
|
+
}
|
|
128
|
+
if (p.type.startsWith('tuple')) {
|
|
129
|
+
const components = (p.components || []);
|
|
130
|
+
return {
|
|
131
|
+
kind: 'tuple',
|
|
132
|
+
fields: components.map((c, i) => toFieldDef(c, i, false)),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
return { kind: 'primitive', name: p.type };
|
|
136
|
+
}
|
|
137
|
+
function stripOuterArray(p) {
|
|
138
|
+
return { ...p, type: p.type.replace(/\[\d*\]$/, '') };
|
|
139
|
+
}
|
|
140
|
+
function canonicalType(p) {
|
|
141
|
+
if (!p.type.startsWith('tuple'))
|
|
142
|
+
return p.type;
|
|
143
|
+
const arrayBrackets = p.type.slice(5);
|
|
144
|
+
const components = p.components;
|
|
145
|
+
return `(${components.map(canonicalType).join(',')})${arrayBrackets}`;
|
|
146
|
+
}
|
|
147
|
+
function eventSignature(e) {
|
|
148
|
+
return `${e.name}(${e.inputs.map(canonicalType).join(',')})`;
|
|
149
|
+
}
|
|
150
|
+
function fnSignature(f) {
|
|
151
|
+
return `${f.name}(${f.inputs.map(canonicalType).join(',')})`;
|
|
152
|
+
}
|
|
153
|
+
function capitalize(s) {
|
|
154
|
+
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"description.js","sourceRoot":"","sources":["../src/description.ts"],"names":[],"mappings":"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"}
|
package/lib/main.js
CHANGED
|
@@ -26,8 +26,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const fs = __importStar(require("fs"));
|
|
30
|
-
const
|
|
29
|
+
const fs = __importStar(require("node:fs"));
|
|
30
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
31
31
|
const commander_1 = require("commander");
|
|
32
32
|
const logger_1 = require("@subsquid/logger");
|
|
33
33
|
const util_internal_1 = require("@subsquid/util-internal");
|
|
@@ -85,7 +85,7 @@ squid-evm-typegen src/abi 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413#contract
|
|
|
85
85
|
throw new commander_1.InvalidOptionArgumentError('Option --chain-id and --etherscan-chain-id cannot be used together');
|
|
86
86
|
}
|
|
87
87
|
opts.chainId = opts.etherscanChainId;
|
|
88
|
-
|
|
88
|
+
opts.etherscanChainId = undefined;
|
|
89
89
|
}
|
|
90
90
|
if (opts.clean && dest.exists()) {
|
|
91
91
|
LOG.info(`deleting ${dest.path()}`);
|
|
@@ -99,32 +99,41 @@ squid-evm-typegen src/abi 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413#contract
|
|
|
99
99
|
dest.add('multicall.ts', [__dirname, '../src/multicall.ts']);
|
|
100
100
|
LOG.info(`saved ${dest.path('multicall.ts')}`);
|
|
101
101
|
}
|
|
102
|
+
if (specs.length > 0) {
|
|
103
|
+
dest.add('abi.support.ts', [__dirname, '../src/abi.support.ts']);
|
|
104
|
+
LOG.info(`saved ${dest.path('abi.support.ts')}`);
|
|
105
|
+
}
|
|
102
106
|
for (let spec of specs) {
|
|
103
107
|
LOG.info(`processing ${spec.src}`);
|
|
104
|
-
let
|
|
105
|
-
await new typegen_1.Typegen(dest,
|
|
108
|
+
let { abi, natspec } = await read(spec, opts);
|
|
109
|
+
await new typegen_1.Typegen(dest, abi, spec.name, LOG, natspec).generate();
|
|
106
110
|
}
|
|
107
111
|
}, (err) => LOG.fatal(err));
|
|
108
112
|
async function read(spec, options) {
|
|
109
113
|
if (spec.kind == 'address') {
|
|
110
|
-
return fetchFromEtherscan(spec.src, getEtherscanAPIConfig(options));
|
|
114
|
+
return { abi: await fetchFromEtherscan(spec.src, getEtherscanAPIConfig(options)) };
|
|
111
115
|
}
|
|
112
|
-
let
|
|
116
|
+
let raw;
|
|
113
117
|
if (spec.kind == 'url') {
|
|
114
|
-
|
|
118
|
+
raw = await (0, fetch_1.GET)(spec.src);
|
|
115
119
|
}
|
|
116
120
|
else {
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
if (Array.isArray(abi)) {
|
|
120
|
-
return abi;
|
|
121
|
+
raw = JSON.parse(fs.readFileSync(spec.src, 'utf-8'));
|
|
121
122
|
}
|
|
122
|
-
|
|
123
|
-
return abi
|
|
123
|
+
if (Array.isArray(raw)) {
|
|
124
|
+
return { abi: raw };
|
|
124
125
|
}
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
if (Array.isArray(raw?.abi)) {
|
|
127
|
+
return { abi: raw.abi, natspec: extractNatSpec(raw) };
|
|
127
128
|
}
|
|
129
|
+
throw new Error('Unrecognized ABI format');
|
|
130
|
+
}
|
|
131
|
+
function extractNatSpec(artifact) {
|
|
132
|
+
const userdoc = artifact.userdoc;
|
|
133
|
+
const devdoc = artifact.devdoc;
|
|
134
|
+
if (!userdoc && !devdoc)
|
|
135
|
+
return undefined;
|
|
136
|
+
return { userdoc, devdoc };
|
|
128
137
|
}
|
|
129
138
|
async function fetchFromEtherscan(address, config) {
|
|
130
139
|
let url = new URL(config.api);
|
|
@@ -142,9 +151,7 @@ async function fetchFromEtherscan(address, config) {
|
|
|
142
151
|
let attempts = 0;
|
|
143
152
|
while (true) {
|
|
144
153
|
response = await (0, fetch_1.GET)(url.toString());
|
|
145
|
-
if (response.status == '0' &&
|
|
146
|
-
response.result.includes('rate limit') &&
|
|
147
|
-
attempts < 4) {
|
|
154
|
+
if (response.status == '0' && response.result.includes('rate limit') && attempts < 4) {
|
|
148
155
|
attempts += 1;
|
|
149
156
|
let timeout = attempts * 2;
|
|
150
157
|
LOG.warn(`faced rate limit error while trying to fetch contract ABI. Trying again in ${timeout} seconds.`);
|
|
@@ -157,9 +164,7 @@ async function fetchFromEtherscan(address, config) {
|
|
|
157
164
|
if (response.status == '1') {
|
|
158
165
|
return JSON.parse(response.result);
|
|
159
166
|
}
|
|
160
|
-
|
|
161
|
-
throw new Error(`Failed to fetch contract ABI from ${config.api}: ${response.result}`);
|
|
162
|
-
}
|
|
167
|
+
throw new Error(`Failed to fetch contract ABI from ${config.api}: ${response.result}`);
|
|
163
168
|
}
|
|
164
169
|
function specArgument(value, prev) {
|
|
165
170
|
let spec = parseSpec(value);
|
|
@@ -181,7 +186,7 @@ function parseSpec(spec) {
|
|
|
181
186
|
name: fragment || src,
|
|
182
187
|
};
|
|
183
188
|
}
|
|
184
|
-
|
|
189
|
+
if (src.includes('://')) {
|
|
185
190
|
let u = new URL(validator.Url(['http:', 'https:'])(src));
|
|
186
191
|
return {
|
|
187
192
|
kind: 'url',
|
|
@@ -189,13 +194,11 @@ function parseSpec(spec) {
|
|
|
189
194
|
name: fragment || basename(u.pathname),
|
|
190
195
|
};
|
|
191
196
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
};
|
|
198
|
-
}
|
|
197
|
+
return {
|
|
198
|
+
kind: 'file',
|
|
199
|
+
src,
|
|
200
|
+
name: fragment || basename(src),
|
|
201
|
+
};
|
|
199
202
|
}
|
|
200
203
|
function splitFragment(spec) {
|
|
201
204
|
let parts = spec.split('#');
|
|
@@ -203,12 +206,10 @@ function splitFragment(spec) {
|
|
|
203
206
|
let fragment = parts.pop();
|
|
204
207
|
return [parts.join('#'), fragment];
|
|
205
208
|
}
|
|
206
|
-
|
|
207
|
-
return [spec, ''];
|
|
208
|
-
}
|
|
209
|
+
return [spec, ''];
|
|
209
210
|
}
|
|
210
211
|
function basename(file) {
|
|
211
|
-
let name =
|
|
212
|
+
let name = node_path_1.default.parse(file).name;
|
|
212
213
|
if (name)
|
|
213
214
|
return name;
|
|
214
215
|
throw new commander_1.InvalidArgumentError(`Can't derive target basename for output files. Use url fragment to specify it, e.g. #erc20`);
|
|
@@ -234,6 +235,6 @@ function normalizeEtherscanAPIUrl(url) {
|
|
|
234
235
|
if (url.endsWith('/api')) {
|
|
235
236
|
return url;
|
|
236
237
|
}
|
|
237
|
-
return url.endsWith('/') ? url
|
|
238
|
+
return url.endsWith('/') ? `${url}api` : `${url}/api`;
|
|
238
239
|
}
|
|
239
240
|
//# sourceMappingURL=main.js.map
|
package/lib/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/lib/multicall.d.ts
CHANGED
|
@@ -9,36 +9,40 @@ export type MulticallResult<T extends AbiFunction<any, any>> = {
|
|
|
9
9
|
value?: undefined;
|
|
10
10
|
};
|
|
11
11
|
type AnyFunc = AbiFunction<any, any>;
|
|
12
|
-
type AggregateTuple<T extends AnyFunc = AnyFunc> = [
|
|
12
|
+
type AggregateTuple<T extends AnyFunc = AnyFunc> = [
|
|
13
|
+
func: T,
|
|
14
|
+
address: string,
|
|
15
|
+
args: T extends AnyFunc ? FunctionArguments<T> : never
|
|
16
|
+
];
|
|
13
17
|
export declare class Multicall extends ContractBase {
|
|
14
18
|
static aggregate: AbiFunction<{
|
|
15
|
-
readonly calls: p.
|
|
19
|
+
readonly calls: p.ArrayCodec<{
|
|
16
20
|
readonly target: string;
|
|
17
21
|
readonly callData: string | Uint8Array;
|
|
18
|
-
}
|
|
22
|
+
}, {
|
|
19
23
|
readonly target: string;
|
|
20
24
|
readonly callData: string;
|
|
21
|
-
}
|
|
22
|
-
}, {
|
|
25
|
+
}>;
|
|
26
|
+
}, p.StructCodec<{
|
|
23
27
|
readonly blockNumber: p.Codec<number | bigint, bigint>;
|
|
24
|
-
readonly returnData: p.
|
|
25
|
-
}
|
|
28
|
+
readonly returnData: p.ArrayCodec<string | Uint8Array, string>;
|
|
29
|
+
}>>;
|
|
26
30
|
static tryAggregate: AbiFunction<{
|
|
27
31
|
readonly requireSuccess: p.Codec<boolean, boolean>;
|
|
28
|
-
readonly calls: p.
|
|
32
|
+
readonly calls: p.ArrayCodec<{
|
|
29
33
|
readonly target: string;
|
|
30
34
|
readonly callData: string | Uint8Array;
|
|
31
|
-
}
|
|
35
|
+
}, {
|
|
32
36
|
readonly target: string;
|
|
33
37
|
readonly callData: string;
|
|
34
|
-
}
|
|
35
|
-
}, p.
|
|
38
|
+
}>;
|
|
39
|
+
}, p.ArrayCodec<{
|
|
36
40
|
readonly success: boolean;
|
|
37
41
|
readonly returnData: string | Uint8Array;
|
|
38
|
-
}
|
|
42
|
+
}, {
|
|
39
43
|
readonly success: boolean;
|
|
40
44
|
readonly returnData: string;
|
|
41
|
-
}
|
|
45
|
+
}>>;
|
|
42
46
|
aggregate<TF extends AnyFunc>(func: TF, address: string, calls: FunctionArguments<TF>[], pageSize?: number): Promise<FunctionReturn<TF>[]>;
|
|
43
47
|
aggregate<TF extends AnyFunc>(func: TF, calls: (readonly [address: string, args: FunctionArguments<TF>])[], pageSize?: number): Promise<FunctionReturn<TF>[]>;
|
|
44
48
|
aggregate(calls: AggregateTuple[], pageSize?: number): Promise<any[]>;
|
package/lib/multicall.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,qBAAqB,CAAA;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,qBAAqB,CAAA;AACxC,OAAO,EAAO,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAC,MAAM,mBAAmB,CAAA;AA0BnH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,IACrD;IACI,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAC3B,GACD;IACI,OAAO,EAAE,KAAK,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA;AAEP,KAAK,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACpC,KAAK,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI;IAC/C,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,CAAC,SAAS,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK;CACzD,CAAA;AAGD,qBAAa,SAAU,SAAQ,YAAY;IACvC,MAAM,CAAC,SAAS;;;;;;;;;;;QAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;QAAe;IAElC,SAAS,CAAC,EAAE,SAAS,OAAO,EACxB,IAAI,EAAE,EAAE,EACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;IAEhC,SAAS,CAAC,EAAE,SAAS,OAAO,EACxB,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAClE,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;IAEhC,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiBrE,YAAY,CAAC,EAAE,SAAS,OAAO,EAC3B,IAAI,EAAE,EAAE,EACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;IAEjC,YAAY,CAAC,EAAE,SAAS,OAAO,EAC3B,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAClE,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;IAEjC,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;IAiCzF,OAAO,CAAC,SAAS;CAqCpB"}
|
package/lib/multicall.js
CHANGED
|
@@ -26,15 +26,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.Multicall = void 0;
|
|
27
27
|
const p = __importStar(require("@subsquid/evm-codec"));
|
|
28
28
|
const evm_abi_1 = require("@subsquid/evm-abi");
|
|
29
|
-
|
|
29
|
+
// aggregate((address,bytes)[])
|
|
30
|
+
const aggregate = (0, evm_abi_1.func)('0x252dba42', {
|
|
30
31
|
calls: p.array(p.struct({
|
|
31
32
|
target: p.address,
|
|
32
|
-
callData: p.bytes
|
|
33
|
-
}))
|
|
34
|
-
}, { blockNumber: p.uint256, returnData: p.array(p.bytes) });
|
|
35
|
-
|
|
33
|
+
callData: p.bytes,
|
|
34
|
+
})),
|
|
35
|
+
}, p.struct({ blockNumber: p.uint256, returnData: p.array(p.bytes) }));
|
|
36
|
+
// tryAggregate(bool,(address,bytes)[])
|
|
37
|
+
const tryAggregate = (0, evm_abi_1.func)('0xbce38bd7', {
|
|
36
38
|
requireSuccess: p.bool,
|
|
37
|
-
calls: p.array(p.struct({ target: p.address, callData: p.bytes }))
|
|
39
|
+
calls: p.array(p.struct({ target: p.address, callData: p.bytes })),
|
|
38
40
|
}, p.array(p.struct({ success: p.bool, returnData: p.bytes })));
|
|
39
41
|
class Multicall extends evm_abi_1.ContractBase {
|
|
40
42
|
async aggregate(...args) {
|
|
@@ -63,7 +65,7 @@ class Multicall extends evm_abi_1.ContractBase {
|
|
|
63
65
|
try {
|
|
64
66
|
return {
|
|
65
67
|
success: true,
|
|
66
|
-
value: page[i].func.decodeResult(res.returnData)
|
|
68
|
+
value: page[i].func.decodeResult(res.returnData),
|
|
67
69
|
};
|
|
68
70
|
}
|
|
69
71
|
catch (err) {
|
package/lib/multicall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multicall.js","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAwC;AACxC,+
|
|
1
|
+
{"version":3,"file":"multicall.js","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"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"}
|
package/lib/typegen.d.ts
CHANGED
|
@@ -1,32 +1,17 @@
|
|
|
1
|
-
import { Logger } from '@subsquid/logger';
|
|
1
|
+
import type { Logger } from '@subsquid/logger';
|
|
2
|
+
import { type OutDir } from '@subsquid/util-internal-code-printer';
|
|
2
3
|
import type { Abi } from 'abitype';
|
|
3
|
-
import {
|
|
4
|
+
import { type NatSpec } from './description';
|
|
4
5
|
export declare class Typegen {
|
|
5
|
-
private abi;
|
|
6
6
|
private log;
|
|
7
|
-
private
|
|
8
|
-
|
|
7
|
+
private dest;
|
|
8
|
+
private contract;
|
|
9
|
+
private modules;
|
|
10
|
+
constructor(dest: OutDir, abi: Abi, basename: string, log: Logger, natspec?: NatSpec);
|
|
9
11
|
generate(): Promise<void>;
|
|
10
12
|
private generateEvents;
|
|
11
|
-
private topic0;
|
|
12
|
-
private toTypes;
|
|
13
13
|
private generateFunctions;
|
|
14
|
-
private functionSelector;
|
|
15
14
|
private generateContract;
|
|
16
|
-
private
|
|
17
|
-
private signature;
|
|
18
|
-
private getPropName;
|
|
19
|
-
private getPropNameGetter;
|
|
20
|
-
private getOverloads;
|
|
21
|
-
private capitalize;
|
|
22
|
-
private getOverloadIndex;
|
|
23
|
-
private toEventType;
|
|
24
|
-
private generateEventTypes;
|
|
25
|
-
private toFunctionTypes;
|
|
26
|
-
private generateFunctionTypes;
|
|
27
|
-
private functionOverloads;
|
|
28
|
-
private eventOverloads;
|
|
29
|
-
private getFunctions;
|
|
30
|
-
private getEvents;
|
|
15
|
+
private writeIndex;
|
|
31
16
|
}
|
|
32
17
|
//# sourceMappingURL=typegen.d.ts.map
|
package/lib/typegen.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAa,KAAK,MAAM,EAAC,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,SAAS,CAAA;AAEhC,OAAO,EAAgF,KAAK,OAAO,EAAyB,MAAM,eAAe,CAAA;AAIjJ,qBAAa,OAAO;IASZ,OAAO,CAAC,GAAG;IARf,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,OAAO,CAAoC;gBAG/C,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EACR,GAAG,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,OAAO;IAkBf,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,gBAAgB;IAoCxB,OAAO,CAAC,UAAU;CAUrB"}
|