@subsquid/evm-typegen 4.5.1 → 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/chainIds.d.ts +3 -0
- package/lib/chainIds.d.ts.map +1 -0
- package/lib/chainIds.js +268 -0
- package/lib/chainIds.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 +68 -42
- 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 +11 -10
- package/src/abi.support.ts +2 -0
- package/src/chainIds.ts +315 -0
- package/src/description.ts +221 -0
- package/src/main.ts +209 -174
- 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
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");
|
|
@@ -35,7 +35,10 @@ const validator = __importStar(require("@subsquid/util-internal-commander"));
|
|
|
35
35
|
const typegen_1 = require("./typegen");
|
|
36
36
|
const fetch_1 = require("./util/fetch");
|
|
37
37
|
const util_internal_code_printer_1 = require("@subsquid/util-internal-code-printer");
|
|
38
|
+
const chainIds_1 = require("./chainIds");
|
|
38
39
|
const LOG = (0, logger_1.createLogger)('sqd:evm-typegen');
|
|
40
|
+
const PROXY_ETHERSCAN = 'https://cloud.sqd.dev/chains/api/v1/evm/abi';
|
|
41
|
+
const ORIGIN_ETHERSCAN = 'https://api.etherscan.io/v2/api';
|
|
39
42
|
(0, util_internal_1.runProgram)(async function () {
|
|
40
43
|
commander_1.program
|
|
41
44
|
.description(`
|
|
@@ -47,9 +50,10 @@ The generated facades are assumed to be used by "squids" indexing EVM data.
|
|
|
47
50
|
.argument('<output-dir>', 'output directory for generated definitions')
|
|
48
51
|
.argument('[abi...]', 'ABI file', specArgument)
|
|
49
52
|
.option('--multicall', 'generate facade for MakerDAO multicall contract')
|
|
50
|
-
.option('--etherscan-api <url>', 'etherscan API to fetch contract ABI by a known address', validator.Url(['http:', 'https:'])
|
|
53
|
+
.option('--etherscan-api <url>', 'etherscan API to fetch contract ABI by a known address\n(if no API token is provided, the default value equals to SQD Proxy service, otherwise equals to Etherscan API)', validator.Url(['http:', 'https:']))
|
|
51
54
|
.option('--etherscan-api-key <key>', 'etherscan API key')
|
|
52
|
-
.option('--
|
|
55
|
+
.option('--chain-id <id>', 'chain ID (numeric or named, e.g., "1" or "ethereum") to fetch the contract from', chainIds_1.chainIdOption, 1)
|
|
56
|
+
.option('--etherscan-chain-id <id>', 'DEPRECATED: use --chain-id instead. Chain ID (numeric or named, e.g., "1" or "ethereum") to fetch the contract from', chainIds_1.chainIdOption)
|
|
53
57
|
.option('--clean', 'delete output directory before run')
|
|
54
58
|
.addHelpText('afterAll', `
|
|
55
59
|
ABI file can be specified in three ways:
|
|
@@ -75,6 +79,14 @@ squid-evm-typegen src/abi 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413#contract
|
|
|
75
79
|
let opts = commander_1.program.opts();
|
|
76
80
|
let dest = new util_internal_code_printer_1.OutDir(commander_1.program.processedArgs[0]);
|
|
77
81
|
let specs = commander_1.program.processedArgs[1];
|
|
82
|
+
if (opts.etherscanChainId) {
|
|
83
|
+
LOG.warn('Option --etherscan-chain-id is deprecated. Please use --chain-id instead');
|
|
84
|
+
if (opts.chainId) {
|
|
85
|
+
throw new commander_1.InvalidOptionArgumentError('Option --chain-id and --etherscan-chain-id cannot be used together');
|
|
86
|
+
}
|
|
87
|
+
opts.chainId = opts.etherscanChainId;
|
|
88
|
+
opts.etherscanChainId = undefined;
|
|
89
|
+
}
|
|
78
90
|
if (opts.clean && dest.exists()) {
|
|
79
91
|
LOG.info(`deleting ${dest.path()}`);
|
|
80
92
|
dest.del();
|
|
@@ -87,44 +99,50 @@ squid-evm-typegen src/abi 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413#contract
|
|
|
87
99
|
dest.add('multicall.ts', [__dirname, '../src/multicall.ts']);
|
|
88
100
|
LOG.info(`saved ${dest.path('multicall.ts')}`);
|
|
89
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
|
+
}
|
|
90
106
|
for (let spec of specs) {
|
|
91
107
|
LOG.info(`processing ${spec.src}`);
|
|
92
|
-
let
|
|
93
|
-
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();
|
|
94
110
|
}
|
|
95
111
|
}, (err) => LOG.fatal(err));
|
|
96
112
|
async function read(spec, options) {
|
|
97
113
|
if (spec.kind == 'address') {
|
|
98
|
-
return fetchFromEtherscan(spec.src, getEtherscanAPIConfig(options));
|
|
114
|
+
return { abi: await fetchFromEtherscan(spec.src, getEtherscanAPIConfig(options)) };
|
|
99
115
|
}
|
|
100
|
-
let
|
|
116
|
+
let raw;
|
|
101
117
|
if (spec.kind == 'url') {
|
|
102
|
-
|
|
118
|
+
raw = await (0, fetch_1.GET)(spec.src);
|
|
103
119
|
}
|
|
104
120
|
else {
|
|
105
|
-
|
|
121
|
+
raw = JSON.parse(fs.readFileSync(spec.src, 'utf-8'));
|
|
106
122
|
}
|
|
107
|
-
if (Array.isArray(
|
|
108
|
-
return abi;
|
|
123
|
+
if (Array.isArray(raw)) {
|
|
124
|
+
return { abi: raw };
|
|
109
125
|
}
|
|
110
|
-
|
|
111
|
-
return abi.abi;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
throw new Error('Unrecognized ABI format');
|
|
126
|
+
if (Array.isArray(raw?.abi)) {
|
|
127
|
+
return { abi: raw.abi, natspec: extractNatSpec(raw) };
|
|
115
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 };
|
|
116
137
|
}
|
|
117
138
|
async function fetchFromEtherscan(address, config) {
|
|
118
|
-
let
|
|
119
|
-
let url = new URL(api);
|
|
139
|
+
let url = new URL(config.api);
|
|
120
140
|
let params = new URLSearchParams({
|
|
121
141
|
module: 'contract',
|
|
122
142
|
action: 'getabi',
|
|
123
143
|
address,
|
|
144
|
+
chainid: config.chainId.toString(),
|
|
124
145
|
});
|
|
125
|
-
if (config.chainId) {
|
|
126
|
-
params.set('chainid', config.chainId);
|
|
127
|
-
}
|
|
128
146
|
if (config.apiKey) {
|
|
129
147
|
params.set('apiKey', config.apiKey);
|
|
130
148
|
}
|
|
@@ -133,9 +151,7 @@ async function fetchFromEtherscan(address, config) {
|
|
|
133
151
|
let attempts = 0;
|
|
134
152
|
while (true) {
|
|
135
153
|
response = await (0, fetch_1.GET)(url.toString());
|
|
136
|
-
if (response.status == '0' &&
|
|
137
|
-
response.result.includes('rate limit') &&
|
|
138
|
-
attempts < 4) {
|
|
154
|
+
if (response.status == '0' && response.result.includes('rate limit') && attempts < 4) {
|
|
139
155
|
attempts += 1;
|
|
140
156
|
let timeout = attempts * 2;
|
|
141
157
|
LOG.warn(`faced rate limit error while trying to fetch contract ABI. Trying again in ${timeout} seconds.`);
|
|
@@ -148,9 +164,7 @@ async function fetchFromEtherscan(address, config) {
|
|
|
148
164
|
if (response.status == '1') {
|
|
149
165
|
return JSON.parse(response.result);
|
|
150
166
|
}
|
|
151
|
-
|
|
152
|
-
throw new Error(`Failed to fetch contract ABI from ${config.api}: ${response.result}`);
|
|
153
|
-
}
|
|
167
|
+
throw new Error(`Failed to fetch contract ABI from ${config.api}: ${response.result}`);
|
|
154
168
|
}
|
|
155
169
|
function specArgument(value, prev) {
|
|
156
170
|
let spec = parseSpec(value);
|
|
@@ -172,7 +186,7 @@ function parseSpec(spec) {
|
|
|
172
186
|
name: fragment || src,
|
|
173
187
|
};
|
|
174
188
|
}
|
|
175
|
-
|
|
189
|
+
if (src.includes('://')) {
|
|
176
190
|
let u = new URL(validator.Url(['http:', 'https:'])(src));
|
|
177
191
|
return {
|
|
178
192
|
kind: 'url',
|
|
@@ -180,13 +194,11 @@ function parseSpec(spec) {
|
|
|
180
194
|
name: fragment || basename(u.pathname),
|
|
181
195
|
};
|
|
182
196
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
};
|
|
189
|
-
}
|
|
197
|
+
return {
|
|
198
|
+
kind: 'file',
|
|
199
|
+
src,
|
|
200
|
+
name: fragment || basename(src),
|
|
201
|
+
};
|
|
190
202
|
}
|
|
191
203
|
function splitFragment(spec) {
|
|
192
204
|
let parts = spec.split('#');
|
|
@@ -194,21 +206,35 @@ function splitFragment(spec) {
|
|
|
194
206
|
let fragment = parts.pop();
|
|
195
207
|
return [parts.join('#'), fragment];
|
|
196
208
|
}
|
|
197
|
-
|
|
198
|
-
return [spec, ''];
|
|
199
|
-
}
|
|
209
|
+
return [spec, ''];
|
|
200
210
|
}
|
|
201
211
|
function basename(file) {
|
|
202
|
-
let name =
|
|
212
|
+
let name = node_path_1.default.parse(file).name;
|
|
203
213
|
if (name)
|
|
204
214
|
return name;
|
|
205
215
|
throw new commander_1.InvalidArgumentError(`Can't derive target basename for output files. Use url fragment to specify it, e.g. #erc20`);
|
|
206
216
|
}
|
|
207
217
|
function getEtherscanAPIConfig(options) {
|
|
218
|
+
let api;
|
|
219
|
+
if (options.etherscanApi != null) {
|
|
220
|
+
api = normalizeEtherscanAPIUrl(options.etherscanApi);
|
|
221
|
+
}
|
|
222
|
+
else if (options.etherscanApiKey != null) {
|
|
223
|
+
api = ORIGIN_ETHERSCAN;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
api = PROXY_ETHERSCAN;
|
|
227
|
+
}
|
|
208
228
|
return {
|
|
209
|
-
api
|
|
229
|
+
api,
|
|
210
230
|
apiKey: options.etherscanApiKey || undefined,
|
|
211
|
-
chainId: options.
|
|
231
|
+
chainId: options.chainId ?? 1,
|
|
212
232
|
};
|
|
213
233
|
}
|
|
234
|
+
function normalizeEtherscanAPIUrl(url) {
|
|
235
|
+
if (url.endsWith('/api')) {
|
|
236
|
+
return url;
|
|
237
|
+
}
|
|
238
|
+
return url.endsWith('/') ? `${url}api` : `${url}/api`;
|
|
239
|
+
}
|
|
214
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"}
|