@subsquid/evm-typegen 1.3.0 → 2.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 @@
1
+ {"version":3,"file":"multicall.js","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"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"}
package/lib/typegen.d.ts CHANGED
@@ -1,14 +1,22 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { Logger } from '@subsquid/logger';
3
+ import { OutDir } from '@subsquid/util-internal-code-printer';
1
4
  export declare class Typegen {
2
- private rawAbi;
5
+ private dest;
3
6
  private abi;
7
+ private basename;
8
+ private log;
4
9
  private out;
5
- constructor(abiFile: string, outPath: string);
10
+ constructor(dest: OutDir, abi: Interface, basename: string, log: Logger);
6
11
  generate(): void;
12
+ private writeAbi;
7
13
  private generateEvents;
8
14
  private generateFunctions;
9
15
  private generateContract;
10
- private getEvents;
11
- private getFunctions;
12
- private getCalls;
16
+ private getRef;
17
+ private getPropName;
18
+ private getOverloads;
19
+ private functionOverloads;
20
+ private eventOverloads;
13
21
  }
14
22
  //# sourceMappingURL=typegen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"AAKA,qBAAa,OAAO;IAChB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAY;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM5C,QAAQ,IAAI,IAAI;IAoBhB,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,iBAAiB;IA+BzB,OAAO,CAAC,gBAAgB;IAyExB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,QAAQ;CAsBnB"}
1
+ {"version":3,"file":"typegen.d.ts","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,SAAS,EAAC,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAA;AAEvC,OAAO,EAAa,MAAM,EAAC,MAAM,sCAAsC,CAAA;AAIvE,qBAAa,OAAO;IAGJ,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,GAAG;IAAa,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,GAAG;IAF/F,OAAO,CAAC,GAAG,CAAY;gBAEH,IAAI,EAAE,MAAM,EAAU,GAAG,EAAE,SAAS,EAAU,QAAQ,EAAE,MAAM,EAAU,GAAG,EAAE,MAAM;IAIvG,QAAQ,IAAI,IAAI;IAgBhB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,cAAc;CAOzB"}
package/lib/typegen.js CHANGED
@@ -8,308 +8,140 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.Typegen = void 0;
16
13
  const abi_1 = require("@ethersproject/abi");
17
- const util_internal_code_printer_1 = require("@subsquid/util-internal-code-printer");
18
14
  const util_internal_1 = require("@subsquid/util-internal");
19
- const fs_1 = __importDefault(require("fs"));
15
+ const types_1 = require("./util/types");
20
16
  class Typegen {
21
- constructor(abiFile, outPath) {
22
- this.rawAbi = JSON.parse(fs_1.default.readFileSync(abiFile, { encoding: "utf-8" }));
23
- this.abi = new abi_1.Interface(this.rawAbi);
24
- this.out = new util_internal_code_printer_1.FileOutput(outPath);
17
+ constructor(dest, abi, basename, log) {
18
+ this.dest = dest;
19
+ this.abi = abi;
20
+ this.basename = basename;
21
+ this.log = log;
22
+ this.out = dest.file(basename + '.ts');
25
23
  }
26
24
  generate() {
27
- this.out.line("import * as ethers from \"ethers\";");
28
- this.out.line("import assert from \"assert\";");
29
- this.out.line();
30
- this.out.line("export const abi = new ethers.utils.Interface(getJsonAbi());");
25
+ this.out.line("import * as ethers from 'ethers'");
26
+ this.out.line("import {LogEvent, Func, ContractBase} from './abi.support'");
27
+ this.out.line(`import {ABI_JSON} from './${this.basename}.abi'`);
31
28
  this.out.line();
29
+ this.out.line("export const abi = new ethers.utils.Interface(ABI_JSON);");
32
30
  this.generateEvents();
33
- this.out.line();
34
31
  this.generateFunctions();
35
- this.out.line();
36
32
  this.generateContract();
37
- this.out.line();
38
- this.out.block("function getJsonAbi(): any", () => {
39
- `return ${JSON.stringify(this.rawAbi, null, 2)}`.split('\n').forEach(line => {
40
- this.out.line(line);
41
- });
42
- });
33
+ this.writeAbi();
43
34
  this.out.write();
35
+ this.log.info(`saved ${this.out.file}`);
36
+ }
37
+ writeAbi() {
38
+ let out = this.dest.file(this.basename + '.abi.ts');
39
+ let json = this.abi.format('json');
40
+ json = JSON.stringify(JSON.parse(json), null, 4);
41
+ out.line(`export const ABI_JSON = ${json}`);
42
+ out.write();
43
+ this.log.info(`saved ${out.file}`);
44
44
  }
45
45
  generateEvents() {
46
- for (const decl of this.getEvents()) {
47
- for (let i = 0; i < decl.overloads.length; i++) {
48
- if (decl.overloads[i].inputs.length === 0)
49
- continue;
50
- this.out.line(`export type ${decl.name}${i}Event = ${getTupleType(decl.overloads[i].inputs)}`);
51
- this.out.line();
52
- }
46
+ let events = Object.values(this.abi.events);
47
+ if (events.length == 0) {
48
+ return;
53
49
  }
54
- this.out.block("export interface EvmLog", () => {
55
- this.out.line("data: string;");
56
- this.out.line("topics: string[];");
57
- });
58
- this.out.line();
59
- this.out.block(`function decodeEvent(signature: string, data: EvmLog): any`, () => {
60
- this.out.line(`return abi.decodeEventLog(`);
61
- this.out.indentation(() => {
62
- this.out.line(`abi.getEvent(signature),`);
63
- this.out.line(`data.data || "",`);
64
- this.out.line("data.topics");
65
- });
66
- this.out.line(");");
67
- });
68
50
  this.out.line();
69
51
  this.out.block(`export const events =`, () => {
70
- for (const event of this.getEvents()) {
71
- for (let i = 0; i < event.overloads.length; i++) {
72
- const overload = event.overloads[i];
73
- const signature = createSignature(event.name, overload.inputs);
74
- this.out.block(`"${signature}":`, () => {
75
- this.out.line(`topic: abi.getEventTopic("${signature}"),`);
76
- if (event.overloads[i].inputs.length > 0) {
77
- this.out.block(`decode(data: EvmLog): ${event.name}${i}Event`, () => {
78
- this.out.line(`return decodeEvent("${signature}", data)`);
79
- });
80
- }
81
- });
82
- this.out.line(",");
83
- }
52
+ for (let e of events) {
53
+ let topic = this.abi.getEventTopic(e);
54
+ this.out.line(`${this.getPropName(e)}: new LogEvent<${(0, types_1.getFullTupleType)(e.inputs)}>(`);
55
+ this.out.indentation(() => this.out.line(`abi, '${topic}'`));
56
+ this.out.line('),');
84
57
  }
85
58
  });
86
59
  }
87
60
  generateFunctions() {
88
- for (const func of this.getFunctions()) {
89
- for (let i = 0; i < func.overloads.length; i++) {
90
- if (func.overloads[i].inputs.length === 0)
91
- continue;
92
- this.out.line(`export type ${upperCaseFirst(func.name)}${i}Function = ${getTupleType(func.overloads[i].inputs)}`);
93
- this.out.line();
94
- }
61
+ let functions = Object.values(this.abi.functions);
62
+ if (functions.length == 0) {
63
+ return;
95
64
  }
96
65
  this.out.line();
97
- this.out.block(`function decodeFunction(data: string): any`, () => {
98
- this.out.line(`return abi.decodeFunctionData(data.slice(0, 10), data)`);
99
- });
100
- this.out.line();
101
66
  this.out.block(`export const functions =`, () => {
102
- for (const func of this.getFunctions()) {
103
- for (let i = 0; i < func.overloads.length; i++) {
104
- const overload = func.overloads[i];
105
- const signature = createSignature(func.name, overload.inputs);
106
- this.out.block(`"${signature}":`, () => {
107
- this.out.line(`sighash: abi.getSighash("${signature}"),`);
108
- if (func.overloads[i].inputs.length > 0)
109
- this.out.block(`decode(input: string): ${upperCaseFirst(func.name)}${i}Function`, () => {
110
- this.out.line(`return decodeFunction(input)`);
111
- });
112
- });
113
- this.out.line(",");
114
- }
67
+ for (let f of functions) {
68
+ let sighash = this.abi.getSighash(f);
69
+ let pArgs = (0, types_1.getTupleType)(f.inputs);
70
+ let pArgStruct = (0, types_1.getStructType)(f.inputs);
71
+ let pResult = (0, types_1.getReturnType)(f.outputs || []);
72
+ this.out.line(`${this.getPropName(f)}: new Func<${pArgs}, ${pArgStruct}, ${pResult}>(`);
73
+ this.out.indentation(() => this.out.line(`abi, '${sighash}'`));
74
+ this.out.line('),');
115
75
  }
116
76
  });
117
77
  }
118
78
  generateContract() {
119
- let abiCalls = this.getCalls();
120
- this.out.block("interface ChainContext ", () => {
121
- this.out.line(`_chain: Chain`);
122
- });
123
- this.out.line();
124
- this.out.block("interface BlockContext ", () => {
125
- this.out.line(`_chain: Chain`);
126
- this.out.line(`block: Block`);
127
- });
128
79
  this.out.line();
129
- this.out.block("interface Block ", () => {
130
- this.out.line(`height: number`);
131
- });
132
- this.out.line();
133
- this.out.block("interface Chain ", () => {
134
- this.out.block("client: ", () => {
135
- this.out.line(`call: <T=any>(method: string, params?: unknown[]) => Promise<T>`);
136
- });
137
- });
138
- this.out.line();
139
- this.out.block("export class Contract ", () => {
140
- this.out.line(`private readonly _chain: Chain`);
141
- this.out.line(`private readonly blockHeight: number`);
142
- this.out.line(`readonly address: string`);
143
- this.out.line();
144
- this.out.line(`constructor(ctx: BlockContext, address: string)`);
145
- this.out.line(`constructor(ctx: ChainContext, block: Block, address: string)`);
146
- this.out.block(`constructor(ctx: BlockContext, blockOrAddress: Block | string, address?: string)`, () => {
147
- this.out.line(`this._chain = ctx._chain`);
148
- this.out.block(`if (typeof blockOrAddress === 'string') `, () => {
149
- this.out.line(`this.blockHeight = ctx.block.height`);
150
- this.out.line(`this.address = ethers.utils.getAddress(blockOrAddress)`);
151
- });
152
- this.out.block(`else `, () => {
153
- this.out.line(`assert(address != null)`);
154
- this.out.line(`this.blockHeight = blockOrAddress.height`);
155
- this.out.line(`this.address = ethers.utils.getAddress(address)`);
156
- });
157
- });
158
- this.out.line();
159
- for (const decl of abiCalls) {
160
- if (decl.overloads.length > 1) {
161
- for (let overload of decl.overloads) {
162
- const args = overload.inputs.map((i, n) => `${i.name || `arg${n}`}: ${getType(i)}`);
163
- const returnType = overload.outputs.length == 1 ? getType(overload.outputs[0]) : getTupleType(overload.outputs);
164
- this.out.line(`async ${decl.name}(${args}): Promise<${returnType}>`);
165
- }
166
- this.out.block(`async ${decl.name}(...args: any[])`, () => {
167
- this.out.line(`return this.call("${decl.name}", args)`);
168
- });
169
- }
170
- else {
171
- const overload = decl.overloads[0];
172
- const params = overload.inputs.map((i, n) => `${i.name || `arg${n}`}: ${getType(i)}`);
173
- const returnType = overload.outputs.length == 1 ? getType(overload.outputs[0]) : getTupleType(overload.outputs);
174
- this.out.block(`async ${decl.name}(${params.join(`, `)}): Promise<${returnType}>`, () => {
175
- this.out.line(`return this.call("${decl.name}", [${overload.inputs.map((i, n) => `${i.name || `arg${n}`}`).join(`, `)}])`);
80
+ this.out.block(`export class Contract extends ContractBase`, () => {
81
+ let functions = Object.values(this.abi.functions);
82
+ for (let f of functions) {
83
+ if (f.constant && f.outputs?.length) {
84
+ this.out.line();
85
+ let argNames = f.inputs.map((a, idx) => a.name || `arg${idx}`);
86
+ let args = f.inputs.map((a, idx) => `${argNames[idx]}: ${(0, types_1.getType)(a)}`).join(', ');
87
+ this.out.block(`${this.getPropName(f)}(${args}): Promise<${(0, types_1.getReturnType)(f.outputs)}>`, () => {
88
+ this.out.line(`return this.eth_call(functions${this.getRef(f)}, [${argNames.join(', ')}])`);
176
89
  });
177
90
  }
178
- this.out.line();
179
91
  }
180
- this.out.block(`private async call(name: string, args: any[]) : Promise<any>`, () => {
181
- this.out.line(`const fragment = abi.getFunction(name)`);
182
- this.out.line(`const data = abi.encodeFunctionData(fragment, args)`);
183
- this.out.line(`const result = await this._chain.client.call('eth_call', [{to: this.address, data}, this.blockHeight])`);
184
- this.out.line(`const decoded = abi.decodeFunctionResult(fragment, result)`);
185
- this.out.line(`return decoded.length > 1 ? decoded : decoded[0]`);
186
- });
187
92
  });
188
93
  }
189
- getEvents() {
190
- let res = new Map();
191
- for (let event of Object.values(this.abi.events)) {
192
- let abiEvent = res.get(event.name);
193
- if (abiEvent == null) {
194
- abiEvent = {
195
- name: event.name,
196
- overloads: []
197
- };
198
- res.set(event.name, abiEvent);
199
- }
200
- abiEvent.overloads.push({
201
- inputs: event.inputs || [],
202
- });
94
+ getRef(item) {
95
+ let key = this.getPropName(item);
96
+ if (key[0] == "'") {
97
+ return `[${key}]`;
98
+ }
99
+ else {
100
+ return '.' + key;
203
101
  }
204
- return [...res.values()];
205
102
  }
206
- getFunctions() {
207
- let res = new Map();
208
- for (let func of Object.values(this.abi.functions)) {
209
- if (func.constant)
210
- continue;
211
- let abiFunc = res.get(func.name);
212
- if (abiFunc == null) {
213
- abiFunc = {
214
- name: func.name,
215
- overloads: []
216
- };
217
- res.set(func.name, abiFunc);
218
- }
219
- abiFunc.overloads.push({
220
- inputs: func.inputs || [],
221
- });
103
+ getPropName(item) {
104
+ if (this.getOverloads(item) == 1) {
105
+ return item.name;
106
+ }
107
+ else {
108
+ return `'${item.format('sighash')}'`;
222
109
  }
223
- return [...res.values()];
224
110
  }
225
- getCalls() {
226
- let res = new Map();
227
- for (let func of Object.values(this.abi.functions)) {
228
- if (!func.constant || func.outputs == null)
229
- continue;
230
- let abiCall = res.get(func.name);
231
- if (abiCall == null) {
232
- abiCall = {
233
- name: func.name,
234
- overloads: []
235
- };
236
- res.set(func.name, abiCall);
237
- }
238
- abiCall.overloads.push({
239
- inputs: func.inputs,
240
- outputs: func.outputs || [],
241
- });
111
+ getOverloads(item) {
112
+ if (item instanceof abi_1.EventFragment) {
113
+ return this.eventOverloads()[item.name];
114
+ }
115
+ else {
116
+ return this.functionOverloads()[item.name];
117
+ }
118
+ }
119
+ functionOverloads() {
120
+ let overloads = {};
121
+ for (let item of Object.values(this.abi.functions)) {
122
+ overloads[item.name] = (overloads[item.name] || 0) + 1;
123
+ }
124
+ return overloads;
125
+ }
126
+ eventOverloads() {
127
+ let overloads = {};
128
+ for (let item of Object.values(this.abi.events)) {
129
+ overloads[item.name] = (overloads[item.name] || 0) + 1;
242
130
  }
243
- return [...res.values()];
131
+ return overloads;
244
132
  }
245
133
  }
246
134
  __decorate([
247
135
  util_internal_1.def,
248
136
  __metadata("design:type", Function),
249
137
  __metadata("design:paramtypes", []),
250
- __metadata("design:returntype", Array)
251
- ], Typegen.prototype, "getEvents", null);
252
- __decorate([
253
- util_internal_1.def,
254
- __metadata("design:type", Function),
255
- __metadata("design:paramtypes", []),
256
- __metadata("design:returntype", Array)
257
- ], Typegen.prototype, "getFunctions", null);
138
+ __metadata("design:returntype", Object)
139
+ ], Typegen.prototype, "functionOverloads", null);
258
140
  __decorate([
259
141
  util_internal_1.def,
260
142
  __metadata("design:type", Function),
261
143
  __metadata("design:paramtypes", []),
262
- __metadata("design:returntype", Array)
263
- ], Typegen.prototype, "getCalls", null);
144
+ __metadata("design:returntype", Object)
145
+ ], Typegen.prototype, "eventOverloads", null);
264
146
  exports.Typegen = Typegen;
265
- // taken from: https://github.com/ethers-io/ethers.js/blob/948f77050dae884fe88932fd88af75560aac9d78/packages/cli/src.ts/typescript.ts#L10
266
- function getType(param) {
267
- if (param.type === "address" || param.type === "string") {
268
- return "string";
269
- }
270
- if (param.type === "bool") {
271
- return "boolean";
272
- }
273
- if (param.type.substring(0, 5) === "bytes") {
274
- return "string";
275
- }
276
- let match = param.type.match(/^(u?int)([0-9]+)$/);
277
- if (match) {
278
- return parseInt(match[2]) < 53 ? 'number' : 'ethers.BigNumber';
279
- }
280
- if (param.baseType === "array") {
281
- return "Array<" + getType(param.arrayChildren) + ">";
282
- }
283
- if (param.baseType === "tuple") {
284
- return getTupleType(param.components);
285
- }
286
- throw new Error("unknown type");
287
- }
288
- function getTupleType(params) {
289
- let tuple = '[' + params.map(p => {
290
- return p.name ? `${p.name}: ${getType(p)}` : getType(p);
291
- }).join(', ') + ']';
292
- let fields = getStructFields(params);
293
- if (fields.length == 0)
294
- return tuple;
295
- let struct = '{' + fields.map(f => `${f.name}: ${getType(f)}`).join(', ') + '}';
296
- return `(${tuple} & ${struct})`;
297
- }
298
- // https://github.com/ethers-io/ethers.js/blob/948f77050dae884fe88932fd88af75560aac9d78/packages/abi/src.ts/coders/tuple.ts#L29
299
- function getStructFields(params) {
300
- let array = [];
301
- let counts = {};
302
- for (let p of params) {
303
- if (p.name && array[p.name] == null) {
304
- counts[p.name] = (counts[p.name] || 0) + 1;
305
- }
306
- }
307
- return params.filter(p => counts[p.name] == 1);
308
- }
309
- function createSignature(name, inputs) {
310
- return `${name}(${inputs.map((i) => i.type).join(`,`)})`;
311
- }
312
- function upperCaseFirst(s) {
313
- return s[0].toUpperCase() + s.slice(1);
314
- }
315
147
  //# sourceMappingURL=typegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare function GET<T = any>(url: string): Promise<T>;
2
+ export declare class HttpError extends Error {
3
+ readonly status: number;
4
+ readonly body?: string | undefined;
5
+ constructor(status: number, body?: string | undefined);
6
+ }
7
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/util/fetch.ts"],"names":[],"mappings":"AASA,wBAAsB,GAAG,CAAC,CAAC,GAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CA2BxD;AAsCD,qBAAa,SAAU,SAAQ,KAAK;aAEZ,MAAM,EAAE,MAAM;aACd,IAAI,CAAC;gBADL,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,oBAAQ;CAIpC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.HttpError = exports.GET = void 0;
30
+ const logger_1 = require("@subsquid/logger");
31
+ const util_internal_1 = require("@subsquid/util-internal");
32
+ const assert_1 = __importDefault(require("assert"));
33
+ const node_fetch_1 = __importStar(require("node-fetch"));
34
+ const LOG = (0, logger_1.createLogger)('sqd:evm-typegen:fetch');
35
+ async function GET(url) {
36
+ let init = {
37
+ method: 'GET',
38
+ headers: {
39
+ 'accept': 'application/json',
40
+ 'accept-encoding': 'gzip, br'
41
+ },
42
+ timeout: 10000
43
+ };
44
+ let backoff = [1000, 2000];
45
+ let errors = 0;
46
+ while (true) {
47
+ let result = await performFetch(url, init).catch(err => {
48
+ (0, assert_1.default)(err instanceof Error);
49
+ return err;
50
+ });
51
+ if (errors < backoff.length && isRetryableError(result)) {
52
+ let timeout = backoff[errors];
53
+ LOG.warn(`${result.toString()}. Trying again in ${timeout / 1000} seconds`);
54
+ errors += 1;
55
+ await (0, util_internal_1.wait)(timeout);
56
+ }
57
+ else if (result instanceof Error) {
58
+ throw result;
59
+ }
60
+ else {
61
+ return result;
62
+ }
63
+ }
64
+ }
65
+ exports.GET = GET;
66
+ async function performFetch(url, init) {
67
+ let response = await (0, node_fetch_1.default)(url, init);
68
+ if (response.ok)
69
+ return response.json();
70
+ let body = await response.text();
71
+ throw new HttpError(response.status, body);
72
+ }
73
+ function isRetryableError(err) {
74
+ if (err instanceof HttpError) {
75
+ switch (err.status) {
76
+ case 429:
77
+ case 502:
78
+ case 503:
79
+ case 504:
80
+ return true;
81
+ default:
82
+ return false;
83
+ }
84
+ }
85
+ if (err instanceof node_fetch_1.FetchError) {
86
+ switch (err.type) {
87
+ case 'body-timeout':
88
+ case 'request-timeout':
89
+ return true;
90
+ case 'system':
91
+ return err.message.startsWith('request to');
92
+ default:
93
+ return false;
94
+ }
95
+ }
96
+ return false;
97
+ }
98
+ class HttpError extends Error {
99
+ constructor(status, body) {
100
+ super(`Got http ${status}`);
101
+ this.status = status;
102
+ this.body = body;
103
+ }
104
+ }
105
+ exports.HttpError = HttpError;
106
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/util/fetch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA6C;AAC7C,2DAA4C;AAC5C,oDAA2B;AAC3B,yDAAyD;AAGzD,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,uBAAuB,CAAC,CAAA;AAG1C,KAAK,UAAU,GAAG,CAAQ,GAAW;IACxC,IAAI,IAAI,GAAgB;QACpB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACL,QAAQ,EAAE,kBAAkB;YAC5B,iBAAiB,EAAE,UAAU;SAChC;QACD,OAAO,EAAE,KAAM;KAClB,CAAA;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC1B,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,IAAI,EAAE;QACT,IAAI,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACnD,IAAA,gBAAM,EAAC,GAAG,YAAY,KAAK,CAAC,CAAA;YAC5B,OAAO,GAAG,CAAA;QACd,CAAC,CAAC,CAAA;QACF,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;YACrD,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,qBAAqB,OAAO,GAAC,IAAI,UAAU,CAAC,CAAA;YACzE,MAAM,IAAI,CAAC,CAAA;YACX,MAAM,IAAA,oBAAI,EAAC,OAAO,CAAC,CAAA;SACtB;aAAM,IAAI,MAAM,YAAY,KAAK,EAAE;YAChC,MAAM,MAAM,CAAA;SACf;aAAM;YACH,OAAO,MAAM,CAAA;SAChB;KACJ;AACL,CAAC;AA3BD,kBA2BC;AAGD,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,IAAiB;IACtD,IAAI,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACrC,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACvC,IAAI,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAChC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;AAC9C,CAAC;AAGD,SAAS,gBAAgB,CAAC,GAAY;IAClC,IAAI,GAAG,YAAY,SAAS,EAAE;QAC1B,QAAO,GAAG,CAAC,MAAM,EAAE;YACf,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACJ,OAAO,IAAI,CAAA;YACf;gBACI,OAAO,KAAK,CAAA;SACnB;KACJ;IACD,IAAI,GAAG,YAAY,uBAAU,EAAE;QAC3B,QAAO,GAAG,CAAC,IAAI,EAAE;YACb,KAAK,cAAc,CAAC;YACpB,KAAK,iBAAiB;gBAClB,OAAO,IAAI,CAAA;YACf,KAAK,QAAQ;gBACT,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YAC/C;gBACI,OAAO,KAAK,CAAA;SACnB;KACJ;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAGD,MAAa,SAAU,SAAQ,KAAK;IAChC,YACoB,MAAc,EACd,IAAa;QAE7B,KAAK,CAAC,YAAY,MAAM,EAAE,CAAC,CAAA;QAHX,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;IAGjC,CAAC;CACJ;AAPD,8BAOC"}
@@ -0,0 +1,7 @@
1
+ import type { ParamType } from '@ethersproject/abi';
2
+ export declare function getType(param: ParamType): string;
3
+ export declare function getFullTupleType(params: ParamType[]): string;
4
+ export declare function getTupleType(params: ParamType[]): string;
5
+ export declare function getStructType(params: ParamType[]): string;
6
+ export declare function getReturnType(outputs: ParamType[]): string;
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAA;AAIjD,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CA2BhD;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAQ5D;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAIxD;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAUzD;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,UAEjD"}