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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) 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 +10 -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 +15 -3
  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 +10 -1
  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 +20 -219
  27. package/dist/src/utils/interop.js +16 -0
  28. package/dist/src/utils/web3.js +92 -0
  29. package/package.json +3 -1
  30. package/src/abi/index.ts +2 -0
  31. package/src/abi/instList.json +232 -0
  32. package/src/api/index.ts +8 -0
  33. package/src/constants/addresses.ts +5 -3
  34. package/src/db/models/transaction.ts +134 -80
  35. package/src/errors/index.ts +6 -0
  36. package/src/gnosis/actions/aaveV2/source.ts +19 -5
  37. package/src/gnosis/actions/aaveV2/target.ts +130 -2
  38. package/src/tasks/InteropX/ProcessSubmitSubmitEvents.ts +20 -3
  39. package/src/tasks/InteropX/ProcessValidateEvents.ts +274 -0
  40. package/src/tasks/InteropX/SyncLogExecuteEvents.ts +162 -0
  41. package/src/tasks/InteropX/SyncLogSubmitEvents.ts +1 -0
  42. package/src/tasks/InteropX/SyncLogValidateEvents.ts +152 -0
  43. package/src/tasks/index.ts +13 -1
  44. package/src/typechain/InstList.ts +402 -0
  45. package/src/typechain/factories/InstList__factory.ts +253 -0
  46. package/src/typechain/factories/index.ts +1 -0
  47. package/src/typechain/index.ts +2 -0
  48. package/src/utils/async.ts +22 -0
  49. package/src/utils/dsa.ts +30 -0
  50. package/src/utils/formatting.ts +15 -0
  51. package/src/utils/gnosis.ts +123 -0
  52. package/src/utils/http.ts +6 -0
  53. package/src/utils/index.ts +7 -365
  54. package/src/utils/interop.ts +28 -0
  55. package/src/utils/web3.ts +131 -0
@@ -86,6 +86,7 @@ class SyncLogSubmitEvents extends BaseTask {
86
86
  submitEvent: {
87
87
  actionId,
88
88
  actionIdHashHash,
89
+ actionIdHash: actionIdHashHash,
89
90
  vnonce: vnonce.toString(),
90
91
  position: {
91
92
  withdraw: position.withdraw.map((v) => ({
@@ -0,0 +1,152 @@
1
+ import { BaseTask } from "../BaseTask";
2
+ import Logger from "@/logger";
3
+ import { ethers } from "ethers";
4
+ import abi from "@/abi";
5
+ import { Transaction } from "@/db";
6
+ import {
7
+ generateInteropTransactionHash,
8
+ getContract,
9
+ getRpcProviderUrl,
10
+ } from "@/utils";
11
+ import { addresses } from "@/constants";
12
+ import { ChainId } from "@/types";
13
+ import config from "@/config";
14
+ import { InteropX } from "@/typechain";
15
+ import { Op } from "sequelize";
16
+
17
+ class SyncLogValidateEvents extends BaseTask {
18
+ contractAddress: string;
19
+ provider: ethers.providers.JsonRpcProvider;
20
+ contract: InteropX;
21
+ chainId: ChainId;
22
+
23
+ constructor({ chainId }: { chainId: ChainId }) {
24
+ super({
25
+ logger: new Logger("InteropX::SyncLogValidateEvents"),
26
+ });
27
+ this.chainId = chainId;
28
+ }
29
+
30
+ async pollHandler() {
31
+ const currentBlock = await this.provider.getBlockNumber();
32
+
33
+ const events = await this.contract.queryFilter(
34
+ this.contract.filters.LogValidate(),
35
+ currentBlock - 2000,
36
+ currentBlock
37
+ );
38
+
39
+ let processedEvents = 0;
40
+
41
+ for (const event of events) {
42
+ try {
43
+ if (!event.args) {
44
+ continue;
45
+ }
46
+
47
+ const {
48
+ sourceSpells,
49
+ position,
50
+ actionId,
51
+ actionIdHash,
52
+ sourceSender,
53
+ sourceDsaId,
54
+ targetDsaId,
55
+ sourceChainId,
56
+ targetChainId,
57
+ vnonce,
58
+ metadata,
59
+ } = event.args;
60
+
61
+ const uniqueIdentifier = {
62
+ actionId,
63
+ vnonce: vnonce.toString(),
64
+ sourceSender: sourceSender.toString(),
65
+ sourceChainId: sourceChainId.toNumber(),
66
+ targetChainId: targetChainId.toNumber(),
67
+ sourceDsaId: sourceDsaId.toString(),
68
+ targetDsaId: targetDsaId.toString(),
69
+ };
70
+
71
+ let transactionHash = generateInteropTransactionHash(uniqueIdentifier);
72
+
73
+ const transaction = await Transaction.findOne({
74
+ where: {
75
+ transactionHash,
76
+ validateEvent: { [Op.eq]: null },
77
+ },
78
+ });
79
+
80
+ if (!transaction) {
81
+ continue;
82
+ }
83
+
84
+ if (transaction.sourceStatus != "success") {
85
+ transaction.sourceStatus = "success";
86
+ }
87
+
88
+ if (!transaction.sourceCreatedAt) {
89
+ transaction.sourceCreatedAt = new Date();
90
+ }
91
+
92
+ transaction.sourceTransactionHash = event.transactionHash;
93
+ transaction.sourceBlockNumber = event.blockNumber;
94
+ transaction.sourceLogs = [];
95
+ transaction.validateEvent = {
96
+ actionId,
97
+ actionIdHashHash: actionIdHash,
98
+ actionIdHash,
99
+ vnonce: vnonce.toString(),
100
+ sourceSpells: sourceSpells.map(({ connector, data }) => ({
101
+ connector,
102
+ data,
103
+ })),
104
+ position: {
105
+ withdraw: position.withdraw.map((v) => ({
106
+ sourceToken: v.sourceToken,
107
+ targetToken: v.targetToken,
108
+ amount: v.amount.toString(),
109
+ })),
110
+ supply: position.supply.map((v) => ({
111
+ sourceToken: v.sourceToken,
112
+ targetToken: v.targetToken,
113
+ amount: v.amount.toString(),
114
+ })),
115
+ },
116
+ sourceChainId: sourceChainId.toNumber(),
117
+ targetChainId: targetChainId.toNumber(),
118
+ sourceSender,
119
+ sourceDsaId: sourceDsaId.toString(),
120
+ targetDsaId: targetDsaId.toString(),
121
+ metadata,
122
+ }
123
+ await transaction.save();
124
+
125
+ this.logger.info(`New InteropX tranaction: ${transactionHash} `);
126
+ } catch (error) {
127
+ this.logger.error(error);
128
+ }
129
+ }
130
+
131
+ if (processedEvents > 0)
132
+ this.logger.info(`${processedEvents} events processed`);
133
+ }
134
+
135
+ async start(): Promise<void> {
136
+ this.contractAddress = addresses[this.chainId].interopX;
137
+
138
+ this.provider = new ethers.providers.JsonRpcProvider(
139
+ getRpcProviderUrl(this.chainId)
140
+ );
141
+
142
+ this.contract = getContract<InteropX>(
143
+ this.contractAddress,
144
+ abi.interopX,
145
+ new ethers.Wallet(config.privateKey!, this.provider)
146
+ );
147
+
148
+ await super.start();
149
+ }
150
+ }
151
+
152
+ export default SyncLogValidateEvents;
@@ -7,6 +7,9 @@ import AutoUpdateTask from "./AutoUpdateTask";
7
7
 
8
8
  import SyncLogSubmitEvents from "./InteropX/SyncLogSubmitEvents";
9
9
  import ProcessSubmitSubmitEvents from "./InteropX/ProcessSubmitSubmitEvents";
10
+ import SyncLogValidateEvents from "./InteropX/SyncLogValidateEvents";
11
+ import ProcessValidateEvents from "./InteropX/ProcessValidateEvents";
12
+ import SyncLogExecuteEvents from "./InteropX/SyncLogExecuteEvents";
10
13
 
11
14
  export class Tasks {
12
15
 
@@ -21,6 +24,15 @@ export class Tasks {
21
24
  new ProcessSubmitSubmitEvents({ chainId: 137 }),
22
25
  new ProcessSubmitSubmitEvents({ chainId: 43114 }),
23
26
 
27
+ new SyncLogValidateEvents({ chainId: 137 }),
28
+ new SyncLogValidateEvents({ chainId: 43114 }),
29
+
30
+ new ProcessValidateEvents({ chainId: 137 }),
31
+ new ProcessValidateEvents({ chainId: 43114 }),
32
+
33
+ new SyncLogExecuteEvents({ targetChainId: 137 }),
34
+ new SyncLogExecuteEvents({ targetChainId: 43114 }),
35
+
24
36
  new SyncTransactionStatusTask(),
25
37
  ];
26
38
 
@@ -28,7 +40,7 @@ export class Tasks {
28
40
  for (const task of this.tasks) {
29
41
  try {
30
42
  task.start();
31
- await wait(1000)
43
+ await wait(300)
32
44
  } catch (error) {
33
45
  console.error(`Error starting task: ${task.constructor.name}`);
34
46
  }
@@ -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
+ }