@gitmyabi/usdt 1.0.16 → 1.0.18

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.
@@ -1,867 +0,0 @@
1
- import type { Abi, Address, PublicClient, WalletClient, GetContractReturnType } from 'viem';
2
- import { getContract } from 'viem';
3
-
4
- /**
5
- * UERC20_json ABI
6
- *
7
- * This ABI is typed using viem's type system for full type safety.
8
- */
9
- export const UERC20_jsonAbi = [
10
- {
11
- "inputs": [],
12
- "stateMutability": "nonpayable",
13
- "type": "constructor"
14
- },
15
- {
16
- "inputs": [],
17
- "name": "AllowanceOverflow",
18
- "type": "error"
19
- },
20
- {
21
- "inputs": [],
22
- "name": "AllowanceUnderflow",
23
- "type": "error"
24
- },
25
- {
26
- "inputs": [],
27
- "name": "InsufficientAllowance",
28
- "type": "error"
29
- },
30
- {
31
- "inputs": [],
32
- "name": "InsufficientBalance",
33
- "type": "error"
34
- },
35
- {
36
- "inputs": [],
37
- "name": "InvalidPermit",
38
- "type": "error"
39
- },
40
- {
41
- "inputs": [],
42
- "name": "Permit2AllowanceIsFixedAtInfinity",
43
- "type": "error"
44
- },
45
- {
46
- "inputs": [],
47
- "name": "PermitExpired",
48
- "type": "error"
49
- },
50
- {
51
- "inputs": [],
52
- "name": "TotalSupplyOverflow",
53
- "type": "error"
54
- },
55
- {
56
- "anonymous": false,
57
- "inputs": [
58
- {
59
- "indexed": true,
60
- "internalType": "address",
61
- "name": "owner",
62
- "type": "address"
63
- },
64
- {
65
- "indexed": true,
66
- "internalType": "address",
67
- "name": "spender",
68
- "type": "address"
69
- },
70
- {
71
- "indexed": false,
72
- "internalType": "uint256",
73
- "name": "amount",
74
- "type": "uint256"
75
- }
76
- ],
77
- "name": "Approval",
78
- "type": "event"
79
- },
80
- {
81
- "anonymous": false,
82
- "inputs": [
83
- {
84
- "indexed": true,
85
- "internalType": "address",
86
- "name": "from",
87
- "type": "address"
88
- },
89
- {
90
- "indexed": true,
91
- "internalType": "address",
92
- "name": "to",
93
- "type": "address"
94
- },
95
- {
96
- "indexed": false,
97
- "internalType": "uint256",
98
- "name": "amount",
99
- "type": "uint256"
100
- }
101
- ],
102
- "name": "Transfer",
103
- "type": "event"
104
- },
105
- {
106
- "inputs": [],
107
- "name": "DOMAIN_SEPARATOR",
108
- "outputs": [
109
- {
110
- "internalType": "bytes32",
111
- "name": "result",
112
- "type": "bytes32"
113
- }
114
- ],
115
- "stateMutability": "view",
116
- "type": "function"
117
- },
118
- {
119
- "inputs": [
120
- {
121
- "internalType": "address",
122
- "name": "owner",
123
- "type": "address"
124
- },
125
- {
126
- "internalType": "address",
127
- "name": "spender",
128
- "type": "address"
129
- }
130
- ],
131
- "name": "allowance",
132
- "outputs": [
133
- {
134
- "internalType": "uint256",
135
- "name": "result",
136
- "type": "uint256"
137
- }
138
- ],
139
- "stateMutability": "view",
140
- "type": "function"
141
- },
142
- {
143
- "inputs": [
144
- {
145
- "internalType": "address",
146
- "name": "spender",
147
- "type": "address"
148
- },
149
- {
150
- "internalType": "uint256",
151
- "name": "amount",
152
- "type": "uint256"
153
- }
154
- ],
155
- "name": "approve",
156
- "outputs": [
157
- {
158
- "internalType": "bool",
159
- "name": "",
160
- "type": "bool"
161
- }
162
- ],
163
- "stateMutability": "nonpayable",
164
- "type": "function"
165
- },
166
- {
167
- "inputs": [
168
- {
169
- "internalType": "address",
170
- "name": "owner",
171
- "type": "address"
172
- }
173
- ],
174
- "name": "balanceOf",
175
- "outputs": [
176
- {
177
- "internalType": "uint256",
178
- "name": "result",
179
- "type": "uint256"
180
- }
181
- ],
182
- "stateMutability": "view",
183
- "type": "function"
184
- },
185
- {
186
- "inputs": [],
187
- "name": "creator",
188
- "outputs": [
189
- {
190
- "internalType": "address",
191
- "name": "",
192
- "type": "address"
193
- }
194
- ],
195
- "stateMutability": "view",
196
- "type": "function"
197
- },
198
- {
199
- "inputs": [],
200
- "name": "decimals",
201
- "outputs": [
202
- {
203
- "internalType": "uint8",
204
- "name": "",
205
- "type": "uint8"
206
- }
207
- ],
208
- "stateMutability": "view",
209
- "type": "function"
210
- },
211
- {
212
- "inputs": [],
213
- "name": "graffiti",
214
- "outputs": [
215
- {
216
- "internalType": "bytes32",
217
- "name": "",
218
- "type": "bytes32"
219
- }
220
- ],
221
- "stateMutability": "view",
222
- "type": "function"
223
- },
224
- {
225
- "inputs": [],
226
- "name": "metadata",
227
- "outputs": [
228
- {
229
- "internalType": "string",
230
- "name": "description",
231
- "type": "string"
232
- },
233
- {
234
- "internalType": "string",
235
- "name": "website",
236
- "type": "string"
237
- },
238
- {
239
- "internalType": "string",
240
- "name": "image",
241
- "type": "string"
242
- },
243
- {
244
- "internalType": "bytes",
245
- "name": "extraData",
246
- "type": "bytes"
247
- }
248
- ],
249
- "stateMutability": "view",
250
- "type": "function"
251
- },
252
- {
253
- "inputs": [],
254
- "name": "name",
255
- "outputs": [
256
- {
257
- "internalType": "string",
258
- "name": "",
259
- "type": "string"
260
- }
261
- ],
262
- "stateMutability": "view",
263
- "type": "function"
264
- },
265
- {
266
- "inputs": [
267
- {
268
- "internalType": "address",
269
- "name": "owner",
270
- "type": "address"
271
- }
272
- ],
273
- "name": "nonces",
274
- "outputs": [
275
- {
276
- "internalType": "uint256",
277
- "name": "result",
278
- "type": "uint256"
279
- }
280
- ],
281
- "stateMutability": "view",
282
- "type": "function"
283
- },
284
- {
285
- "inputs": [
286
- {
287
- "internalType": "address",
288
- "name": "owner",
289
- "type": "address"
290
- },
291
- {
292
- "internalType": "address",
293
- "name": "spender",
294
- "type": "address"
295
- },
296
- {
297
- "internalType": "uint256",
298
- "name": "value",
299
- "type": "uint256"
300
- },
301
- {
302
- "internalType": "uint256",
303
- "name": "deadline",
304
- "type": "uint256"
305
- },
306
- {
307
- "internalType": "uint8",
308
- "name": "v",
309
- "type": "uint8"
310
- },
311
- {
312
- "internalType": "bytes32",
313
- "name": "r",
314
- "type": "bytes32"
315
- },
316
- {
317
- "internalType": "bytes32",
318
- "name": "s",
319
- "type": "bytes32"
320
- }
321
- ],
322
- "name": "permit",
323
- "outputs": [],
324
- "stateMutability": "nonpayable",
325
- "type": "function"
326
- },
327
- {
328
- "inputs": [
329
- {
330
- "internalType": "bytes4",
331
- "name": "_interfaceId",
332
- "type": "bytes4"
333
- }
334
- ],
335
- "name": "supportsInterface",
336
- "outputs": [
337
- {
338
- "internalType": "bool",
339
- "name": "",
340
- "type": "bool"
341
- }
342
- ],
343
- "stateMutability": "view",
344
- "type": "function"
345
- },
346
- {
347
- "inputs": [],
348
- "name": "symbol",
349
- "outputs": [
350
- {
351
- "internalType": "string",
352
- "name": "",
353
- "type": "string"
354
- }
355
- ],
356
- "stateMutability": "view",
357
- "type": "function"
358
- },
359
- {
360
- "inputs": [],
361
- "name": "tokenURI",
362
- "outputs": [
363
- {
364
- "internalType": "string",
365
- "name": "",
366
- "type": "string"
367
- }
368
- ],
369
- "stateMutability": "view",
370
- "type": "function"
371
- },
372
- {
373
- "inputs": [],
374
- "name": "totalSupply",
375
- "outputs": [
376
- {
377
- "internalType": "uint256",
378
- "name": "result",
379
- "type": "uint256"
380
- }
381
- ],
382
- "stateMutability": "view",
383
- "type": "function"
384
- },
385
- {
386
- "inputs": [
387
- {
388
- "internalType": "address",
389
- "name": "to",
390
- "type": "address"
391
- },
392
- {
393
- "internalType": "uint256",
394
- "name": "amount",
395
- "type": "uint256"
396
- }
397
- ],
398
- "name": "transfer",
399
- "outputs": [
400
- {
401
- "internalType": "bool",
402
- "name": "",
403
- "type": "bool"
404
- }
405
- ],
406
- "stateMutability": "nonpayable",
407
- "type": "function"
408
- },
409
- {
410
- "inputs": [
411
- {
412
- "internalType": "address",
413
- "name": "from",
414
- "type": "address"
415
- },
416
- {
417
- "internalType": "address",
418
- "name": "to",
419
- "type": "address"
420
- },
421
- {
422
- "internalType": "uint256",
423
- "name": "amount",
424
- "type": "uint256"
425
- }
426
- ],
427
- "name": "transferFrom",
428
- "outputs": [
429
- {
430
- "internalType": "bool",
431
- "name": "",
432
- "type": "bool"
433
- }
434
- ],
435
- "stateMutability": "nonpayable",
436
- "type": "function"
437
- }
438
- ] as const satisfies Abi;
439
-
440
- /**
441
- * Type-safe ABI for UERC20_json
442
- */
443
- export type UERC20_jsonAbi = typeof UERC20_jsonAbi;
444
-
445
- /**
446
- * Contract instance type for UERC20_json
447
- */
448
- // Use any for contract type to avoid complex viem type issues
449
- // The runtime behavior is type-safe through viem's ABI typing
450
- export type UERC20_jsonContract = any;
451
-
452
- /**
453
- * UERC20_json Contract Class
454
- *
455
- * Provides a class-based API similar to TypeChain for interacting with the contract.
456
- *
457
- * @example
458
- * ```typescript
459
- * import { createPublicClient, createWalletClient, http } from 'viem';
460
- * import { mainnet } from 'viem/chains';
461
- * import { UERC20_json } from 'UERC20_json';
462
- *
463
- * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
464
- * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
465
- *
466
- * const contract = new UERC20_json('0x...', { publicClient, walletClient });
467
- *
468
- * // Read functions
469
- * const result = await contract.balanceOf('0x...');
470
- *
471
- * // Write functions
472
- * const hash = await contract.transfer('0x...', 1000n);
473
- *
474
- * // Simulate transactions (dry-run)
475
- * const simulation = await contract.simulate.transfer('0x...', 1000n);
476
- * console.log('Gas estimate:', simulation.request.gas);
477
- *
478
- * // Watch events
479
- * const unwatch = contract.watch.Transfer((event) => {
480
- * console.log('Transfer event:', event);
481
- * });
482
- * ```
483
- */
484
- export class UERC20_json {
485
- private contract: UERC20_jsonContract;
486
- private contractAddress: Address;
487
- private publicClient: PublicClient;
488
-
489
- constructor(
490
- address: Address,
491
- clients: {
492
- publicClient: PublicClient;
493
- walletClient?: WalletClient;
494
- }
495
- ) {
496
- this.contractAddress = address;
497
- this.publicClient = clients.publicClient;
498
- this.contract = getContract({
499
- address,
500
- abi: UERC20_jsonAbi,
501
- client: {
502
- public: clients.publicClient,
503
- wallet: clients.walletClient,
504
- },
505
- });
506
- }
507
-
508
- /**
509
- * Get the contract address
510
- */
511
- get address(): Address {
512
- return this.contractAddress;
513
- }
514
-
515
- /**
516
- * Get the underlying viem contract instance
517
- */
518
- getContract(): UERC20_jsonContract {
519
- return this.contract;
520
- }
521
-
522
- /**
523
- * DOMAIN_SEPARATOR
524
- * view
525
- */
526
- async DOMAIN_SEPARATOR(): Promise<`0x${string}`> {
527
- return this.contract.read.DOMAIN_SEPARATOR() as Promise<`0x${string}`>;
528
- }
529
-
530
- /**
531
- * allowance
532
- * view
533
- */
534
- async allowance(owner: `0x${string}`, spender: `0x${string}`): Promise<bigint> {
535
- return this.contract.read.allowance([owner, spender] as const) as Promise<bigint>;
536
- }
537
-
538
- /**
539
- * balanceOf
540
- * view
541
- */
542
- async balanceOf(owner: `0x${string}`): Promise<bigint> {
543
- return this.contract.read.balanceOf([owner] as const) as Promise<bigint>;
544
- }
545
-
546
- /**
547
- * creator
548
- * view
549
- */
550
- async creator(): Promise<`0x${string}`> {
551
- return this.contract.read.creator() as Promise<`0x${string}`>;
552
- }
553
-
554
- /**
555
- * decimals
556
- * view
557
- */
558
- async decimals(): Promise<bigint> {
559
- return this.contract.read.decimals() as Promise<bigint>;
560
- }
561
-
562
- /**
563
- * graffiti
564
- * view
565
- */
566
- async graffiti(): Promise<`0x${string}`> {
567
- return this.contract.read.graffiti() as Promise<`0x${string}`>;
568
- }
569
-
570
- /**
571
- * metadata
572
- * view
573
- */
574
- async metadata(): Promise<[string, string, string, `0x${string}`]> {
575
- return this.contract.read.metadata() as Promise<[string, string, string, `0x${string}`]>;
576
- }
577
-
578
- /**
579
- * name
580
- * view
581
- */
582
- async name(): Promise<string> {
583
- return this.contract.read.name() as Promise<string>;
584
- }
585
-
586
- /**
587
- * nonces
588
- * view
589
- */
590
- async nonces(owner: `0x${string}`): Promise<bigint> {
591
- return this.contract.read.nonces([owner] as const) as Promise<bigint>;
592
- }
593
-
594
- /**
595
- * supportsInterface
596
- * view
597
- */
598
- async supportsInterface(_interfaceId: `0x${string}`): Promise<boolean> {
599
- return this.contract.read.supportsInterface([_interfaceId] as const) as Promise<boolean>;
600
- }
601
-
602
- /**
603
- * symbol
604
- * view
605
- */
606
- async symbol(): Promise<string> {
607
- return this.contract.read.symbol() as Promise<string>;
608
- }
609
-
610
- /**
611
- * tokenURI
612
- * view
613
- */
614
- async tokenURI(): Promise<string> {
615
- return this.contract.read.tokenURI() as Promise<string>;
616
- }
617
-
618
- /**
619
- * totalSupply
620
- * view
621
- */
622
- async totalSupply(): Promise<bigint> {
623
- return this.contract.read.totalSupply() as Promise<bigint>;
624
- }
625
-
626
- /**
627
- * approve
628
- * nonpayable
629
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
630
- */
631
- async approve(spender: `0x${string}`, amount: bigint, options?: {
632
- accessList?: import('viem').AccessList;
633
- authorizationList?: import('viem').AuthorizationList;
634
- chain?: import('viem').Chain | null;
635
- dataSuffix?: `0x${string}`;
636
- gas?: bigint;
637
- gasPrice?: bigint;
638
- maxFeePerGas?: bigint;
639
- maxPriorityFeePerGas?: bigint;
640
- nonce?: number;
641
- value?: bigint;
642
- }): Promise<`0x${string}`> {
643
- if (!this.contract.write) {
644
- throw new Error('Wallet client is required for write operations');
645
- }
646
- return this.contract.write.approve([spender, amount] as const, options) as Promise<`0x${string}`>;
647
- }
648
-
649
- /**
650
- * permit
651
- * nonpayable
652
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
653
- */
654
- async permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
655
- accessList?: import('viem').AccessList;
656
- authorizationList?: import('viem').AuthorizationList;
657
- chain?: import('viem').Chain | null;
658
- dataSuffix?: `0x${string}`;
659
- gas?: bigint;
660
- gasPrice?: bigint;
661
- maxFeePerGas?: bigint;
662
- maxPriorityFeePerGas?: bigint;
663
- nonce?: number;
664
- value?: bigint;
665
- }): Promise<`0x${string}`> {
666
- if (!this.contract.write) {
667
- throw new Error('Wallet client is required for write operations');
668
- }
669
- return this.contract.write.permit([owner, spender, value, deadline, v, r, s] as const, options) as Promise<`0x${string}`>;
670
- }
671
-
672
- /**
673
- * transfer
674
- * nonpayable
675
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
676
- */
677
- async transfer(to: `0x${string}`, amount: bigint, options?: {
678
- accessList?: import('viem').AccessList;
679
- authorizationList?: import('viem').AuthorizationList;
680
- chain?: import('viem').Chain | null;
681
- dataSuffix?: `0x${string}`;
682
- gas?: bigint;
683
- gasPrice?: bigint;
684
- maxFeePerGas?: bigint;
685
- maxPriorityFeePerGas?: bigint;
686
- nonce?: number;
687
- value?: bigint;
688
- }): Promise<`0x${string}`> {
689
- if (!this.contract.write) {
690
- throw new Error('Wallet client is required for write operations');
691
- }
692
- return this.contract.write.transfer([to, amount] as const, options) as Promise<`0x${string}`>;
693
- }
694
-
695
- /**
696
- * transferFrom
697
- * nonpayable
698
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
699
- */
700
- async transferFrom(from: `0x${string}`, to: `0x${string}`, amount: bigint, options?: {
701
- accessList?: import('viem').AccessList;
702
- authorizationList?: import('viem').AuthorizationList;
703
- chain?: import('viem').Chain | null;
704
- dataSuffix?: `0x${string}`;
705
- gas?: bigint;
706
- gasPrice?: bigint;
707
- maxFeePerGas?: bigint;
708
- maxPriorityFeePerGas?: bigint;
709
- nonce?: number;
710
- value?: bigint;
711
- }): Promise<`0x${string}`> {
712
- if (!this.contract.write) {
713
- throw new Error('Wallet client is required for write operations');
714
- }
715
- return this.contract.write.transferFrom([from, to, amount] as const, options) as Promise<`0x${string}`>;
716
- }
717
-
718
-
719
-
720
- /**
721
- * Simulate contract write operations (dry-run without sending transaction)
722
- *
723
- * @example
724
- * const result = await contract.simulate.transfer('0x...', 1000n);
725
- * console.log('Gas estimate:', result.request.gas);
726
- * console.log('Would succeed:', result.result);
727
- */
728
- get simulate() {
729
- const contract = this.contract;
730
- if (!contract.simulate) {
731
- throw new Error('Public client is required for simulation');
732
- }
733
- return {
734
- /**
735
- * Simulate approve
736
- * Returns gas estimate and result without sending transaction
737
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
738
- */
739
- async approve(spender: `0x${string}`, amount: bigint, options?: {
740
- accessList?: import('viem').AccessList;
741
- authorizationList?: import('viem').AuthorizationList;
742
- chain?: import('viem').Chain | null;
743
- dataSuffix?: `0x${string}`;
744
- gas?: bigint;
745
- gasPrice?: bigint;
746
- maxFeePerGas?: bigint;
747
- maxPriorityFeePerGas?: bigint;
748
- nonce?: number;
749
- value?: bigint;
750
- }): Promise<boolean> {
751
- return contract.simulate.approve([spender, amount] as const, options) as Promise<boolean>;
752
- },
753
- /**
754
- * Simulate permit
755
- * Returns gas estimate and result without sending transaction
756
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
757
- */
758
- async permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
759
- accessList?: import('viem').AccessList;
760
- authorizationList?: import('viem').AuthorizationList;
761
- chain?: import('viem').Chain | null;
762
- dataSuffix?: `0x${string}`;
763
- gas?: bigint;
764
- gasPrice?: bigint;
765
- maxFeePerGas?: bigint;
766
- maxPriorityFeePerGas?: bigint;
767
- nonce?: number;
768
- value?: bigint;
769
- }): Promise<void> {
770
- return contract.simulate.permit([owner, spender, value, deadline, v, r, s] as const, options) as Promise<void>;
771
- },
772
- /**
773
- * Simulate transfer
774
- * Returns gas estimate and result without sending transaction
775
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
776
- */
777
- async transfer(to: `0x${string}`, amount: bigint, options?: {
778
- accessList?: import('viem').AccessList;
779
- authorizationList?: import('viem').AuthorizationList;
780
- chain?: import('viem').Chain | null;
781
- dataSuffix?: `0x${string}`;
782
- gas?: bigint;
783
- gasPrice?: bigint;
784
- maxFeePerGas?: bigint;
785
- maxPriorityFeePerGas?: bigint;
786
- nonce?: number;
787
- value?: bigint;
788
- }): Promise<boolean> {
789
- return contract.simulate.transfer([to, amount] as const, options) as Promise<boolean>;
790
- },
791
- /**
792
- * Simulate transferFrom
793
- * Returns gas estimate and result without sending transaction
794
- * @param options Optional transaction parameters (value, gas, nonce, etc.)
795
- */
796
- async transferFrom(from: `0x${string}`, to: `0x${string}`, amount: bigint, options?: {
797
- accessList?: import('viem').AccessList;
798
- authorizationList?: import('viem').AuthorizationList;
799
- chain?: import('viem').Chain | null;
800
- dataSuffix?: `0x${string}`;
801
- gas?: bigint;
802
- gasPrice?: bigint;
803
- maxFeePerGas?: bigint;
804
- maxPriorityFeePerGas?: bigint;
805
- nonce?: number;
806
- value?: bigint;
807
- }): Promise<boolean> {
808
- return contract.simulate.transferFrom([from, to, amount] as const, options) as Promise<boolean>;
809
- }
810
- };
811
- }
812
-
813
- /**
814
- * Watch contract events
815
- *
816
- * @example
817
- * // Watch all Transfer events
818
- * const unwatch = contract.watch.Transfer((event) => {
819
- * console.log('Transfer:', event);
820
- * });
821
- *
822
- * // Stop watching
823
- * unwatch();
824
- */
825
- get watch() {
826
- return {
827
- /**
828
- * Watch Approval events
829
- * @param callback Function to call when event is emitted
830
- * @param filter Optional filter for indexed parameters
831
- * @returns Unwatch function to stop listening
832
- */
833
- Approval: (callback: (event: { owner: `0x${string}`; spender: `0x${string}`; amount: bigint }) => void, filter?: { owner: `0x${string}`; spender: `0x${string}` }) => {
834
- return this.publicClient.watchContractEvent({
835
- address: this.contractAddress,
836
- abi: UERC20_jsonAbi,
837
- eventName: 'Approval',
838
- args: filter,
839
- onLogs: (logs: any[]) => {
840
- logs.forEach((log: any) => {
841
- callback(log.args as any);
842
- });
843
- },
844
- }) as () => void;
845
- },
846
- /**
847
- * Watch Transfer events
848
- * @param callback Function to call when event is emitted
849
- * @param filter Optional filter for indexed parameters
850
- * @returns Unwatch function to stop listening
851
- */
852
- Transfer: (callback: (event: { from: `0x${string}`; to: `0x${string}`; amount: bigint }) => void, filter?: { from: `0x${string}`; to: `0x${string}` }) => {
853
- return this.publicClient.watchContractEvent({
854
- address: this.contractAddress,
855
- abi: UERC20_jsonAbi,
856
- eventName: 'Transfer',
857
- args: filter,
858
- onLogs: (logs: any[]) => {
859
- logs.forEach((log: any) => {
860
- callback(log.args as any);
861
- });
862
- },
863
- }) as () => void;
864
- }
865
- };
866
- }
867
- }