@instadapp/interop-x 0.0.0-dev.3e0fb42 → 0.0.0-dev.6d71015

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. package/.env.example +2 -1
  2. package/dist/package.json +72 -0
  3. package/dist/src/abi/erc20.json +350 -0
  4. package/dist/src/abi/gnosisSafe.json +747 -0
  5. package/dist/src/abi/index.js +15 -0
  6. package/dist/src/abi/interopBridgeToken.json +286 -0
  7. package/dist/src/abi/interopXGateway.json +184 -0
  8. package/dist/src/api/index.js +33 -0
  9. package/dist/{config → src/config}/index.js +5 -1
  10. package/dist/src/constants/addresses.js +20 -0
  11. package/dist/{constants → src/constants}/index.js +2 -0
  12. package/dist/src/constants/itokens.js +13 -0
  13. package/dist/src/constants/tokens.js +107 -0
  14. package/dist/{db → src/db}/index.js +0 -0
  15. package/dist/{db → src/db}/models/index.js +1 -1
  16. package/dist/src/db/models/transaction.js +54 -0
  17. package/dist/{db → src/db}/sequelize.js +2 -1
  18. package/dist/src/index.js +68 -0
  19. package/dist/{logger → src/logger}/index.js +0 -0
  20. package/dist/{net → src/net}/index.js +0 -0
  21. package/dist/{net → src/net}/peer/index.js +13 -5
  22. package/dist/{net → src/net}/pool/index.js +18 -11
  23. package/dist/{net → src/net}/protocol/dial/BaseDialProtocol.js +1 -1
  24. package/dist/{net → src/net}/protocol/dial/SignatureDialProtocol.js +22 -14
  25. package/dist/{net → src/net}/protocol/index.js +3 -3
  26. package/dist/{tasks → src/tasks}/BaseTask.js +3 -3
  27. package/dist/src/tasks/InteropXGateway/ProcessDepositEvents.js +147 -0
  28. package/dist/src/tasks/InteropXGateway/SyncDepositEvents.js +75 -0
  29. package/dist/src/tasks/index.js +31 -0
  30. package/dist/src/typechain/Erc20.js +2 -0
  31. package/dist/src/typechain/GnosisSafe.js +2 -0
  32. package/dist/src/typechain/InteropBridgeToken.js +2 -0
  33. package/dist/src/typechain/InteropXGateway.js +2 -0
  34. package/dist/src/typechain/common.js +2 -0
  35. package/dist/src/typechain/factories/Erc20__factory.js +367 -0
  36. package/dist/src/typechain/factories/GnosisSafe__factory.js +1174 -0
  37. package/dist/src/typechain/factories/InteropBridgeToken__factory.js +459 -0
  38. package/dist/src/typechain/factories/InteropXGateway__factory.js +265 -0
  39. package/dist/src/typechain/factories/index.js +14 -0
  40. package/dist/src/typechain/index.js +35 -0
  41. package/dist/{types.js → src/types.js} +0 -0
  42. package/dist/src/utils/index.js +178 -0
  43. package/package.json +19 -6
  44. package/patches/@ethersproject+properties+5.6.0.patch +13 -0
  45. package/src/abi/erc20.json +350 -0
  46. package/src/abi/gnosisSafe.json +747 -0
  47. package/src/abi/index.ts +11 -0
  48. package/src/abi/interopBridgeToken.json +286 -0
  49. package/src/abi/interopXGateway.json +184 -0
  50. package/src/api/index.ts +33 -0
  51. package/src/config/index.ts +7 -1
  52. package/src/constants/addresses.ts +10 -3
  53. package/src/constants/index.ts +2 -0
  54. package/src/constants/itokens.ts +10 -0
  55. package/src/constants/tokens.ts +104 -0
  56. package/src/db/index.ts +1 -1
  57. package/src/db/models/index.ts +1 -1
  58. package/src/db/models/transaction.ts +96 -0
  59. package/src/db/sequelize.ts +2 -1
  60. package/src/index.ts +46 -5
  61. package/src/net/peer/index.ts +15 -8
  62. package/src/net/pool/index.ts +22 -12
  63. package/src/net/protocol/dial/BaseDialProtocol.ts +1 -1
  64. package/src/net/protocol/dial/SignatureDialProtocol.ts +26 -17
  65. package/src/net/protocol/index.ts +4 -4
  66. package/src/tasks/BaseTask.ts +3 -4
  67. package/src/tasks/InteropXGateway/ProcessDepositEvents.ts +241 -0
  68. package/src/tasks/InteropXGateway/SyncDepositEvents.ts +126 -0
  69. package/src/tasks/index.ts +9 -1
  70. package/src/typechain/Erc20.ts +491 -0
  71. package/src/typechain/GnosisSafe.ts +1728 -0
  72. package/src/typechain/InteropBridgeToken.ts +686 -0
  73. package/src/typechain/InteropXGateway.ts +407 -0
  74. package/src/typechain/common.ts +44 -0
  75. package/src/typechain/factories/Erc20__factory.ts +368 -0
  76. package/src/typechain/factories/GnosisSafe__factory.ts +1178 -0
  77. package/src/typechain/factories/InteropBridgeToken__factory.ts +466 -0
  78. package/src/typechain/factories/InteropXGateway__factory.ts +272 -0
  79. package/src/typechain/factories/index.ts +7 -0
  80. package/src/typechain/index.ts +12 -0
  81. package/src/types.ts +2 -2
  82. package/src/utils/index.ts +124 -2
  83. package/tsconfig.json +3 -0
  84. package/dist/constants/addresses.js +0 -13
  85. package/dist/db/models/execution.js +0 -38
  86. package/dist/index.js +0 -34
  87. package/dist/tasks/index.js +0 -19
  88. package/dist/utils/index.js +0 -89
  89. package/src/db/models/execution.ts +0 -57
@@ -0,0 +1,126 @@
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 { generateInteropTransactionHash, getContract, getRpcProviderUrl } from "@/utils";
7
+ import { addresses } from "@/constants";
8
+ import { ChainId } from "@/types";
9
+ import config from "@/config";
10
+ import { InteropXGateway } from "@/typechain";
11
+
12
+ class SyncDepositEvents extends BaseTask {
13
+ contractAddress: string;
14
+ provider: ethers.providers.JsonRpcProvider;
15
+ contract: InteropXGateway;
16
+ chainId: ChainId;
17
+
18
+ constructor({ chainId }: { chainId: ChainId }) {
19
+ super({
20
+ logger: new Logger("InteropXGateway::SyncDepositEvents"),
21
+ })
22
+ this.chainId = chainId;
23
+ }
24
+
25
+ async pollHandler() {
26
+ const currentBlock = await this.provider.getBlockNumber();
27
+
28
+ const events = await this.contract.queryFilter(
29
+ this.contract.filters.LogGatewayDeposit(),
30
+ currentBlock - 2000,
31
+ currentBlock,
32
+ );
33
+
34
+ let processedEvents = 0;
35
+
36
+ for (const event of events) {
37
+
38
+ try {
39
+ if (!event.args) {
40
+ continue;
41
+ }
42
+
43
+ const { sourceChainId, targetChainId, user, vnonce, amount, token } = event.args;
44
+
45
+ const uniqueIdentifier = {
46
+ action: 'deposit',
47
+ submitTransactionHash: event.transactionHash,
48
+ sourceChainId: sourceChainId.toNumber(),
49
+ targetChainId: targetChainId.toNumber(),
50
+ }
51
+
52
+ if (await Transaction.findOne({ where: uniqueIdentifier })) {
53
+ continue;
54
+ }
55
+
56
+ const tx = await event.getTransaction()
57
+
58
+ await Transaction.create({
59
+ ...uniqueIdentifier,
60
+ transactionHash: generateInteropTransactionHash(uniqueIdentifier),
61
+ from: tx.from,
62
+ to: user,
63
+
64
+
65
+ submitTransactionHash: event.transactionHash,
66
+ submitBlockNumber: event.blockNumber,
67
+
68
+ // submit & source are the same
69
+ sourceTransactionHash: event.transactionHash,
70
+ sourceBlockNumber: event.blockNumber,
71
+ sourceStatus: "success",
72
+
73
+ targetStatus: "uninitialised",
74
+
75
+ submitEvent: {
76
+ user,
77
+ sourceChainId: sourceChainId.toString(),
78
+ targetChainId: targetChainId.toString(),
79
+ token: token,
80
+ amount: amount.toString(),
81
+ vnonce: vnonce.toString(),
82
+ },
83
+
84
+ sourceEvent: {
85
+ user,
86
+ sourceChainId: sourceChainId.toString(),
87
+ targetChainId: targetChainId.toString(),
88
+ token: token,
89
+ amount: amount.toString(),
90
+ vnonce: vnonce.toString(),
91
+ },
92
+ status: "pending",
93
+ })
94
+
95
+ this.logger.info(
96
+ `Execution queued: ${event.transactionHash} ${event.blockNumber}`
97
+ );
98
+ } catch (error) {
99
+ this.logger.error(error);
100
+ }
101
+ }
102
+
103
+ if (processedEvents > 0)
104
+ this.logger.info(`${processedEvents} events processed`);
105
+ }
106
+
107
+ async start(): Promise<void> {
108
+ this.logger.info(`Starting execution watcher on interop chain`);
109
+
110
+ this.contractAddress = addresses[this.chainId].interopXGateway;
111
+
112
+ this.provider = new ethers.providers.JsonRpcProvider(
113
+ getRpcProviderUrl(this.chainId)
114
+ );
115
+
116
+ this.contract = getContract<InteropXGateway>(
117
+ this.contractAddress,
118
+ abi.interopXGateway,
119
+ new ethers.Wallet(config.privateKey!, this.provider)
120
+ );
121
+
122
+ await super.start()
123
+ }
124
+ }
125
+
126
+ export default SyncDepositEvents;
@@ -1,9 +1,17 @@
1
1
  import { BaseTask } from "./BaseTask";
2
+ import InteropXGatewayProcessDepositEvents from "./InteropXGateway/ProcessDepositEvents";
3
+ import InteropXGatewaySyncDepositEvents from "./InteropXGateway/SyncDepositEvents";
2
4
 
3
5
  export class Tasks {
4
6
 
5
7
  tasks: BaseTask[] = [
6
-
8
+ new InteropXGatewaySyncDepositEvents({
9
+ chainId: 43114
10
+ }),
11
+
12
+ new InteropXGatewayProcessDepositEvents({
13
+ chainId: 43114
14
+ })
7
15
  ];
8
16
 
9
17
  async start() {
@@ -0,0 +1,491 @@
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 {
17
+ FunctionFragment,
18
+ Result,
19
+ EventFragment,
20
+ } from "@ethersproject/abi";
21
+ import type { Listener, Provider } from "@ethersproject/providers";
22
+ import type {
23
+ TypedEventFilter,
24
+ TypedEvent,
25
+ TypedListener,
26
+ OnEvent,
27
+ } from "./common";
28
+
29
+ export interface Erc20Interface extends utils.Interface {
30
+ functions: {
31
+ "DOMAIN_SEPARATOR()": FunctionFragment;
32
+ "PERMIT_TYPEHASH()": FunctionFragment;
33
+ "allowance(address,address)": FunctionFragment;
34
+ "approve(address,uint256)": FunctionFragment;
35
+ "balanceOf(address)": FunctionFragment;
36
+ "decimals()": FunctionFragment;
37
+ "name()": FunctionFragment;
38
+ "nonces(address)": FunctionFragment;
39
+ "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment;
40
+ "symbol()": FunctionFragment;
41
+ "totalSupply()": FunctionFragment;
42
+ "transfer(address,uint256)": FunctionFragment;
43
+ "transferFrom(address,address,uint256)": FunctionFragment;
44
+ };
45
+
46
+ getFunction(
47
+ nameOrSignatureOrTopic:
48
+ | "DOMAIN_SEPARATOR"
49
+ | "PERMIT_TYPEHASH"
50
+ | "allowance"
51
+ | "approve"
52
+ | "balanceOf"
53
+ | "decimals"
54
+ | "name"
55
+ | "nonces"
56
+ | "permit"
57
+ | "symbol"
58
+ | "totalSupply"
59
+ | "transfer"
60
+ | "transferFrom"
61
+ ): FunctionFragment;
62
+
63
+ encodeFunctionData(
64
+ functionFragment: "DOMAIN_SEPARATOR",
65
+ values?: undefined
66
+ ): string;
67
+ encodeFunctionData(
68
+ functionFragment: "PERMIT_TYPEHASH",
69
+ values?: undefined
70
+ ): string;
71
+ encodeFunctionData(
72
+ functionFragment: "allowance",
73
+ values: [string, string]
74
+ ): string;
75
+ encodeFunctionData(
76
+ functionFragment: "approve",
77
+ values: [string, BigNumberish]
78
+ ): string;
79
+ encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
80
+ encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
81
+ encodeFunctionData(functionFragment: "name", values?: undefined): string;
82
+ encodeFunctionData(functionFragment: "nonces", values: [string]): string;
83
+ encodeFunctionData(
84
+ functionFragment: "permit",
85
+ values: [
86
+ string,
87
+ string,
88
+ BigNumberish,
89
+ BigNumberish,
90
+ BigNumberish,
91
+ BytesLike,
92
+ BytesLike
93
+ ]
94
+ ): string;
95
+ encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
96
+ encodeFunctionData(
97
+ functionFragment: "totalSupply",
98
+ values?: undefined
99
+ ): string;
100
+ encodeFunctionData(
101
+ functionFragment: "transfer",
102
+ values: [string, BigNumberish]
103
+ ): string;
104
+ encodeFunctionData(
105
+ functionFragment: "transferFrom",
106
+ values: [string, string, BigNumberish]
107
+ ): string;
108
+
109
+ decodeFunctionResult(
110
+ functionFragment: "DOMAIN_SEPARATOR",
111
+ data: BytesLike
112
+ ): Result;
113
+ decodeFunctionResult(
114
+ functionFragment: "PERMIT_TYPEHASH",
115
+ data: BytesLike
116
+ ): Result;
117
+ decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
118
+ decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
119
+ decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
120
+ decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
121
+ decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
122
+ decodeFunctionResult(functionFragment: "nonces", data: BytesLike): Result;
123
+ decodeFunctionResult(functionFragment: "permit", data: BytesLike): Result;
124
+ decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
125
+ decodeFunctionResult(
126
+ functionFragment: "totalSupply",
127
+ data: BytesLike
128
+ ): Result;
129
+ decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
130
+ decodeFunctionResult(
131
+ functionFragment: "transferFrom",
132
+ data: BytesLike
133
+ ): Result;
134
+
135
+ events: {
136
+ "Approval(address,address,uint256)": EventFragment;
137
+ "Transfer(address,address,uint256)": EventFragment;
138
+ };
139
+
140
+ getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
141
+ getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
142
+ }
143
+
144
+ export interface ApprovalEventObject {
145
+ owner: string;
146
+ spender: string;
147
+ value: BigNumber;
148
+ }
149
+ export type ApprovalEvent = TypedEvent<
150
+ [string, string, BigNumber],
151
+ ApprovalEventObject
152
+ >;
153
+
154
+ export type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
155
+
156
+ export interface TransferEventObject {
157
+ from: string;
158
+ to: string;
159
+ value: BigNumber;
160
+ }
161
+ export type TransferEvent = TypedEvent<
162
+ [string, string, BigNumber],
163
+ TransferEventObject
164
+ >;
165
+
166
+ export type TransferEventFilter = TypedEventFilter<TransferEvent>;
167
+
168
+ export interface Erc20 extends BaseContract {
169
+ connect(signerOrProvider: Signer | Provider | string): this;
170
+ attach(addressOrName: string): this;
171
+ deployed(): Promise<this>;
172
+
173
+ interface: Erc20Interface;
174
+
175
+ queryFilter<TEvent extends TypedEvent>(
176
+ event: TypedEventFilter<TEvent>,
177
+ fromBlockOrBlockhash?: string | number | undefined,
178
+ toBlock?: string | number | undefined
179
+ ): Promise<Array<TEvent>>;
180
+
181
+ listeners<TEvent extends TypedEvent>(
182
+ eventFilter?: TypedEventFilter<TEvent>
183
+ ): Array<TypedListener<TEvent>>;
184
+ listeners(eventName?: string): Array<Listener>;
185
+ removeAllListeners<TEvent extends TypedEvent>(
186
+ eventFilter: TypedEventFilter<TEvent>
187
+ ): this;
188
+ removeAllListeners(eventName?: string): this;
189
+ off: OnEvent<this>;
190
+ on: OnEvent<this>;
191
+ once: OnEvent<this>;
192
+ removeListener: OnEvent<this>;
193
+
194
+ functions: {
195
+ DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<[string]>;
196
+
197
+ PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<[string]>;
198
+
199
+ allowance(
200
+ arg0: string,
201
+ arg1: string,
202
+ overrides?: CallOverrides
203
+ ): Promise<[BigNumber]>;
204
+
205
+ approve(
206
+ spender: string,
207
+ value: BigNumberish,
208
+ overrides?: Overrides & { from?: string | Promise<string> }
209
+ ): Promise<ContractTransaction>;
210
+
211
+ balanceOf(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
212
+
213
+ decimals(overrides?: CallOverrides): Promise<[number]>;
214
+
215
+ name(overrides?: CallOverrides): Promise<[string]>;
216
+
217
+ nonces(arg0: string, overrides?: CallOverrides): Promise<[BigNumber]>;
218
+
219
+ permit(
220
+ owner: string,
221
+ spender: string,
222
+ value: BigNumberish,
223
+ deadline: BigNumberish,
224
+ v: BigNumberish,
225
+ r: BytesLike,
226
+ s: BytesLike,
227
+ overrides?: Overrides & { from?: string | Promise<string> }
228
+ ): Promise<ContractTransaction>;
229
+
230
+ symbol(overrides?: CallOverrides): Promise<[string]>;
231
+
232
+ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
233
+
234
+ transfer(
235
+ to: string,
236
+ value: BigNumberish,
237
+ overrides?: Overrides & { from?: string | Promise<string> }
238
+ ): Promise<ContractTransaction>;
239
+
240
+ transferFrom(
241
+ from: string,
242
+ to: string,
243
+ value: BigNumberish,
244
+ overrides?: Overrides & { from?: string | Promise<string> }
245
+ ): Promise<ContractTransaction>;
246
+ };
247
+
248
+ DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
249
+
250
+ PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
251
+
252
+ allowance(
253
+ arg0: string,
254
+ arg1: string,
255
+ overrides?: CallOverrides
256
+ ): Promise<BigNumber>;
257
+
258
+ approve(
259
+ spender: string,
260
+ value: BigNumberish,
261
+ overrides?: Overrides & { from?: string | Promise<string> }
262
+ ): Promise<ContractTransaction>;
263
+
264
+ balanceOf(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
265
+
266
+ decimals(overrides?: CallOverrides): Promise<number>;
267
+
268
+ name(overrides?: CallOverrides): Promise<string>;
269
+
270
+ nonces(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
271
+
272
+ permit(
273
+ owner: string,
274
+ spender: string,
275
+ value: BigNumberish,
276
+ deadline: BigNumberish,
277
+ v: BigNumberish,
278
+ r: BytesLike,
279
+ s: BytesLike,
280
+ overrides?: Overrides & { from?: string | Promise<string> }
281
+ ): Promise<ContractTransaction>;
282
+
283
+ symbol(overrides?: CallOverrides): Promise<string>;
284
+
285
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
286
+
287
+ transfer(
288
+ to: string,
289
+ value: BigNumberish,
290
+ overrides?: Overrides & { from?: string | Promise<string> }
291
+ ): Promise<ContractTransaction>;
292
+
293
+ transferFrom(
294
+ from: string,
295
+ to: string,
296
+ value: BigNumberish,
297
+ overrides?: Overrides & { from?: string | Promise<string> }
298
+ ): Promise<ContractTransaction>;
299
+
300
+ callStatic: {
301
+ DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<string>;
302
+
303
+ PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<string>;
304
+
305
+ allowance(
306
+ arg0: string,
307
+ arg1: string,
308
+ overrides?: CallOverrides
309
+ ): Promise<BigNumber>;
310
+
311
+ approve(
312
+ spender: string,
313
+ value: BigNumberish,
314
+ overrides?: CallOverrides
315
+ ): Promise<boolean>;
316
+
317
+ balanceOf(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
318
+
319
+ decimals(overrides?: CallOverrides): Promise<number>;
320
+
321
+ name(overrides?: CallOverrides): Promise<string>;
322
+
323
+ nonces(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
324
+
325
+ permit(
326
+ owner: string,
327
+ spender: string,
328
+ value: BigNumberish,
329
+ deadline: BigNumberish,
330
+ v: BigNumberish,
331
+ r: BytesLike,
332
+ s: BytesLike,
333
+ overrides?: CallOverrides
334
+ ): Promise<void>;
335
+
336
+ symbol(overrides?: CallOverrides): Promise<string>;
337
+
338
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
339
+
340
+ transfer(
341
+ to: string,
342
+ value: BigNumberish,
343
+ overrides?: CallOverrides
344
+ ): Promise<boolean>;
345
+
346
+ transferFrom(
347
+ from: string,
348
+ to: string,
349
+ value: BigNumberish,
350
+ overrides?: CallOverrides
351
+ ): Promise<boolean>;
352
+ };
353
+
354
+ filters: {
355
+ "Approval(address,address,uint256)"(
356
+ owner?: string | null,
357
+ spender?: string | null,
358
+ value?: null
359
+ ): ApprovalEventFilter;
360
+ Approval(
361
+ owner?: string | null,
362
+ spender?: string | null,
363
+ value?: null
364
+ ): ApprovalEventFilter;
365
+
366
+ "Transfer(address,address,uint256)"(
367
+ from?: string | null,
368
+ to?: string | null,
369
+ value?: null
370
+ ): TransferEventFilter;
371
+ Transfer(
372
+ from?: string | null,
373
+ to?: string | null,
374
+ value?: null
375
+ ): TransferEventFilter;
376
+ };
377
+
378
+ estimateGas: {
379
+ DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<BigNumber>;
380
+
381
+ PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<BigNumber>;
382
+
383
+ allowance(
384
+ arg0: string,
385
+ arg1: string,
386
+ overrides?: CallOverrides
387
+ ): Promise<BigNumber>;
388
+
389
+ approve(
390
+ spender: string,
391
+ value: BigNumberish,
392
+ overrides?: Overrides & { from?: string | Promise<string> }
393
+ ): Promise<BigNumber>;
394
+
395
+ balanceOf(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
396
+
397
+ decimals(overrides?: CallOverrides): Promise<BigNumber>;
398
+
399
+ name(overrides?: CallOverrides): Promise<BigNumber>;
400
+
401
+ nonces(arg0: string, overrides?: CallOverrides): Promise<BigNumber>;
402
+
403
+ permit(
404
+ owner: string,
405
+ spender: string,
406
+ value: BigNumberish,
407
+ deadline: BigNumberish,
408
+ v: BigNumberish,
409
+ r: BytesLike,
410
+ s: BytesLike,
411
+ overrides?: Overrides & { from?: string | Promise<string> }
412
+ ): Promise<BigNumber>;
413
+
414
+ symbol(overrides?: CallOverrides): Promise<BigNumber>;
415
+
416
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
417
+
418
+ transfer(
419
+ to: string,
420
+ value: BigNumberish,
421
+ overrides?: Overrides & { from?: string | Promise<string> }
422
+ ): Promise<BigNumber>;
423
+
424
+ transferFrom(
425
+ from: string,
426
+ to: string,
427
+ value: BigNumberish,
428
+ overrides?: Overrides & { from?: string | Promise<string> }
429
+ ): Promise<BigNumber>;
430
+ };
431
+
432
+ populateTransaction: {
433
+ DOMAIN_SEPARATOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
434
+
435
+ PERMIT_TYPEHASH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
436
+
437
+ allowance(
438
+ arg0: string,
439
+ arg1: string,
440
+ overrides?: CallOverrides
441
+ ): Promise<PopulatedTransaction>;
442
+
443
+ approve(
444
+ spender: string,
445
+ value: BigNumberish,
446
+ overrides?: Overrides & { from?: string | Promise<string> }
447
+ ): Promise<PopulatedTransaction>;
448
+
449
+ balanceOf(
450
+ arg0: string,
451
+ overrides?: CallOverrides
452
+ ): Promise<PopulatedTransaction>;
453
+
454
+ decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
455
+
456
+ name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
457
+
458
+ nonces(
459
+ arg0: string,
460
+ overrides?: CallOverrides
461
+ ): Promise<PopulatedTransaction>;
462
+
463
+ permit(
464
+ owner: string,
465
+ spender: string,
466
+ value: BigNumberish,
467
+ deadline: BigNumberish,
468
+ v: BigNumberish,
469
+ r: BytesLike,
470
+ s: BytesLike,
471
+ overrides?: Overrides & { from?: string | Promise<string> }
472
+ ): Promise<PopulatedTransaction>;
473
+
474
+ symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
475
+
476
+ totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
477
+
478
+ transfer(
479
+ to: string,
480
+ value: BigNumberish,
481
+ overrides?: Overrides & { from?: string | Promise<string> }
482
+ ): Promise<PopulatedTransaction>;
483
+
484
+ transferFrom(
485
+ from: string,
486
+ to: string,
487
+ value: BigNumberish,
488
+ overrides?: Overrides & { from?: string | Promise<string> }
489
+ ): Promise<PopulatedTransaction>;
490
+ };
491
+ }