@instadapp/interop-x 0.0.0-dev.ee3d74b → 0.0.0-dev.ef7acff

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. package/dist/package.json +3 -1
  2. package/dist/src/abi/index.js +2 -0
  3. package/dist/src/abi/instList.json +232 -0
  4. package/dist/src/api/index.js +7 -0
  5. package/dist/src/constants/addresses.js +4 -2
  6. package/dist/src/db/models/transaction.js +15 -7
  7. package/dist/src/errors/index.js +17 -0
  8. package/dist/src/gnosis/actions/aaveV2/source.js +15 -4
  9. package/dist/src/gnosis/actions/aaveV2/target.js +78 -0
  10. package/dist/src/index.js +1 -1
  11. package/dist/src/tasks/InteropX/{ProcessSubmitSubmitEvents.js → ProcessSubmitEvents.js} +29 -5
  12. package/dist/src/tasks/InteropX/ProcessValidateEvents.js +184 -0
  13. package/dist/src/tasks/InteropX/SyncLogExecuteEvents.js +112 -0
  14. package/dist/src/tasks/InteropX/SyncLogSubmitEvents.js +1 -0
  15. package/dist/src/tasks/InteropX/SyncLogValidateEvents.js +105 -0
  16. package/dist/src/tasks/index.js +13 -5
  17. package/dist/src/typechain/InstList.js +2 -0
  18. package/dist/src/typechain/factories/InstList__factory.js +249 -0
  19. package/dist/src/typechain/factories/index.js +3 -1
  20. package/dist/src/typechain/index.js +3 -1
  21. package/dist/src/utils/async.js +18 -0
  22. package/dist/src/utils/dsa.js +24 -0
  23. package/dist/src/utils/formatting.js +17 -0
  24. package/dist/src/utils/gnosis.js +62 -0
  25. package/dist/src/utils/http.js +10 -0
  26. package/dist/src/utils/index.js +21 -219
  27. package/dist/src/utils/interop.js +16 -0
  28. package/dist/src/utils/validate.js +23 -0
  29. package/dist/src/utils/web3.js +92 -0
  30. package/package.json +3 -1
  31. package/src/abi/index.ts +2 -0
  32. package/src/abi/instList.json +232 -0
  33. package/src/api/index.ts +8 -0
  34. package/src/constants/addresses.ts +5 -3
  35. package/src/db/models/transaction.ts +134 -80
  36. package/src/errors/index.ts +13 -0
  37. package/src/gnosis/actions/aaveV2/source.ts +19 -5
  38. package/src/gnosis/actions/aaveV2/target.ts +130 -2
  39. package/src/tasks/InteropX/{ProcessSubmitSubmitEvents.ts → ProcessSubmitEvents.ts} +35 -7
  40. package/src/tasks/InteropX/ProcessValidateEvents.ts +272 -0
  41. package/src/tasks/InteropX/SyncLogExecuteEvents.ts +160 -0
  42. package/src/tasks/InteropX/SyncLogSubmitEvents.ts +3 -4
  43. package/src/tasks/InteropX/SyncLogValidateEvents.ts +150 -0
  44. package/src/tasks/index.ts +16 -5
  45. package/src/typechain/InstList.ts +402 -0
  46. package/src/typechain/factories/InstList__factory.ts +253 -0
  47. package/src/typechain/factories/index.ts +1 -0
  48. package/src/typechain/index.ts +2 -0
  49. package/src/utils/async.ts +22 -0
  50. package/src/utils/dsa.ts +30 -0
  51. package/src/utils/formatting.ts +15 -0
  52. package/src/utils/gnosis.ts +123 -0
  53. package/src/utils/http.ts +6 -0
  54. package/src/utils/index.ts +8 -365
  55. package/src/utils/interop.ts +28 -0
  56. package/src/utils/validate.ts +24 -0
  57. package/src/utils/web3.ts +131 -0
@@ -0,0 +1,402 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type {
5
+ BaseContract,
6
+ BigNumber,
7
+ BigNumberish,
8
+ BytesLike,
9
+ CallOverrides,
10
+ ContractTransaction,
11
+ Overrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import type { FunctionFragment, Result } from "@ethersproject/abi";
17
+ import type { Listener, Provider } from "@ethersproject/providers";
18
+ import type {
19
+ TypedEventFilter,
20
+ TypedEvent,
21
+ TypedListener,
22
+ OnEvent,
23
+ } from "./common";
24
+
25
+ export interface InstListInterface extends utils.Interface {
26
+ functions: {
27
+ "accountAddr(uint64)": FunctionFragment;
28
+ "accountID(address)": FunctionFragment;
29
+ "accountLink(uint64)": FunctionFragment;
30
+ "accountList(uint64,address)": FunctionFragment;
31
+ "accounts()": FunctionFragment;
32
+ "addAuth(address)": FunctionFragment;
33
+ "init(address)": FunctionFragment;
34
+ "instaIndex()": FunctionFragment;
35
+ "removeAuth(address)": FunctionFragment;
36
+ "userLink(address)": FunctionFragment;
37
+ "userList(address,uint64)": FunctionFragment;
38
+ };
39
+
40
+ getFunction(
41
+ nameOrSignatureOrTopic:
42
+ | "accountAddr"
43
+ | "accountID"
44
+ | "accountLink"
45
+ | "accountList"
46
+ | "accounts"
47
+ | "addAuth"
48
+ | "init"
49
+ | "instaIndex"
50
+ | "removeAuth"
51
+ | "userLink"
52
+ | "userList"
53
+ ): FunctionFragment;
54
+
55
+ encodeFunctionData(
56
+ functionFragment: "accountAddr",
57
+ values: [BigNumberish]
58
+ ): string;
59
+ encodeFunctionData(functionFragment: "accountID", values: [string]): string;
60
+ encodeFunctionData(
61
+ functionFragment: "accountLink",
62
+ values: [BigNumberish]
63
+ ): string;
64
+ encodeFunctionData(
65
+ functionFragment: "accountList",
66
+ values: [BigNumberish, string]
67
+ ): string;
68
+ encodeFunctionData(functionFragment: "accounts", values?: undefined): string;
69
+ encodeFunctionData(functionFragment: "addAuth", values: [string]): string;
70
+ encodeFunctionData(functionFragment: "init", values: [string]): string;
71
+ encodeFunctionData(
72
+ functionFragment: "instaIndex",
73
+ values?: undefined
74
+ ): string;
75
+ encodeFunctionData(functionFragment: "removeAuth", values: [string]): string;
76
+ encodeFunctionData(functionFragment: "userLink", values: [string]): string;
77
+ encodeFunctionData(
78
+ functionFragment: "userList",
79
+ values: [string, BigNumberish]
80
+ ): string;
81
+
82
+ decodeFunctionResult(
83
+ functionFragment: "accountAddr",
84
+ data: BytesLike
85
+ ): Result;
86
+ decodeFunctionResult(functionFragment: "accountID", data: BytesLike): Result;
87
+ decodeFunctionResult(
88
+ functionFragment: "accountLink",
89
+ data: BytesLike
90
+ ): Result;
91
+ decodeFunctionResult(
92
+ functionFragment: "accountList",
93
+ data: BytesLike
94
+ ): Result;
95
+ decodeFunctionResult(functionFragment: "accounts", data: BytesLike): Result;
96
+ decodeFunctionResult(functionFragment: "addAuth", data: BytesLike): Result;
97
+ decodeFunctionResult(functionFragment: "init", data: BytesLike): Result;
98
+ decodeFunctionResult(functionFragment: "instaIndex", data: BytesLike): Result;
99
+ decodeFunctionResult(functionFragment: "removeAuth", data: BytesLike): Result;
100
+ decodeFunctionResult(functionFragment: "userLink", data: BytesLike): Result;
101
+ decodeFunctionResult(functionFragment: "userList", data: BytesLike): Result;
102
+
103
+ events: {};
104
+ }
105
+
106
+ export interface InstList extends BaseContract {
107
+ connect(signerOrProvider: Signer | Provider | string): this;
108
+ attach(addressOrName: string): this;
109
+ deployed(): Promise<this>;
110
+
111
+ interface: InstListInterface;
112
+
113
+ queryFilter<TEvent extends TypedEvent>(
114
+ event: TypedEventFilter<TEvent>,
115
+ fromBlockOrBlockhash?: string | number | undefined,
116
+ toBlock?: string | number | undefined
117
+ ): Promise<Array<TEvent>>;
118
+
119
+ listeners<TEvent extends TypedEvent>(
120
+ eventFilter?: TypedEventFilter<TEvent>
121
+ ): Array<TypedListener<TEvent>>;
122
+ listeners(eventName?: string): Array<Listener>;
123
+ removeAllListeners<TEvent extends TypedEvent>(
124
+ eventFilter: TypedEventFilter<TEvent>
125
+ ): this;
126
+ removeAllListeners(eventName?: string): this;
127
+ off: OnEvent<this>;
128
+ on: OnEvent<this>;
129
+ once: OnEvent<this>;
130
+ removeListener: OnEvent<this>;
131
+
132
+ functions: {
133
+ accountAddr(
134
+ arg0: BigNumberish,
135
+ overrides?: CallOverrides
136
+ ): Promise<[string]>;
137
+
138
+ accountID(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
139
+
140
+ accountLink(
141
+ arg0: BigNumberish,
142
+ overrides?: CallOverrides
143
+ ): Promise<
144
+ [string, string, BigNumber] & {
145
+ first: string;
146
+ last: string;
147
+ count: BigNumber;
148
+ }
149
+ >;
150
+
151
+ accountList(
152
+ arg0: BigNumberish,
153
+ arg1: string,
154
+ overrides?: CallOverrides
155
+ ): Promise<[string, string] & { prev: string; next: string }>;
156
+
157
+ accounts(overrides?: CallOverrides): Promise<[BigNumber]>;
158
+
159
+ addAuth(
160
+ _owner: string,
161
+ overrides?: Overrides & { from?: string | Promise<string> }
162
+ ): Promise<ContractTransaction>;
163
+
164
+ init(
165
+ _account: string,
166
+ overrides?: Overrides & { from?: string | Promise<string> }
167
+ ): Promise<ContractTransaction>;
168
+
169
+ instaIndex(overrides?: CallOverrides): Promise<[string]>;
170
+
171
+ removeAuth(
172
+ _owner: string,
173
+ overrides?: Overrides & { from?: string | Promise<string> }
174
+ ): Promise<ContractTransaction>;
175
+
176
+ userLink(
177
+ arg0: string,
178
+ overrides?: CallOverrides
179
+ ): Promise<
180
+ [BigNumber, BigNumber, BigNumber] & {
181
+ first: BigNumber;
182
+ last: BigNumber;
183
+ count: BigNumber;
184
+ }
185
+ >;
186
+
187
+ userList(
188
+ arg0: string,
189
+ arg1: BigNumberish,
190
+ overrides?: CallOverrides
191
+ ): Promise<[BigNumber, BigNumber] & { prev: BigNumber; next: BigNumber }>;
192
+ };
193
+
194
+ accountAddr(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
195
+
196
+ accountID(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
197
+
198
+ accountLink(
199
+ arg0: BigNumberish,
200
+ overrides?: CallOverrides
201
+ ): Promise<
202
+ [string, string, BigNumber] & {
203
+ first: string;
204
+ last: string;
205
+ count: BigNumber;
206
+ }
207
+ >;
208
+
209
+ accountList(
210
+ arg0: BigNumberish,
211
+ arg1: string,
212
+ overrides?: CallOverrides
213
+ ): Promise<[string, string] & { prev: string; next: string }>;
214
+
215
+ accounts(overrides?: CallOverrides): Promise<BigNumber>;
216
+
217
+ addAuth(
218
+ _owner: string,
219
+ overrides?: Overrides & { from?: string | Promise<string> }
220
+ ): Promise<ContractTransaction>;
221
+
222
+ init(
223
+ _account: string,
224
+ overrides?: Overrides & { from?: string | Promise<string> }
225
+ ): Promise<ContractTransaction>;
226
+
227
+ instaIndex(overrides?: CallOverrides): Promise<string>;
228
+
229
+ removeAuth(
230
+ _owner: string,
231
+ overrides?: Overrides & { from?: string | Promise<string> }
232
+ ): Promise<ContractTransaction>;
233
+
234
+ userLink(
235
+ arg0: string,
236
+ overrides?: CallOverrides
237
+ ): Promise<
238
+ [BigNumber, BigNumber, BigNumber] & {
239
+ first: BigNumber;
240
+ last: BigNumber;
241
+ count: BigNumber;
242
+ }
243
+ >;
244
+
245
+ userList(
246
+ arg0: string,
247
+ arg1: BigNumberish,
248
+ overrides?: CallOverrides
249
+ ): Promise<[BigNumber, BigNumber] & { prev: BigNumber; next: BigNumber }>;
250
+
251
+ callStatic: {
252
+ accountAddr(arg0: BigNumberish, overrides?: CallOverrides): Promise<string>;
253
+
254
+ accountID(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
255
+
256
+ accountLink(
257
+ arg0: BigNumberish,
258
+ overrides?: CallOverrides
259
+ ): Promise<
260
+ [string, string, BigNumber] & {
261
+ first: string;
262
+ last: string;
263
+ count: BigNumber;
264
+ }
265
+ >;
266
+
267
+ accountList(
268
+ arg0: BigNumberish,
269
+ arg1: string,
270
+ overrides?: CallOverrides
271
+ ): Promise<[string, string] & { prev: string; next: string }>;
272
+
273
+ accounts(overrides?: CallOverrides): Promise<BigNumber>;
274
+
275
+ addAuth(_owner: string, overrides?: CallOverrides): Promise<void>;
276
+
277
+ init(_account: string, overrides?: CallOverrides): Promise<void>;
278
+
279
+ instaIndex(overrides?: CallOverrides): Promise<string>;
280
+
281
+ removeAuth(_owner: string, overrides?: CallOverrides): Promise<void>;
282
+
283
+ userLink(
284
+ arg0: string,
285
+ overrides?: CallOverrides
286
+ ): Promise<
287
+ [BigNumber, BigNumber, BigNumber] & {
288
+ first: BigNumber;
289
+ last: BigNumber;
290
+ count: BigNumber;
291
+ }
292
+ >;
293
+
294
+ userList(
295
+ arg0: string,
296
+ arg1: BigNumberish,
297
+ overrides?: CallOverrides
298
+ ): Promise<[BigNumber, BigNumber] & { prev: BigNumber; next: BigNumber }>;
299
+ };
300
+
301
+ filters: {};
302
+
303
+ estimateGas: {
304
+ accountAddr(
305
+ arg0: BigNumberish,
306
+ overrides?: CallOverrides
307
+ ): Promise<BigNumber>;
308
+
309
+ accountID(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
310
+
311
+ accountLink(
312
+ arg0: BigNumberish,
313
+ overrides?: CallOverrides
314
+ ): Promise<BigNumber>;
315
+
316
+ accountList(
317
+ arg0: BigNumberish,
318
+ arg1: string,
319
+ overrides?: CallOverrides
320
+ ): Promise<BigNumber>;
321
+
322
+ accounts(overrides?: CallOverrides): Promise<BigNumber>;
323
+
324
+ addAuth(
325
+ _owner: string,
326
+ overrides?: Overrides & { from?: string | Promise<string> }
327
+ ): Promise<BigNumber>;
328
+
329
+ init(
330
+ _account: string,
331
+ overrides?: Overrides & { from?: string | Promise<string> }
332
+ ): Promise<BigNumber>;
333
+
334
+ instaIndex(overrides?: CallOverrides): Promise<BigNumber>;
335
+
336
+ removeAuth(
337
+ _owner: string,
338
+ overrides?: Overrides & { from?: string | Promise<string> }
339
+ ): Promise<BigNumber>;
340
+
341
+ userLink(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
342
+
343
+ userList(
344
+ arg0: string,
345
+ arg1: BigNumberish,
346
+ overrides?: CallOverrides
347
+ ): Promise<BigNumber>;
348
+ };
349
+
350
+ populateTransaction: {
351
+ accountAddr(
352
+ arg0: BigNumberish,
353
+ overrides?: CallOverrides
354
+ ): Promise<PopulatedTransaction>;
355
+
356
+ accountID(
357
+ arg0: string,
358
+ overrides?: CallOverrides
359
+ ): Promise<PopulatedTransaction>;
360
+
361
+ accountLink(
362
+ arg0: BigNumberish,
363
+ overrides?: CallOverrides
364
+ ): Promise<PopulatedTransaction>;
365
+
366
+ accountList(
367
+ arg0: BigNumberish,
368
+ arg1: string,
369
+ overrides?: CallOverrides
370
+ ): Promise<PopulatedTransaction>;
371
+
372
+ accounts(overrides?: CallOverrides): Promise<PopulatedTransaction>;
373
+
374
+ addAuth(
375
+ _owner: string,
376
+ overrides?: Overrides & { from?: string | Promise<string> }
377
+ ): Promise<PopulatedTransaction>;
378
+
379
+ init(
380
+ _account: string,
381
+ overrides?: Overrides & { from?: string | Promise<string> }
382
+ ): Promise<PopulatedTransaction>;
383
+
384
+ instaIndex(overrides?: CallOverrides): Promise<PopulatedTransaction>;
385
+
386
+ removeAuth(
387
+ _owner: string,
388
+ overrides?: Overrides & { from?: string | Promise<string> }
389
+ ): Promise<PopulatedTransaction>;
390
+
391
+ userLink(
392
+ arg0: string,
393
+ overrides?: CallOverrides
394
+ ): Promise<PopulatedTransaction>;
395
+
396
+ userList(
397
+ arg0: string,
398
+ arg1: BigNumberish,
399
+ overrides?: CallOverrides
400
+ ): Promise<PopulatedTransaction>;
401
+ };
402
+ }
@@ -0,0 +1,253 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import type { Provider } from "@ethersproject/providers";
7
+ import type { InstList, InstListInterface } from "../InstList";
8
+
9
+ const _abi = [
10
+ {
11
+ inputs: [
12
+ {
13
+ internalType: "address",
14
+ name: "_instaIndex",
15
+ type: "address",
16
+ },
17
+ ],
18
+ stateMutability: "nonpayable",
19
+ type: "constructor",
20
+ },
21
+ {
22
+ inputs: [
23
+ {
24
+ internalType: "uint64",
25
+ name: "",
26
+ type: "uint64",
27
+ },
28
+ ],
29
+ name: "accountAddr",
30
+ outputs: [
31
+ {
32
+ internalType: "address",
33
+ name: "",
34
+ type: "address",
35
+ },
36
+ ],
37
+ stateMutability: "view",
38
+ type: "function",
39
+ },
40
+ {
41
+ inputs: [
42
+ {
43
+ internalType: "address",
44
+ name: "",
45
+ type: "address",
46
+ },
47
+ ],
48
+ name: "accountID",
49
+ outputs: [
50
+ {
51
+ internalType: "uint64",
52
+ name: "",
53
+ type: "uint64",
54
+ },
55
+ ],
56
+ stateMutability: "view",
57
+ type: "function",
58
+ },
59
+ {
60
+ inputs: [
61
+ {
62
+ internalType: "uint64",
63
+ name: "",
64
+ type: "uint64",
65
+ },
66
+ ],
67
+ name: "accountLink",
68
+ outputs: [
69
+ {
70
+ internalType: "address",
71
+ name: "first",
72
+ type: "address",
73
+ },
74
+ {
75
+ internalType: "address",
76
+ name: "last",
77
+ type: "address",
78
+ },
79
+ {
80
+ internalType: "uint64",
81
+ name: "count",
82
+ type: "uint64",
83
+ },
84
+ ],
85
+ stateMutability: "view",
86
+ type: "function",
87
+ },
88
+ {
89
+ inputs: [
90
+ {
91
+ internalType: "uint64",
92
+ name: "",
93
+ type: "uint64",
94
+ },
95
+ {
96
+ internalType: "address",
97
+ name: "",
98
+ type: "address",
99
+ },
100
+ ],
101
+ name: "accountList",
102
+ outputs: [
103
+ {
104
+ internalType: "address",
105
+ name: "prev",
106
+ type: "address",
107
+ },
108
+ {
109
+ internalType: "address",
110
+ name: "next",
111
+ type: "address",
112
+ },
113
+ ],
114
+ stateMutability: "view",
115
+ type: "function",
116
+ },
117
+ {
118
+ inputs: [],
119
+ name: "accounts",
120
+ outputs: [
121
+ {
122
+ internalType: "uint64",
123
+ name: "",
124
+ type: "uint64",
125
+ },
126
+ ],
127
+ stateMutability: "view",
128
+ type: "function",
129
+ },
130
+ {
131
+ inputs: [
132
+ {
133
+ internalType: "address",
134
+ name: "_owner",
135
+ type: "address",
136
+ },
137
+ ],
138
+ name: "addAuth",
139
+ outputs: [],
140
+ stateMutability: "nonpayable",
141
+ type: "function",
142
+ },
143
+ {
144
+ inputs: [
145
+ {
146
+ internalType: "address",
147
+ name: "_account",
148
+ type: "address",
149
+ },
150
+ ],
151
+ name: "init",
152
+ outputs: [],
153
+ stateMutability: "nonpayable",
154
+ type: "function",
155
+ },
156
+ {
157
+ inputs: [],
158
+ name: "instaIndex",
159
+ outputs: [
160
+ {
161
+ internalType: "address",
162
+ name: "",
163
+ type: "address",
164
+ },
165
+ ],
166
+ stateMutability: "view",
167
+ type: "function",
168
+ },
169
+ {
170
+ inputs: [
171
+ {
172
+ internalType: "address",
173
+ name: "_owner",
174
+ type: "address",
175
+ },
176
+ ],
177
+ name: "removeAuth",
178
+ outputs: [],
179
+ stateMutability: "nonpayable",
180
+ type: "function",
181
+ },
182
+ {
183
+ inputs: [
184
+ {
185
+ internalType: "address",
186
+ name: "",
187
+ type: "address",
188
+ },
189
+ ],
190
+ name: "userLink",
191
+ outputs: [
192
+ {
193
+ internalType: "uint64",
194
+ name: "first",
195
+ type: "uint64",
196
+ },
197
+ {
198
+ internalType: "uint64",
199
+ name: "last",
200
+ type: "uint64",
201
+ },
202
+ {
203
+ internalType: "uint64",
204
+ name: "count",
205
+ type: "uint64",
206
+ },
207
+ ],
208
+ stateMutability: "view",
209
+ type: "function",
210
+ },
211
+ {
212
+ inputs: [
213
+ {
214
+ internalType: "address",
215
+ name: "",
216
+ type: "address",
217
+ },
218
+ {
219
+ internalType: "uint64",
220
+ name: "",
221
+ type: "uint64",
222
+ },
223
+ ],
224
+ name: "userList",
225
+ outputs: [
226
+ {
227
+ internalType: "uint64",
228
+ name: "prev",
229
+ type: "uint64",
230
+ },
231
+ {
232
+ internalType: "uint64",
233
+ name: "next",
234
+ type: "uint64",
235
+ },
236
+ ],
237
+ stateMutability: "view",
238
+ type: "function",
239
+ },
240
+ ];
241
+
242
+ export class InstList__factory {
243
+ static readonly abi = _abi;
244
+ static createInterface(): InstListInterface {
245
+ return new utils.Interface(_abi) as InstListInterface;
246
+ }
247
+ static connect(
248
+ address: string,
249
+ signerOrProvider: Signer | Provider
250
+ ): InstList {
251
+ return new Contract(address, _abi, signerOrProvider) as InstList;
252
+ }
253
+ }
@@ -3,4 +3,5 @@
3
3
  /* eslint-disable */
4
4
  export { Erc20__factory } from "./Erc20__factory";
5
5
  export { GnosisSafe__factory } from "./GnosisSafe__factory";
6
+ export { InstList__factory } from "./InstList__factory";
6
7
  export { InteropX__factory } from "./InteropX__factory";
@@ -3,8 +3,10 @@
3
3
  /* eslint-disable */
4
4
  export type { Erc20 } from "./Erc20";
5
5
  export type { GnosisSafe } from "./GnosisSafe";
6
+ export type { InstList } from "./InstList";
6
7
  export type { InteropX } from "./InteropX";
7
8
  export * as factories from "./factories";
8
9
  export { Erc20__factory } from "./factories/Erc20__factory";
9
10
  export { GnosisSafe__factory } from "./factories/GnosisSafe__factory";
11
+ export { InstList__factory } from "./factories/InstList__factory";
10
12
  export { InteropX__factory } from "./factories/InteropX__factory";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Call an async function with a maximum time limit (in milliseconds) for the timeout
3
+ * Resolved promise for async function call, or an error if time limit reached
4
+ */
5
+ export const asyncCallWithTimeout = async <T>(
6
+ asyncPromise: Promise<T>,
7
+ timeout: number
8
+ ) => {
9
+ let timeoutHandle;
10
+
11
+ const timeoutPromise = new Promise((_resolve, reject) => {
12
+ timeoutHandle = setTimeout(
13
+ () => reject(new Error("Async call timeout limit reached")),
14
+ timeout
15
+ );
16
+ });
17
+
18
+ return Promise.race([asyncPromise, timeoutPromise]).then((result) => {
19
+ clearTimeout(timeoutHandle);
20
+ return result;
21
+ }) as Promise<T>;
22
+ };