@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.
@@ -0,0 +1,3 @@
1
+ export { event, func, indexed, ContractBase } from '@subsquid/evm-abi';
2
+ export type { EventParams, EventArgumentsInput, FunctionArguments, FunctionReturn, TopicFilter, IndexedTopicFilter } from '@subsquid/evm-abi';
3
+ //# sourceMappingURL=abi.support.d.ts.map
@@ -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 path_1 = __importDefault(require("path"));
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
- delete opts.etherscanChainId;
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 abi_json = await read(spec, opts);
105
- await new typegen_1.Typegen(dest, abi_json, spec.name, LOG).generate();
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 abi;
116
+ let raw;
113
117
  if (spec.kind == 'url') {
114
- abi = await (0, fetch_1.GET)(spec.src);
118
+ raw = await (0, fetch_1.GET)(spec.src);
115
119
  }
116
120
  else {
117
- abi = JSON.parse(fs.readFileSync(spec.src, 'utf-8'));
118
- }
119
- if (Array.isArray(abi)) {
120
- return abi;
121
+ raw = JSON.parse(fs.readFileSync(spec.src, 'utf-8'));
121
122
  }
122
- else if (Array.isArray(abi?.abi)) {
123
- return abi.abi;
123
+ if (Array.isArray(raw)) {
124
+ return { abi: raw };
124
125
  }
125
- else {
126
- throw new Error('Unrecognized ABI format');
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
- else {
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
- else if (src.includes('://')) {
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
- else {
193
- return {
194
- kind: 'file',
195
- src,
196
- name: fragment || basename(src),
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
- else {
207
- return [spec, ''];
208
- }
209
+ return [spec, ''];
209
210
  }
210
211
  function basename(file) {
211
- let name = path_1.default.parse(file).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 + 'api' : url + '/api';
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":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -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> = [func: T, address: string, args: T extends AnyFunc ? FunctionArguments<T> : never];
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.Codec<{
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.Codec<(string | Uint8Array)[], string[]>;
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.Codec<{
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.Codec<{
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[]>;
@@ -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,EAAM,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAC,MAAM,mBAAmB,CAAA;AAclH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI;IAC7D,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CACzB,GAAG;IACF,OAAO,EAAE,KAAK,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,KAAK,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACpC,KAAK,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA;AAGrI,qBAAa,SAAU,SAAQ,YAAY;IACzC,MAAM,CAAC,SAAS;;;;;;;;;;;OAAY;IAC5B,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;UAAe;IAElC,SAAS,CAAC,EAAE,SAAS,OAAO,EAC1B,IAAI,EAAE,EAAE,EACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;IAEhC,SAAS,CAAC,EAAE,SAAS,OAAO,EAC1B,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,GAChB,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;IAEhC,SAAS,CACP,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,EAAE,CAAC;IAiBjB,YAAY,CAAC,EAAE,SAAS,OAAO,EAC7B,IAAI,EAAE,EAAE,EACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;IAEjC,YAAY,CAAC,EAAE,SAAS,OAAO,EAC7B,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,GAChB,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;IAEjC,YAAY,CACV,KAAK,EAAE,cAAc,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;IAiClC,OAAO,CAAC,SAAS;CAqClB"}
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
- const aggregate = (0, evm_abi_1.fun)('0x252dba42', "aggregate((address,bytes)[])", {
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
- const tryAggregate = (0, evm_abi_1.fun)('0xbce38bd7', "tryAggregate(bool,(address,bytes)[])", {
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"multicall.js","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"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"}
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 { OutDir } from '@subsquid/util-internal-code-printer';
4
+ import { type NatSpec } from './description';
4
5
  export declare class Typegen {
5
- private abi;
6
6
  private log;
7
- private out;
8
- constructor(dest: OutDir, abi: Abi, basename: string, log: Logger);
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 canonicalType;
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
@@ -1 +1 @@
1
- {"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAIzC,OAAO,KAAK,EAAE,GAAG,EAAuC,MAAM,SAAS,CAAA;AACvE,OAAO,EAAc,MAAM,EAAE,MAAM,sCAAsC,CAAA;AAEzE,qBAAa,OAAO;IAKhB,OAAO,CAAC,GAAG;IAEX,OAAO,CAAC,GAAG;IANb,OAAO,CAAC,GAAG,CAAY;gBAGrB,IAAI,EAAE,MAAM,EACJ,GAAG,EAAE,GAAG,EAChB,QAAQ,EAAE,MAAM,EACR,GAAG,EAAE,MAAM;IAKf,QAAQ;IAmBd,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,SAAS;CAGlB"}
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"}