@gitmyabi-stg/frxusd 0.0.1

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,3193 @@
1
+ import type { Abi, Address, PublicClient, WalletClient, GetContractReturnType } from 'viem';
2
+ import { getContract } from 'viem';
3
+
4
+ /**
5
+ * FrxUSD ABI
6
+ *
7
+ * This ABI is typed using viem's type system for full type safety.
8
+ */
9
+ export const FrxUSDAbi = [
10
+ {
11
+ "inputs": [],
12
+ "stateMutability": "nonpayable",
13
+ "type": "constructor"
14
+ },
15
+ {
16
+ "inputs": [],
17
+ "name": "AlreadyFreezer",
18
+ "type": "error"
19
+ },
20
+ {
21
+ "inputs": [],
22
+ "name": "ArrayMisMatch",
23
+ "type": "error"
24
+ },
25
+ {
26
+ "inputs": [
27
+ {
28
+ "internalType": "address",
29
+ "name": "spender",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "internalType": "uint256",
34
+ "name": "allowance",
35
+ "type": "uint256"
36
+ },
37
+ {
38
+ "internalType": "uint256",
39
+ "name": "needed",
40
+ "type": "uint256"
41
+ }
42
+ ],
43
+ "name": "ERC20InsufficientAllowance",
44
+ "type": "error"
45
+ },
46
+ {
47
+ "inputs": [
48
+ {
49
+ "internalType": "address",
50
+ "name": "sender",
51
+ "type": "address"
52
+ },
53
+ {
54
+ "internalType": "uint256",
55
+ "name": "balance",
56
+ "type": "uint256"
57
+ },
58
+ {
59
+ "internalType": "uint256",
60
+ "name": "needed",
61
+ "type": "uint256"
62
+ }
63
+ ],
64
+ "name": "ERC20InsufficientBalance",
65
+ "type": "error"
66
+ },
67
+ {
68
+ "inputs": [
69
+ {
70
+ "internalType": "address",
71
+ "name": "approver",
72
+ "type": "address"
73
+ }
74
+ ],
75
+ "name": "ERC20InvalidApprover",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [
80
+ {
81
+ "internalType": "address",
82
+ "name": "receiver",
83
+ "type": "address"
84
+ }
85
+ ],
86
+ "name": "ERC20InvalidReceiver",
87
+ "type": "error"
88
+ },
89
+ {
90
+ "inputs": [
91
+ {
92
+ "internalType": "address",
93
+ "name": "sender",
94
+ "type": "address"
95
+ }
96
+ ],
97
+ "name": "ERC20InvalidSender",
98
+ "type": "error"
99
+ },
100
+ {
101
+ "inputs": [
102
+ {
103
+ "internalType": "address",
104
+ "name": "spender",
105
+ "type": "address"
106
+ }
107
+ ],
108
+ "name": "ERC20InvalidSpender",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [
113
+ {
114
+ "internalType": "uint256",
115
+ "name": "deadline",
116
+ "type": "uint256"
117
+ }
118
+ ],
119
+ "name": "ERC2612ExpiredSignature",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "address",
126
+ "name": "signer",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "internalType": "address",
131
+ "name": "owner",
132
+ "type": "address"
133
+ }
134
+ ],
135
+ "name": "ERC2612InvalidSigner",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [],
140
+ "name": "ExpiredAuthorization",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "inputs": [
145
+ {
146
+ "internalType": "address",
147
+ "name": "account",
148
+ "type": "address"
149
+ },
150
+ {
151
+ "internalType": "uint256",
152
+ "name": "currentNonce",
153
+ "type": "uint256"
154
+ }
155
+ ],
156
+ "name": "InvalidAccountNonce",
157
+ "type": "error"
158
+ },
159
+ {
160
+ "inputs": [],
161
+ "name": "InvalidAuthorization",
162
+ "type": "error"
163
+ },
164
+ {
165
+ "inputs": [
166
+ {
167
+ "internalType": "address",
168
+ "name": "caller",
169
+ "type": "address"
170
+ },
171
+ {
172
+ "internalType": "address",
173
+ "name": "payee",
174
+ "type": "address"
175
+ }
176
+ ],
177
+ "name": "InvalidPayee",
178
+ "type": "error"
179
+ },
180
+ {
181
+ "inputs": [],
182
+ "name": "InvalidShortString",
183
+ "type": "error"
184
+ },
185
+ {
186
+ "inputs": [],
187
+ "name": "InvalidSignature",
188
+ "type": "error"
189
+ },
190
+ {
191
+ "inputs": [],
192
+ "name": "IsFrozen",
193
+ "type": "error"
194
+ },
195
+ {
196
+ "inputs": [],
197
+ "name": "IsPaused",
198
+ "type": "error"
199
+ },
200
+ {
201
+ "inputs": [],
202
+ "name": "NotFreezer",
203
+ "type": "error"
204
+ },
205
+ {
206
+ "inputs": [
207
+ {
208
+ "internalType": "address",
209
+ "name": "owner",
210
+ "type": "address"
211
+ }
212
+ ],
213
+ "name": "OwnableInvalidOwner",
214
+ "type": "error"
215
+ },
216
+ {
217
+ "inputs": [
218
+ {
219
+ "internalType": "address",
220
+ "name": "account",
221
+ "type": "address"
222
+ }
223
+ ],
224
+ "name": "OwnableUnauthorizedAccount",
225
+ "type": "error"
226
+ },
227
+ {
228
+ "inputs": [],
229
+ "name": "OwnerCannotInitToZeroAddress",
230
+ "type": "error"
231
+ },
232
+ {
233
+ "inputs": [
234
+ {
235
+ "internalType": "string",
236
+ "name": "str",
237
+ "type": "string"
238
+ }
239
+ ],
240
+ "name": "StringTooLong",
241
+ "type": "error"
242
+ },
243
+ {
244
+ "inputs": [],
245
+ "name": "UsedOrCanceledAuthorization",
246
+ "type": "error"
247
+ },
248
+ {
249
+ "anonymous": false,
250
+ "inputs": [
251
+ {
252
+ "indexed": false,
253
+ "internalType": "address",
254
+ "name": "account",
255
+ "type": "address"
256
+ }
257
+ ],
258
+ "name": "AccountFrozen",
259
+ "type": "event"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": false,
266
+ "internalType": "address",
267
+ "name": "account",
268
+ "type": "address"
269
+ }
270
+ ],
271
+ "name": "AccountThawed",
272
+ "type": "event"
273
+ },
274
+ {
275
+ "anonymous": false,
276
+ "inputs": [
277
+ {
278
+ "indexed": false,
279
+ "internalType": "address",
280
+ "name": "account",
281
+ "type": "address"
282
+ }
283
+ ],
284
+ "name": "AddFreezer",
285
+ "type": "event"
286
+ },
287
+ {
288
+ "anonymous": false,
289
+ "inputs": [
290
+ {
291
+ "indexed": true,
292
+ "internalType": "address",
293
+ "name": "owner",
294
+ "type": "address"
295
+ },
296
+ {
297
+ "indexed": true,
298
+ "internalType": "address",
299
+ "name": "spender",
300
+ "type": "address"
301
+ },
302
+ {
303
+ "indexed": false,
304
+ "internalType": "uint256",
305
+ "name": "value",
306
+ "type": "uint256"
307
+ }
308
+ ],
309
+ "name": "Approval",
310
+ "type": "event"
311
+ },
312
+ {
313
+ "anonymous": false,
314
+ "inputs": [
315
+ {
316
+ "indexed": true,
317
+ "internalType": "address",
318
+ "name": "authorizer",
319
+ "type": "address"
320
+ },
321
+ {
322
+ "indexed": true,
323
+ "internalType": "bytes32",
324
+ "name": "nonce",
325
+ "type": "bytes32"
326
+ }
327
+ ],
328
+ "name": "AuthorizationCanceled",
329
+ "type": "event"
330
+ },
331
+ {
332
+ "anonymous": false,
333
+ "inputs": [
334
+ {
335
+ "indexed": true,
336
+ "internalType": "address",
337
+ "name": "authorizer",
338
+ "type": "address"
339
+ },
340
+ {
341
+ "indexed": true,
342
+ "internalType": "bytes32",
343
+ "name": "nonce",
344
+ "type": "bytes32"
345
+ }
346
+ ],
347
+ "name": "AuthorizationUsed",
348
+ "type": "event"
349
+ },
350
+ {
351
+ "anonymous": false,
352
+ "inputs": [
353
+ {
354
+ "indexed": true,
355
+ "internalType": "address",
356
+ "name": "account",
357
+ "type": "address"
358
+ },
359
+ {
360
+ "indexed": false,
361
+ "internalType": "uint256",
362
+ "name": "amount",
363
+ "type": "uint256"
364
+ }
365
+ ],
366
+ "name": "Burn",
367
+ "type": "event"
368
+ },
369
+ {
370
+ "anonymous": false,
371
+ "inputs": [],
372
+ "name": "EIP712DomainChanged",
373
+ "type": "event"
374
+ },
375
+ {
376
+ "anonymous": false,
377
+ "inputs": [
378
+ {
379
+ "indexed": true,
380
+ "internalType": "address",
381
+ "name": "account",
382
+ "type": "address"
383
+ },
384
+ {
385
+ "indexed": false,
386
+ "internalType": "uint256",
387
+ "name": "amount",
388
+ "type": "uint256"
389
+ }
390
+ ],
391
+ "name": "Mint",
392
+ "type": "event"
393
+ },
394
+ {
395
+ "anonymous": false,
396
+ "inputs": [
397
+ {
398
+ "indexed": false,
399
+ "internalType": "address",
400
+ "name": "minter_address",
401
+ "type": "address"
402
+ }
403
+ ],
404
+ "name": "MinterAdded",
405
+ "type": "event"
406
+ },
407
+ {
408
+ "anonymous": false,
409
+ "inputs": [
410
+ {
411
+ "indexed": false,
412
+ "internalType": "address",
413
+ "name": "minter_address",
414
+ "type": "address"
415
+ }
416
+ ],
417
+ "name": "MinterRemoved",
418
+ "type": "event"
419
+ },
420
+ {
421
+ "anonymous": false,
422
+ "inputs": [
423
+ {
424
+ "indexed": true,
425
+ "internalType": "address",
426
+ "name": "previousOwner",
427
+ "type": "address"
428
+ },
429
+ {
430
+ "indexed": true,
431
+ "internalType": "address",
432
+ "name": "newOwner",
433
+ "type": "address"
434
+ }
435
+ ],
436
+ "name": "OwnershipTransferStarted",
437
+ "type": "event"
438
+ },
439
+ {
440
+ "anonymous": false,
441
+ "inputs": [
442
+ {
443
+ "indexed": true,
444
+ "internalType": "address",
445
+ "name": "previousOwner",
446
+ "type": "address"
447
+ },
448
+ {
449
+ "indexed": true,
450
+ "internalType": "address",
451
+ "name": "newOwner",
452
+ "type": "address"
453
+ }
454
+ ],
455
+ "name": "OwnershipTransferred",
456
+ "type": "event"
457
+ },
458
+ {
459
+ "anonymous": false,
460
+ "inputs": [],
461
+ "name": "Paused",
462
+ "type": "event"
463
+ },
464
+ {
465
+ "anonymous": false,
466
+ "inputs": [
467
+ {
468
+ "indexed": false,
469
+ "internalType": "address",
470
+ "name": "account",
471
+ "type": "address"
472
+ }
473
+ ],
474
+ "name": "RemoveFreezer",
475
+ "type": "event"
476
+ },
477
+ {
478
+ "anonymous": false,
479
+ "inputs": [
480
+ {
481
+ "indexed": true,
482
+ "internalType": "address",
483
+ "name": "from",
484
+ "type": "address"
485
+ },
486
+ {
487
+ "indexed": true,
488
+ "internalType": "address",
489
+ "name": "to",
490
+ "type": "address"
491
+ },
492
+ {
493
+ "indexed": false,
494
+ "internalType": "uint256",
495
+ "name": "amount",
496
+ "type": "uint256"
497
+ }
498
+ ],
499
+ "name": "TokenMinterBurned",
500
+ "type": "event"
501
+ },
502
+ {
503
+ "anonymous": false,
504
+ "inputs": [
505
+ {
506
+ "indexed": true,
507
+ "internalType": "address",
508
+ "name": "from",
509
+ "type": "address"
510
+ },
511
+ {
512
+ "indexed": true,
513
+ "internalType": "address",
514
+ "name": "to",
515
+ "type": "address"
516
+ },
517
+ {
518
+ "indexed": false,
519
+ "internalType": "uint256",
520
+ "name": "amount",
521
+ "type": "uint256"
522
+ }
523
+ ],
524
+ "name": "TokenMinterMinted",
525
+ "type": "event"
526
+ },
527
+ {
528
+ "anonymous": false,
529
+ "inputs": [
530
+ {
531
+ "indexed": true,
532
+ "internalType": "address",
533
+ "name": "from",
534
+ "type": "address"
535
+ },
536
+ {
537
+ "indexed": true,
538
+ "internalType": "address",
539
+ "name": "to",
540
+ "type": "address"
541
+ },
542
+ {
543
+ "indexed": false,
544
+ "internalType": "uint256",
545
+ "name": "value",
546
+ "type": "uint256"
547
+ }
548
+ ],
549
+ "name": "Transfer",
550
+ "type": "event"
551
+ },
552
+ {
553
+ "anonymous": false,
554
+ "inputs": [],
555
+ "name": "Unpaused",
556
+ "type": "event"
557
+ },
558
+ {
559
+ "inputs": [],
560
+ "name": "DOMAIN_SEPARATOR",
561
+ "outputs": [
562
+ {
563
+ "internalType": "bytes32",
564
+ "name": "",
565
+ "type": "bytes32"
566
+ }
567
+ ],
568
+ "stateMutability": "view",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [],
573
+ "name": "acceptOwnership",
574
+ "outputs": [],
575
+ "stateMutability": "nonpayable",
576
+ "type": "function"
577
+ },
578
+ {
579
+ "inputs": [
580
+ {
581
+ "internalType": "address",
582
+ "name": "_freezer",
583
+ "type": "address"
584
+ }
585
+ ],
586
+ "name": "addFreezer",
587
+ "outputs": [],
588
+ "stateMutability": "nonpayable",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "inputs": [
593
+ {
594
+ "internalType": "address",
595
+ "name": "minter_address",
596
+ "type": "address"
597
+ }
598
+ ],
599
+ "name": "addMinter",
600
+ "outputs": [],
601
+ "stateMutability": "nonpayable",
602
+ "type": "function"
603
+ },
604
+ {
605
+ "inputs": [
606
+ {
607
+ "internalType": "address",
608
+ "name": "owner",
609
+ "type": "address"
610
+ },
611
+ {
612
+ "internalType": "address",
613
+ "name": "spender",
614
+ "type": "address"
615
+ }
616
+ ],
617
+ "name": "allowance",
618
+ "outputs": [
619
+ {
620
+ "internalType": "uint256",
621
+ "name": "",
622
+ "type": "uint256"
623
+ }
624
+ ],
625
+ "stateMutability": "view",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "internalType": "address",
632
+ "name": "spender",
633
+ "type": "address"
634
+ },
635
+ {
636
+ "internalType": "uint256",
637
+ "name": "value",
638
+ "type": "uint256"
639
+ }
640
+ ],
641
+ "name": "approve",
642
+ "outputs": [
643
+ {
644
+ "internalType": "bool",
645
+ "name": "",
646
+ "type": "bool"
647
+ }
648
+ ],
649
+ "stateMutability": "nonpayable",
650
+ "type": "function"
651
+ },
652
+ {
653
+ "inputs": [
654
+ {
655
+ "internalType": "address",
656
+ "name": "authorizer",
657
+ "type": "address"
658
+ },
659
+ {
660
+ "internalType": "bytes32",
661
+ "name": "nonce",
662
+ "type": "bytes32"
663
+ }
664
+ ],
665
+ "name": "authorizationState",
666
+ "outputs": [
667
+ {
668
+ "internalType": "bool",
669
+ "name": "",
670
+ "type": "bool"
671
+ }
672
+ ],
673
+ "stateMutability": "view",
674
+ "type": "function"
675
+ },
676
+ {
677
+ "inputs": [
678
+ {
679
+ "internalType": "address",
680
+ "name": "account",
681
+ "type": "address"
682
+ }
683
+ ],
684
+ "name": "balanceOf",
685
+ "outputs": [
686
+ {
687
+ "internalType": "uint256",
688
+ "name": "",
689
+ "type": "uint256"
690
+ }
691
+ ],
692
+ "stateMutability": "view",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "value",
700
+ "type": "uint256"
701
+ }
702
+ ],
703
+ "name": "burn",
704
+ "outputs": [],
705
+ "stateMutability": "nonpayable",
706
+ "type": "function"
707
+ },
708
+ {
709
+ "inputs": [
710
+ {
711
+ "internalType": "address",
712
+ "name": "_owner",
713
+ "type": "address"
714
+ },
715
+ {
716
+ "internalType": "uint256",
717
+ "name": "_amount",
718
+ "type": "uint256"
719
+ }
720
+ ],
721
+ "name": "burn",
722
+ "outputs": [],
723
+ "stateMutability": "nonpayable",
724
+ "type": "function"
725
+ },
726
+ {
727
+ "inputs": [
728
+ {
729
+ "internalType": "address",
730
+ "name": "account",
731
+ "type": "address"
732
+ },
733
+ {
734
+ "internalType": "uint256",
735
+ "name": "value",
736
+ "type": "uint256"
737
+ }
738
+ ],
739
+ "name": "burnFrom",
740
+ "outputs": [],
741
+ "stateMutability": "nonpayable",
742
+ "type": "function"
743
+ },
744
+ {
745
+ "inputs": [
746
+ {
747
+ "internalType": "address[]",
748
+ "name": "_owners",
749
+ "type": "address[]"
750
+ },
751
+ {
752
+ "internalType": "uint256[]",
753
+ "name": "_amounts",
754
+ "type": "uint256[]"
755
+ }
756
+ ],
757
+ "name": "burnMany",
758
+ "outputs": [],
759
+ "stateMutability": "nonpayable",
760
+ "type": "function"
761
+ },
762
+ {
763
+ "inputs": [
764
+ {
765
+ "internalType": "address",
766
+ "name": "authorizer",
767
+ "type": "address"
768
+ },
769
+ {
770
+ "internalType": "bytes32",
771
+ "name": "nonce",
772
+ "type": "bytes32"
773
+ },
774
+ {
775
+ "internalType": "uint8",
776
+ "name": "v",
777
+ "type": "uint8"
778
+ },
779
+ {
780
+ "internalType": "bytes32",
781
+ "name": "r",
782
+ "type": "bytes32"
783
+ },
784
+ {
785
+ "internalType": "bytes32",
786
+ "name": "s",
787
+ "type": "bytes32"
788
+ }
789
+ ],
790
+ "name": "cancelAuthorization",
791
+ "outputs": [],
792
+ "stateMutability": "nonpayable",
793
+ "type": "function"
794
+ },
795
+ {
796
+ "inputs": [
797
+ {
798
+ "internalType": "address",
799
+ "name": "authorizer",
800
+ "type": "address"
801
+ },
802
+ {
803
+ "internalType": "bytes32",
804
+ "name": "nonce",
805
+ "type": "bytes32"
806
+ },
807
+ {
808
+ "internalType": "bytes",
809
+ "name": "signature",
810
+ "type": "bytes"
811
+ }
812
+ ],
813
+ "name": "cancelAuthorization",
814
+ "outputs": [],
815
+ "stateMutability": "nonpayable",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [],
820
+ "name": "decimals",
821
+ "outputs": [
822
+ {
823
+ "internalType": "uint8",
824
+ "name": "",
825
+ "type": "uint8"
826
+ }
827
+ ],
828
+ "stateMutability": "view",
829
+ "type": "function"
830
+ },
831
+ {
832
+ "inputs": [],
833
+ "name": "eip712Domain",
834
+ "outputs": [
835
+ {
836
+ "internalType": "bytes1",
837
+ "name": "fields",
838
+ "type": "bytes1"
839
+ },
840
+ {
841
+ "internalType": "string",
842
+ "name": "name",
843
+ "type": "string"
844
+ },
845
+ {
846
+ "internalType": "string",
847
+ "name": "version",
848
+ "type": "string"
849
+ },
850
+ {
851
+ "internalType": "uint256",
852
+ "name": "chainId",
853
+ "type": "uint256"
854
+ },
855
+ {
856
+ "internalType": "address",
857
+ "name": "verifyingContract",
858
+ "type": "address"
859
+ },
860
+ {
861
+ "internalType": "bytes32",
862
+ "name": "salt",
863
+ "type": "bytes32"
864
+ },
865
+ {
866
+ "internalType": "uint256[]",
867
+ "name": "extensions",
868
+ "type": "uint256[]"
869
+ }
870
+ ],
871
+ "stateMutability": "view",
872
+ "type": "function"
873
+ },
874
+ {
875
+ "inputs": [
876
+ {
877
+ "internalType": "address",
878
+ "name": "_owner",
879
+ "type": "address"
880
+ }
881
+ ],
882
+ "name": "freeze",
883
+ "outputs": [],
884
+ "stateMutability": "nonpayable",
885
+ "type": "function"
886
+ },
887
+ {
888
+ "inputs": [
889
+ {
890
+ "internalType": "address[]",
891
+ "name": "_owners",
892
+ "type": "address[]"
893
+ }
894
+ ],
895
+ "name": "freezeMany",
896
+ "outputs": [],
897
+ "stateMutability": "nonpayable",
898
+ "type": "function"
899
+ },
900
+ {
901
+ "inputs": [
902
+ {
903
+ "internalType": "address",
904
+ "name": "",
905
+ "type": "address"
906
+ }
907
+ ],
908
+ "name": "isFreezer",
909
+ "outputs": [
910
+ {
911
+ "internalType": "bool",
912
+ "name": "",
913
+ "type": "bool"
914
+ }
915
+ ],
916
+ "stateMutability": "view",
917
+ "type": "function"
918
+ },
919
+ {
920
+ "inputs": [
921
+ {
922
+ "internalType": "address",
923
+ "name": "",
924
+ "type": "address"
925
+ }
926
+ ],
927
+ "name": "isFrozen",
928
+ "outputs": [
929
+ {
930
+ "internalType": "bool",
931
+ "name": "",
932
+ "type": "bool"
933
+ }
934
+ ],
935
+ "stateMutability": "view",
936
+ "type": "function"
937
+ },
938
+ {
939
+ "inputs": [],
940
+ "name": "isPaused",
941
+ "outputs": [
942
+ {
943
+ "internalType": "bool",
944
+ "name": "",
945
+ "type": "bool"
946
+ }
947
+ ],
948
+ "stateMutability": "view",
949
+ "type": "function"
950
+ },
951
+ {
952
+ "inputs": [
953
+ {
954
+ "internalType": "address",
955
+ "name": "b_address",
956
+ "type": "address"
957
+ },
958
+ {
959
+ "internalType": "uint256",
960
+ "name": "b_amount",
961
+ "type": "uint256"
962
+ }
963
+ ],
964
+ "name": "minter_burn_from",
965
+ "outputs": [],
966
+ "stateMutability": "nonpayable",
967
+ "type": "function"
968
+ },
969
+ {
970
+ "inputs": [
971
+ {
972
+ "internalType": "address",
973
+ "name": "m_address",
974
+ "type": "address"
975
+ },
976
+ {
977
+ "internalType": "uint256",
978
+ "name": "m_amount",
979
+ "type": "uint256"
980
+ }
981
+ ],
982
+ "name": "minter_mint",
983
+ "outputs": [],
984
+ "stateMutability": "nonpayable",
985
+ "type": "function"
986
+ },
987
+ {
988
+ "inputs": [
989
+ {
990
+ "internalType": "address",
991
+ "name": "",
992
+ "type": "address"
993
+ }
994
+ ],
995
+ "name": "minters",
996
+ "outputs": [
997
+ {
998
+ "internalType": "bool",
999
+ "name": "",
1000
+ "type": "bool"
1001
+ }
1002
+ ],
1003
+ "stateMutability": "view",
1004
+ "type": "function"
1005
+ },
1006
+ {
1007
+ "inputs": [
1008
+ {
1009
+ "internalType": "uint256",
1010
+ "name": "",
1011
+ "type": "uint256"
1012
+ }
1013
+ ],
1014
+ "name": "minters_array",
1015
+ "outputs": [
1016
+ {
1017
+ "internalType": "address",
1018
+ "name": "",
1019
+ "type": "address"
1020
+ }
1021
+ ],
1022
+ "stateMutability": "view",
1023
+ "type": "function"
1024
+ },
1025
+ {
1026
+ "inputs": [],
1027
+ "name": "name",
1028
+ "outputs": [
1029
+ {
1030
+ "internalType": "string",
1031
+ "name": "",
1032
+ "type": "string"
1033
+ }
1034
+ ],
1035
+ "stateMutability": "view",
1036
+ "type": "function"
1037
+ },
1038
+ {
1039
+ "inputs": [
1040
+ {
1041
+ "internalType": "address",
1042
+ "name": "owner",
1043
+ "type": "address"
1044
+ }
1045
+ ],
1046
+ "name": "nonces",
1047
+ "outputs": [
1048
+ {
1049
+ "internalType": "uint256",
1050
+ "name": "",
1051
+ "type": "uint256"
1052
+ }
1053
+ ],
1054
+ "stateMutability": "view",
1055
+ "type": "function"
1056
+ },
1057
+ {
1058
+ "inputs": [],
1059
+ "name": "owner",
1060
+ "outputs": [
1061
+ {
1062
+ "internalType": "address",
1063
+ "name": "",
1064
+ "type": "address"
1065
+ }
1066
+ ],
1067
+ "stateMutability": "view",
1068
+ "type": "function"
1069
+ },
1070
+ {
1071
+ "inputs": [],
1072
+ "name": "pause",
1073
+ "outputs": [],
1074
+ "stateMutability": "nonpayable",
1075
+ "type": "function"
1076
+ },
1077
+ {
1078
+ "inputs": [],
1079
+ "name": "pendingOwner",
1080
+ "outputs": [
1081
+ {
1082
+ "internalType": "address",
1083
+ "name": "",
1084
+ "type": "address"
1085
+ }
1086
+ ],
1087
+ "stateMutability": "view",
1088
+ "type": "function"
1089
+ },
1090
+ {
1091
+ "inputs": [
1092
+ {
1093
+ "internalType": "address",
1094
+ "name": "owner",
1095
+ "type": "address"
1096
+ },
1097
+ {
1098
+ "internalType": "address",
1099
+ "name": "spender",
1100
+ "type": "address"
1101
+ },
1102
+ {
1103
+ "internalType": "uint256",
1104
+ "name": "value",
1105
+ "type": "uint256"
1106
+ },
1107
+ {
1108
+ "internalType": "uint256",
1109
+ "name": "deadline",
1110
+ "type": "uint256"
1111
+ },
1112
+ {
1113
+ "internalType": "bytes",
1114
+ "name": "signature",
1115
+ "type": "bytes"
1116
+ }
1117
+ ],
1118
+ "name": "permit",
1119
+ "outputs": [],
1120
+ "stateMutability": "nonpayable",
1121
+ "type": "function"
1122
+ },
1123
+ {
1124
+ "inputs": [
1125
+ {
1126
+ "internalType": "address",
1127
+ "name": "owner",
1128
+ "type": "address"
1129
+ },
1130
+ {
1131
+ "internalType": "address",
1132
+ "name": "spender",
1133
+ "type": "address"
1134
+ },
1135
+ {
1136
+ "internalType": "uint256",
1137
+ "name": "value",
1138
+ "type": "uint256"
1139
+ },
1140
+ {
1141
+ "internalType": "uint256",
1142
+ "name": "deadline",
1143
+ "type": "uint256"
1144
+ },
1145
+ {
1146
+ "internalType": "uint8",
1147
+ "name": "v",
1148
+ "type": "uint8"
1149
+ },
1150
+ {
1151
+ "internalType": "bytes32",
1152
+ "name": "r",
1153
+ "type": "bytes32"
1154
+ },
1155
+ {
1156
+ "internalType": "bytes32",
1157
+ "name": "s",
1158
+ "type": "bytes32"
1159
+ }
1160
+ ],
1161
+ "name": "permit",
1162
+ "outputs": [],
1163
+ "stateMutability": "nonpayable",
1164
+ "type": "function"
1165
+ },
1166
+ {
1167
+ "inputs": [
1168
+ {
1169
+ "internalType": "address",
1170
+ "name": "from",
1171
+ "type": "address"
1172
+ },
1173
+ {
1174
+ "internalType": "address",
1175
+ "name": "to",
1176
+ "type": "address"
1177
+ },
1178
+ {
1179
+ "internalType": "uint256",
1180
+ "name": "value",
1181
+ "type": "uint256"
1182
+ },
1183
+ {
1184
+ "internalType": "uint256",
1185
+ "name": "validAfter",
1186
+ "type": "uint256"
1187
+ },
1188
+ {
1189
+ "internalType": "uint256",
1190
+ "name": "validBefore",
1191
+ "type": "uint256"
1192
+ },
1193
+ {
1194
+ "internalType": "bytes32",
1195
+ "name": "nonce",
1196
+ "type": "bytes32"
1197
+ },
1198
+ {
1199
+ "internalType": "bytes",
1200
+ "name": "signature",
1201
+ "type": "bytes"
1202
+ }
1203
+ ],
1204
+ "name": "receiveWithAuthorization",
1205
+ "outputs": [],
1206
+ "stateMutability": "nonpayable",
1207
+ "type": "function"
1208
+ },
1209
+ {
1210
+ "inputs": [
1211
+ {
1212
+ "internalType": "address",
1213
+ "name": "from",
1214
+ "type": "address"
1215
+ },
1216
+ {
1217
+ "internalType": "address",
1218
+ "name": "to",
1219
+ "type": "address"
1220
+ },
1221
+ {
1222
+ "internalType": "uint256",
1223
+ "name": "value",
1224
+ "type": "uint256"
1225
+ },
1226
+ {
1227
+ "internalType": "uint256",
1228
+ "name": "validAfter",
1229
+ "type": "uint256"
1230
+ },
1231
+ {
1232
+ "internalType": "uint256",
1233
+ "name": "validBefore",
1234
+ "type": "uint256"
1235
+ },
1236
+ {
1237
+ "internalType": "bytes32",
1238
+ "name": "nonce",
1239
+ "type": "bytes32"
1240
+ },
1241
+ {
1242
+ "internalType": "uint8",
1243
+ "name": "v",
1244
+ "type": "uint8"
1245
+ },
1246
+ {
1247
+ "internalType": "bytes32",
1248
+ "name": "r",
1249
+ "type": "bytes32"
1250
+ },
1251
+ {
1252
+ "internalType": "bytes32",
1253
+ "name": "s",
1254
+ "type": "bytes32"
1255
+ }
1256
+ ],
1257
+ "name": "receiveWithAuthorization",
1258
+ "outputs": [],
1259
+ "stateMutability": "nonpayable",
1260
+ "type": "function"
1261
+ },
1262
+ {
1263
+ "inputs": [
1264
+ {
1265
+ "internalType": "address",
1266
+ "name": "_freezer",
1267
+ "type": "address"
1268
+ }
1269
+ ],
1270
+ "name": "removeFreezer",
1271
+ "outputs": [],
1272
+ "stateMutability": "nonpayable",
1273
+ "type": "function"
1274
+ },
1275
+ {
1276
+ "inputs": [
1277
+ {
1278
+ "internalType": "address",
1279
+ "name": "minter_address",
1280
+ "type": "address"
1281
+ }
1282
+ ],
1283
+ "name": "removeMinter",
1284
+ "outputs": [],
1285
+ "stateMutability": "nonpayable",
1286
+ "type": "function"
1287
+ },
1288
+ {
1289
+ "inputs": [],
1290
+ "name": "renounceOwnership",
1291
+ "outputs": [],
1292
+ "stateMutability": "nonpayable",
1293
+ "type": "function"
1294
+ },
1295
+ {
1296
+ "inputs": [],
1297
+ "name": "symbol",
1298
+ "outputs": [
1299
+ {
1300
+ "internalType": "string",
1301
+ "name": "",
1302
+ "type": "string"
1303
+ }
1304
+ ],
1305
+ "stateMutability": "view",
1306
+ "type": "function"
1307
+ },
1308
+ {
1309
+ "inputs": [
1310
+ {
1311
+ "internalType": "address",
1312
+ "name": "_owner",
1313
+ "type": "address"
1314
+ }
1315
+ ],
1316
+ "name": "thaw",
1317
+ "outputs": [],
1318
+ "stateMutability": "nonpayable",
1319
+ "type": "function"
1320
+ },
1321
+ {
1322
+ "inputs": [
1323
+ {
1324
+ "internalType": "address[]",
1325
+ "name": "_owners",
1326
+ "type": "address[]"
1327
+ }
1328
+ ],
1329
+ "name": "thawMany",
1330
+ "outputs": [],
1331
+ "stateMutability": "nonpayable",
1332
+ "type": "function"
1333
+ },
1334
+ {
1335
+ "inputs": [],
1336
+ "name": "totalSupply",
1337
+ "outputs": [
1338
+ {
1339
+ "internalType": "uint256",
1340
+ "name": "",
1341
+ "type": "uint256"
1342
+ }
1343
+ ],
1344
+ "stateMutability": "view",
1345
+ "type": "function"
1346
+ },
1347
+ {
1348
+ "inputs": [
1349
+ {
1350
+ "internalType": "address",
1351
+ "name": "to",
1352
+ "type": "address"
1353
+ },
1354
+ {
1355
+ "internalType": "uint256",
1356
+ "name": "value",
1357
+ "type": "uint256"
1358
+ }
1359
+ ],
1360
+ "name": "transfer",
1361
+ "outputs": [
1362
+ {
1363
+ "internalType": "bool",
1364
+ "name": "",
1365
+ "type": "bool"
1366
+ }
1367
+ ],
1368
+ "stateMutability": "nonpayable",
1369
+ "type": "function"
1370
+ },
1371
+ {
1372
+ "inputs": [
1373
+ {
1374
+ "internalType": "address",
1375
+ "name": "from",
1376
+ "type": "address"
1377
+ },
1378
+ {
1379
+ "internalType": "address",
1380
+ "name": "to",
1381
+ "type": "address"
1382
+ },
1383
+ {
1384
+ "internalType": "uint256",
1385
+ "name": "value",
1386
+ "type": "uint256"
1387
+ }
1388
+ ],
1389
+ "name": "transferFrom",
1390
+ "outputs": [
1391
+ {
1392
+ "internalType": "bool",
1393
+ "name": "",
1394
+ "type": "bool"
1395
+ }
1396
+ ],
1397
+ "stateMutability": "nonpayable",
1398
+ "type": "function"
1399
+ },
1400
+ {
1401
+ "inputs": [
1402
+ {
1403
+ "internalType": "address",
1404
+ "name": "newOwner",
1405
+ "type": "address"
1406
+ }
1407
+ ],
1408
+ "name": "transferOwnership",
1409
+ "outputs": [],
1410
+ "stateMutability": "nonpayable",
1411
+ "type": "function"
1412
+ },
1413
+ {
1414
+ "inputs": [
1415
+ {
1416
+ "internalType": "address",
1417
+ "name": "from",
1418
+ "type": "address"
1419
+ },
1420
+ {
1421
+ "internalType": "address",
1422
+ "name": "to",
1423
+ "type": "address"
1424
+ },
1425
+ {
1426
+ "internalType": "uint256",
1427
+ "name": "value",
1428
+ "type": "uint256"
1429
+ },
1430
+ {
1431
+ "internalType": "uint256",
1432
+ "name": "validAfter",
1433
+ "type": "uint256"
1434
+ },
1435
+ {
1436
+ "internalType": "uint256",
1437
+ "name": "validBefore",
1438
+ "type": "uint256"
1439
+ },
1440
+ {
1441
+ "internalType": "bytes32",
1442
+ "name": "nonce",
1443
+ "type": "bytes32"
1444
+ },
1445
+ {
1446
+ "internalType": "bytes",
1447
+ "name": "signature",
1448
+ "type": "bytes"
1449
+ }
1450
+ ],
1451
+ "name": "transferWithAuthorization",
1452
+ "outputs": [],
1453
+ "stateMutability": "nonpayable",
1454
+ "type": "function"
1455
+ },
1456
+ {
1457
+ "inputs": [
1458
+ {
1459
+ "internalType": "address",
1460
+ "name": "from",
1461
+ "type": "address"
1462
+ },
1463
+ {
1464
+ "internalType": "address",
1465
+ "name": "to",
1466
+ "type": "address"
1467
+ },
1468
+ {
1469
+ "internalType": "uint256",
1470
+ "name": "value",
1471
+ "type": "uint256"
1472
+ },
1473
+ {
1474
+ "internalType": "uint256",
1475
+ "name": "validAfter",
1476
+ "type": "uint256"
1477
+ },
1478
+ {
1479
+ "internalType": "uint256",
1480
+ "name": "validBefore",
1481
+ "type": "uint256"
1482
+ },
1483
+ {
1484
+ "internalType": "bytes32",
1485
+ "name": "nonce",
1486
+ "type": "bytes32"
1487
+ },
1488
+ {
1489
+ "internalType": "uint8",
1490
+ "name": "v",
1491
+ "type": "uint8"
1492
+ },
1493
+ {
1494
+ "internalType": "bytes32",
1495
+ "name": "r",
1496
+ "type": "bytes32"
1497
+ },
1498
+ {
1499
+ "internalType": "bytes32",
1500
+ "name": "s",
1501
+ "type": "bytes32"
1502
+ }
1503
+ ],
1504
+ "name": "transferWithAuthorization",
1505
+ "outputs": [],
1506
+ "stateMutability": "nonpayable",
1507
+ "type": "function"
1508
+ },
1509
+ {
1510
+ "inputs": [],
1511
+ "name": "unpause",
1512
+ "outputs": [],
1513
+ "stateMutability": "nonpayable",
1514
+ "type": "function"
1515
+ },
1516
+ {
1517
+ "inputs": [],
1518
+ "name": "version",
1519
+ "outputs": [
1520
+ {
1521
+ "internalType": "string",
1522
+ "name": "",
1523
+ "type": "string"
1524
+ }
1525
+ ],
1526
+ "stateMutability": "pure",
1527
+ "type": "function"
1528
+ }
1529
+ ] as const satisfies Abi;
1530
+
1531
+ /**
1532
+ * Type-safe ABI for FrxUSD
1533
+ */
1534
+ export type FrxUSDAbi = typeof FrxUSDAbi;
1535
+
1536
+ /**
1537
+ * Contract instance type for FrxUSD
1538
+ */
1539
+ // Use any for contract type to avoid complex viem type issues
1540
+ // The runtime behavior is type-safe through viem's ABI typing
1541
+ export type FrxUSDContract = any;
1542
+
1543
+ /**
1544
+ * FrxUSD Contract Class
1545
+ *
1546
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
1547
+ *
1548
+ * @example
1549
+ * ```typescript
1550
+ * import { createPublicClient, createWalletClient, http } from 'viem';
1551
+ * import { mainnet } from 'viem/chains';
1552
+ * import { FrxUSD } from 'FrxUSD';
1553
+ *
1554
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
1555
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
1556
+ *
1557
+ * const contract = new FrxUSD('0x...', { publicClient, walletClient });
1558
+ *
1559
+ * // Read functions
1560
+ * const result = await contract.balanceOf('0x...');
1561
+ *
1562
+ * // Write functions
1563
+ * const hash = await contract.transfer('0x...', 1000n);
1564
+ *
1565
+ * // Simulate transactions (dry-run)
1566
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
1567
+ * console.log('Gas estimate:', simulation.request.gas);
1568
+ *
1569
+ * // Watch events
1570
+ * const unwatch = contract.watch.Transfer((event) => {
1571
+ * console.log('Transfer event:', event);
1572
+ * });
1573
+ * ```
1574
+ */
1575
+ export class FrxUSD {
1576
+ private contract: FrxUSDContract;
1577
+ private contractAddress: Address;
1578
+ private publicClient: PublicClient;
1579
+
1580
+ constructor(
1581
+ address: Address,
1582
+ clients: {
1583
+ publicClient: PublicClient;
1584
+ walletClient?: WalletClient;
1585
+ }
1586
+ ) {
1587
+ this.contractAddress = address;
1588
+ this.publicClient = clients.publicClient;
1589
+ this.contract = getContract({
1590
+ address,
1591
+ abi: FrxUSDAbi,
1592
+ client: {
1593
+ public: clients.publicClient,
1594
+ wallet: clients.walletClient,
1595
+ },
1596
+ });
1597
+ }
1598
+
1599
+ /**
1600
+ * Get the contract address
1601
+ */
1602
+ get address(): Address {
1603
+ return this.contractAddress;
1604
+ }
1605
+
1606
+ /**
1607
+ * Get the underlying viem contract instance.
1608
+ */
1609
+ getContract(): FrxUSDContract {
1610
+ return this.contract;
1611
+ }
1612
+
1613
+ /**
1614
+ * DOMAIN_SEPARATOR
1615
+ * view
1616
+ */
1617
+ async DOMAIN_SEPARATOR(): Promise<`0x${string}`> {
1618
+ return this.contract.read.DOMAIN_SEPARATOR() as Promise<`0x${string}`>;
1619
+ }
1620
+
1621
+ /**
1622
+ * allowance
1623
+ * view
1624
+ */
1625
+ async allowance(owner: `0x${string}`, spender: `0x${string}`): Promise<bigint> {
1626
+ return this.contract.read.allowance([owner, spender] as const) as Promise<bigint>;
1627
+ }
1628
+
1629
+ /**
1630
+ * authorizationState
1631
+ * view
1632
+ */
1633
+ async authorizationState(authorizer: `0x${string}`, nonce: `0x${string}`): Promise<boolean> {
1634
+ return this.contract.read.authorizationState([authorizer, nonce] as const) as Promise<boolean>;
1635
+ }
1636
+
1637
+ /**
1638
+ * balanceOf
1639
+ * view
1640
+ */
1641
+ async balanceOf(account: `0x${string}`): Promise<bigint> {
1642
+ return this.contract.read.balanceOf([account] as const) as Promise<bigint>;
1643
+ }
1644
+
1645
+ /**
1646
+ * decimals
1647
+ * view
1648
+ */
1649
+ async decimals(): Promise<bigint> {
1650
+ return this.contract.read.decimals() as Promise<bigint>;
1651
+ }
1652
+
1653
+ /**
1654
+ * eip712Domain
1655
+ * view
1656
+ */
1657
+ async eip712Domain(): Promise<[`0x${string}`, string, string, bigint, `0x${string}`, `0x${string}`, bigint[]]> {
1658
+ return this.contract.read.eip712Domain() as Promise<[`0x${string}`, string, string, bigint, `0x${string}`, `0x${string}`, bigint[]]>;
1659
+ }
1660
+
1661
+ /**
1662
+ * isFreezer
1663
+ * view
1664
+ */
1665
+ async isFreezer(arg0: `0x${string}`): Promise<boolean> {
1666
+ return this.contract.read.isFreezer([arg0] as const) as Promise<boolean>;
1667
+ }
1668
+
1669
+ /**
1670
+ * isFrozen
1671
+ * view
1672
+ */
1673
+ async isFrozen(arg0: `0x${string}`): Promise<boolean> {
1674
+ return this.contract.read.isFrozen([arg0] as const) as Promise<boolean>;
1675
+ }
1676
+
1677
+ /**
1678
+ * isPaused
1679
+ * view
1680
+ */
1681
+ async isPaused(): Promise<boolean> {
1682
+ return this.contract.read.isPaused() as Promise<boolean>;
1683
+ }
1684
+
1685
+ /**
1686
+ * minters
1687
+ * view
1688
+ */
1689
+ async minters(arg0: `0x${string}`): Promise<boolean> {
1690
+ return this.contract.read.minters([arg0] as const) as Promise<boolean>;
1691
+ }
1692
+
1693
+ /**
1694
+ * minters_array
1695
+ * view
1696
+ */
1697
+ async minters_array(arg0: bigint): Promise<`0x${string}`> {
1698
+ return this.contract.read.minters_array([arg0] as const) as Promise<`0x${string}`>;
1699
+ }
1700
+
1701
+ /**
1702
+ * name
1703
+ * view
1704
+ */
1705
+ async name(): Promise<string> {
1706
+ return this.contract.read.name() as Promise<string>;
1707
+ }
1708
+
1709
+ /**
1710
+ * nonces
1711
+ * view
1712
+ */
1713
+ async nonces(owner: `0x${string}`): Promise<bigint> {
1714
+ return this.contract.read.nonces([owner] as const) as Promise<bigint>;
1715
+ }
1716
+
1717
+ /**
1718
+ * owner
1719
+ * view
1720
+ */
1721
+ async owner(): Promise<`0x${string}`> {
1722
+ return this.contract.read.owner() as Promise<`0x${string}`>;
1723
+ }
1724
+
1725
+ /**
1726
+ * pendingOwner
1727
+ * view
1728
+ */
1729
+ async pendingOwner(): Promise<`0x${string}`> {
1730
+ return this.contract.read.pendingOwner() as Promise<`0x${string}`>;
1731
+ }
1732
+
1733
+ /**
1734
+ * symbol
1735
+ * view
1736
+ */
1737
+ async symbol(): Promise<string> {
1738
+ return this.contract.read.symbol() as Promise<string>;
1739
+ }
1740
+
1741
+ /**
1742
+ * totalSupply
1743
+ * view
1744
+ */
1745
+ async totalSupply(): Promise<bigint> {
1746
+ return this.contract.read.totalSupply() as Promise<bigint>;
1747
+ }
1748
+
1749
+ /**
1750
+ * version
1751
+ * pure
1752
+ */
1753
+ async version(): Promise<string> {
1754
+ return this.contract.read.version() as Promise<string>;
1755
+ }
1756
+
1757
+ /**
1758
+ * acceptOwnership
1759
+ * nonpayable
1760
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1761
+ */
1762
+ async acceptOwnership(options?: {
1763
+ accessList?: import('viem').AccessList;
1764
+ authorizationList?: import('viem').AuthorizationList;
1765
+ chain?: import('viem').Chain | null;
1766
+ dataSuffix?: `0x${string}`;
1767
+ gas?: bigint;
1768
+ gasPrice?: bigint;
1769
+ maxFeePerGas?: bigint;
1770
+ maxPriorityFeePerGas?: bigint;
1771
+ nonce?: number;
1772
+ value?: bigint;
1773
+ }): Promise<`0x${string}`> {
1774
+ if (!this.contract.write) {
1775
+ throw new Error('Wallet client is required for write operations');
1776
+ }
1777
+ return this.contract.write.acceptOwnership(options) as Promise<`0x${string}`>;
1778
+ }
1779
+
1780
+ /**
1781
+ * addFreezer
1782
+ * nonpayable
1783
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1784
+ */
1785
+ async addFreezer(_freezer: `0x${string}`, options?: {
1786
+ accessList?: import('viem').AccessList;
1787
+ authorizationList?: import('viem').AuthorizationList;
1788
+ chain?: import('viem').Chain | null;
1789
+ dataSuffix?: `0x${string}`;
1790
+ gas?: bigint;
1791
+ gasPrice?: bigint;
1792
+ maxFeePerGas?: bigint;
1793
+ maxPriorityFeePerGas?: bigint;
1794
+ nonce?: number;
1795
+ value?: bigint;
1796
+ }): Promise<`0x${string}`> {
1797
+ if (!this.contract.write) {
1798
+ throw new Error('Wallet client is required for write operations');
1799
+ }
1800
+ return this.contract.write.addFreezer([_freezer] as const, options) as Promise<`0x${string}`>;
1801
+ }
1802
+
1803
+ /**
1804
+ * addMinter
1805
+ * nonpayable
1806
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1807
+ */
1808
+ async addMinter(minter_address: `0x${string}`, options?: {
1809
+ accessList?: import('viem').AccessList;
1810
+ authorizationList?: import('viem').AuthorizationList;
1811
+ chain?: import('viem').Chain | null;
1812
+ dataSuffix?: `0x${string}`;
1813
+ gas?: bigint;
1814
+ gasPrice?: bigint;
1815
+ maxFeePerGas?: bigint;
1816
+ maxPriorityFeePerGas?: bigint;
1817
+ nonce?: number;
1818
+ value?: bigint;
1819
+ }): Promise<`0x${string}`> {
1820
+ if (!this.contract.write) {
1821
+ throw new Error('Wallet client is required for write operations');
1822
+ }
1823
+ return this.contract.write.addMinter([minter_address] as const, options) as Promise<`0x${string}`>;
1824
+ }
1825
+
1826
+ /**
1827
+ * approve
1828
+ * nonpayable
1829
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1830
+ */
1831
+ async approve(spender: `0x${string}`, value: bigint, options?: {
1832
+ accessList?: import('viem').AccessList;
1833
+ authorizationList?: import('viem').AuthorizationList;
1834
+ chain?: import('viem').Chain | null;
1835
+ dataSuffix?: `0x${string}`;
1836
+ gas?: bigint;
1837
+ gasPrice?: bigint;
1838
+ maxFeePerGas?: bigint;
1839
+ maxPriorityFeePerGas?: bigint;
1840
+ nonce?: number;
1841
+ value?: bigint;
1842
+ }): Promise<`0x${string}`> {
1843
+ if (!this.contract.write) {
1844
+ throw new Error('Wallet client is required for write operations');
1845
+ }
1846
+ return this.contract.write.approve([spender, value] as const, options) as Promise<`0x${string}`>;
1847
+ }
1848
+
1849
+ async burn(value: bigint, options?: {
1850
+ accessList?: import('viem').AccessList;
1851
+ authorizationList?: import('viem').AuthorizationList;
1852
+ chain?: import('viem').Chain | null;
1853
+ dataSuffix?: `0x${string}`;
1854
+ gas?: bigint;
1855
+ gasPrice?: bigint;
1856
+ maxFeePerGas?: bigint;
1857
+ maxPriorityFeePerGas?: bigint;
1858
+ nonce?: number;
1859
+ value?: bigint;
1860
+ }): Promise<`0x${string}`>;
1861
+ async burn(_owner: `0x${string}`, _amount: bigint, options?: {
1862
+ accessList?: import('viem').AccessList;
1863
+ authorizationList?: import('viem').AuthorizationList;
1864
+ chain?: import('viem').Chain | null;
1865
+ dataSuffix?: `0x${string}`;
1866
+ gas?: bigint;
1867
+ gasPrice?: bigint;
1868
+ maxFeePerGas?: bigint;
1869
+ maxPriorityFeePerGas?: bigint;
1870
+ nonce?: number;
1871
+ value?: bigint;
1872
+ }): Promise<`0x${string}`>;
1873
+ async burn(...args: any[]): Promise<`0x${string}`> {
1874
+ if (!this.contract.write) {
1875
+ throw new Error('Wallet client is required for write operations');
1876
+ }
1877
+ return this.contract.write.burn(args as any) as Promise<`0x${string}`>;
1878
+ }
1879
+
1880
+ /**
1881
+ * burnFrom
1882
+ * nonpayable
1883
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1884
+ */
1885
+ async burnFrom(account: `0x${string}`, value: bigint, options?: {
1886
+ accessList?: import('viem').AccessList;
1887
+ authorizationList?: import('viem').AuthorizationList;
1888
+ chain?: import('viem').Chain | null;
1889
+ dataSuffix?: `0x${string}`;
1890
+ gas?: bigint;
1891
+ gasPrice?: bigint;
1892
+ maxFeePerGas?: bigint;
1893
+ maxPriorityFeePerGas?: bigint;
1894
+ nonce?: number;
1895
+ value?: bigint;
1896
+ }): Promise<`0x${string}`> {
1897
+ if (!this.contract.write) {
1898
+ throw new Error('Wallet client is required for write operations');
1899
+ }
1900
+ return this.contract.write.burnFrom([account, value] as const, options) as Promise<`0x${string}`>;
1901
+ }
1902
+
1903
+ /**
1904
+ * burnMany
1905
+ * nonpayable
1906
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1907
+ */
1908
+ async burnMany(_owners: `0x${string}`[], _amounts: bigint[], options?: {
1909
+ accessList?: import('viem').AccessList;
1910
+ authorizationList?: import('viem').AuthorizationList;
1911
+ chain?: import('viem').Chain | null;
1912
+ dataSuffix?: `0x${string}`;
1913
+ gas?: bigint;
1914
+ gasPrice?: bigint;
1915
+ maxFeePerGas?: bigint;
1916
+ maxPriorityFeePerGas?: bigint;
1917
+ nonce?: number;
1918
+ value?: bigint;
1919
+ }): Promise<`0x${string}`> {
1920
+ if (!this.contract.write) {
1921
+ throw new Error('Wallet client is required for write operations');
1922
+ }
1923
+ return this.contract.write.burnMany([_owners, _amounts] as const, options) as Promise<`0x${string}`>;
1924
+ }
1925
+
1926
+ async cancelAuthorization(authorizer: `0x${string}`, nonce: `0x${string}`, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
1927
+ accessList?: import('viem').AccessList;
1928
+ authorizationList?: import('viem').AuthorizationList;
1929
+ chain?: import('viem').Chain | null;
1930
+ dataSuffix?: `0x${string}`;
1931
+ gas?: bigint;
1932
+ gasPrice?: bigint;
1933
+ maxFeePerGas?: bigint;
1934
+ maxPriorityFeePerGas?: bigint;
1935
+ nonce?: number;
1936
+ value?: bigint;
1937
+ }): Promise<`0x${string}`>;
1938
+ async cancelAuthorization(authorizer: `0x${string}`, nonce: `0x${string}`, signature: `0x${string}`, options?: {
1939
+ accessList?: import('viem').AccessList;
1940
+ authorizationList?: import('viem').AuthorizationList;
1941
+ chain?: import('viem').Chain | null;
1942
+ dataSuffix?: `0x${string}`;
1943
+ gas?: bigint;
1944
+ gasPrice?: bigint;
1945
+ maxFeePerGas?: bigint;
1946
+ maxPriorityFeePerGas?: bigint;
1947
+ nonce?: number;
1948
+ value?: bigint;
1949
+ }): Promise<`0x${string}`>;
1950
+ async cancelAuthorization(...args: any[]): Promise<`0x${string}`> {
1951
+ if (!this.contract.write) {
1952
+ throw new Error('Wallet client is required for write operations');
1953
+ }
1954
+ return this.contract.write.cancelAuthorization(args as any) as Promise<`0x${string}`>;
1955
+ }
1956
+
1957
+ /**
1958
+ * freeze
1959
+ * nonpayable
1960
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1961
+ */
1962
+ async freeze(_owner: `0x${string}`, options?: {
1963
+ accessList?: import('viem').AccessList;
1964
+ authorizationList?: import('viem').AuthorizationList;
1965
+ chain?: import('viem').Chain | null;
1966
+ dataSuffix?: `0x${string}`;
1967
+ gas?: bigint;
1968
+ gasPrice?: bigint;
1969
+ maxFeePerGas?: bigint;
1970
+ maxPriorityFeePerGas?: bigint;
1971
+ nonce?: number;
1972
+ value?: bigint;
1973
+ }): Promise<`0x${string}`> {
1974
+ if (!this.contract.write) {
1975
+ throw new Error('Wallet client is required for write operations');
1976
+ }
1977
+ return this.contract.write.freeze([_owner] as const, options) as Promise<`0x${string}`>;
1978
+ }
1979
+
1980
+ /**
1981
+ * freezeMany
1982
+ * nonpayable
1983
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1984
+ */
1985
+ async freezeMany(_owners: `0x${string}`[], options?: {
1986
+ accessList?: import('viem').AccessList;
1987
+ authorizationList?: import('viem').AuthorizationList;
1988
+ chain?: import('viem').Chain | null;
1989
+ dataSuffix?: `0x${string}`;
1990
+ gas?: bigint;
1991
+ gasPrice?: bigint;
1992
+ maxFeePerGas?: bigint;
1993
+ maxPriorityFeePerGas?: bigint;
1994
+ nonce?: number;
1995
+ value?: bigint;
1996
+ }): Promise<`0x${string}`> {
1997
+ if (!this.contract.write) {
1998
+ throw new Error('Wallet client is required for write operations');
1999
+ }
2000
+ return this.contract.write.freezeMany([_owners] as const, options) as Promise<`0x${string}`>;
2001
+ }
2002
+
2003
+ /**
2004
+ * minter_burn_from
2005
+ * nonpayable
2006
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2007
+ */
2008
+ async minter_burn_from(b_address: `0x${string}`, b_amount: bigint, options?: {
2009
+ accessList?: import('viem').AccessList;
2010
+ authorizationList?: import('viem').AuthorizationList;
2011
+ chain?: import('viem').Chain | null;
2012
+ dataSuffix?: `0x${string}`;
2013
+ gas?: bigint;
2014
+ gasPrice?: bigint;
2015
+ maxFeePerGas?: bigint;
2016
+ maxPriorityFeePerGas?: bigint;
2017
+ nonce?: number;
2018
+ value?: bigint;
2019
+ }): Promise<`0x${string}`> {
2020
+ if (!this.contract.write) {
2021
+ throw new Error('Wallet client is required for write operations');
2022
+ }
2023
+ return this.contract.write.minter_burn_from([b_address, b_amount] as const, options) as Promise<`0x${string}`>;
2024
+ }
2025
+
2026
+ /**
2027
+ * minter_mint
2028
+ * nonpayable
2029
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2030
+ */
2031
+ async minter_mint(m_address: `0x${string}`, m_amount: bigint, options?: {
2032
+ accessList?: import('viem').AccessList;
2033
+ authorizationList?: import('viem').AuthorizationList;
2034
+ chain?: import('viem').Chain | null;
2035
+ dataSuffix?: `0x${string}`;
2036
+ gas?: bigint;
2037
+ gasPrice?: bigint;
2038
+ maxFeePerGas?: bigint;
2039
+ maxPriorityFeePerGas?: bigint;
2040
+ nonce?: number;
2041
+ value?: bigint;
2042
+ }): Promise<`0x${string}`> {
2043
+ if (!this.contract.write) {
2044
+ throw new Error('Wallet client is required for write operations');
2045
+ }
2046
+ return this.contract.write.minter_mint([m_address, m_amount] as const, options) as Promise<`0x${string}`>;
2047
+ }
2048
+
2049
+ /**
2050
+ * pause
2051
+ * nonpayable
2052
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2053
+ */
2054
+ async pause(options?: {
2055
+ accessList?: import('viem').AccessList;
2056
+ authorizationList?: import('viem').AuthorizationList;
2057
+ chain?: import('viem').Chain | null;
2058
+ dataSuffix?: `0x${string}`;
2059
+ gas?: bigint;
2060
+ gasPrice?: bigint;
2061
+ maxFeePerGas?: bigint;
2062
+ maxPriorityFeePerGas?: bigint;
2063
+ nonce?: number;
2064
+ value?: bigint;
2065
+ }): Promise<`0x${string}`> {
2066
+ if (!this.contract.write) {
2067
+ throw new Error('Wallet client is required for write operations');
2068
+ }
2069
+ return this.contract.write.pause(options) as Promise<`0x${string}`>;
2070
+ }
2071
+
2072
+ async permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, signature: `0x${string}`, options?: {
2073
+ accessList?: import('viem').AccessList;
2074
+ authorizationList?: import('viem').AuthorizationList;
2075
+ chain?: import('viem').Chain | null;
2076
+ dataSuffix?: `0x${string}`;
2077
+ gas?: bigint;
2078
+ gasPrice?: bigint;
2079
+ maxFeePerGas?: bigint;
2080
+ maxPriorityFeePerGas?: bigint;
2081
+ nonce?: number;
2082
+ value?: bigint;
2083
+ }): Promise<`0x${string}`>;
2084
+ async permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
2085
+ accessList?: import('viem').AccessList;
2086
+ authorizationList?: import('viem').AuthorizationList;
2087
+ chain?: import('viem').Chain | null;
2088
+ dataSuffix?: `0x${string}`;
2089
+ gas?: bigint;
2090
+ gasPrice?: bigint;
2091
+ maxFeePerGas?: bigint;
2092
+ maxPriorityFeePerGas?: bigint;
2093
+ nonce?: number;
2094
+ value?: bigint;
2095
+ }): Promise<`0x${string}`>;
2096
+ async permit(...args: any[]): Promise<`0x${string}`> {
2097
+ if (!this.contract.write) {
2098
+ throw new Error('Wallet client is required for write operations');
2099
+ }
2100
+ return this.contract.write.permit(args as any) as Promise<`0x${string}`>;
2101
+ }
2102
+
2103
+ async receiveWithAuthorization(from: `0x${string}`, to: `0x${string}`, value: bigint, validAfter: bigint, validBefore: bigint, nonce: `0x${string}`, signature: `0x${string}`, options?: {
2104
+ accessList?: import('viem').AccessList;
2105
+ authorizationList?: import('viem').AuthorizationList;
2106
+ chain?: import('viem').Chain | null;
2107
+ dataSuffix?: `0x${string}`;
2108
+ gas?: bigint;
2109
+ gasPrice?: bigint;
2110
+ maxFeePerGas?: bigint;
2111
+ maxPriorityFeePerGas?: bigint;
2112
+ nonce?: number;
2113
+ value?: bigint;
2114
+ }): Promise<`0x${string}`>;
2115
+ async receiveWithAuthorization(from: `0x${string}`, to: `0x${string}`, value: bigint, validAfter: bigint, validBefore: bigint, nonce: `0x${string}`, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
2116
+ accessList?: import('viem').AccessList;
2117
+ authorizationList?: import('viem').AuthorizationList;
2118
+ chain?: import('viem').Chain | null;
2119
+ dataSuffix?: `0x${string}`;
2120
+ gas?: bigint;
2121
+ gasPrice?: bigint;
2122
+ maxFeePerGas?: bigint;
2123
+ maxPriorityFeePerGas?: bigint;
2124
+ nonce?: number;
2125
+ value?: bigint;
2126
+ }): Promise<`0x${string}`>;
2127
+ async receiveWithAuthorization(...args: any[]): Promise<`0x${string}`> {
2128
+ if (!this.contract.write) {
2129
+ throw new Error('Wallet client is required for write operations');
2130
+ }
2131
+ return this.contract.write.receiveWithAuthorization(args as any) as Promise<`0x${string}`>;
2132
+ }
2133
+
2134
+ /**
2135
+ * removeFreezer
2136
+ * nonpayable
2137
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2138
+ */
2139
+ async removeFreezer(_freezer: `0x${string}`, options?: {
2140
+ accessList?: import('viem').AccessList;
2141
+ authorizationList?: import('viem').AuthorizationList;
2142
+ chain?: import('viem').Chain | null;
2143
+ dataSuffix?: `0x${string}`;
2144
+ gas?: bigint;
2145
+ gasPrice?: bigint;
2146
+ maxFeePerGas?: bigint;
2147
+ maxPriorityFeePerGas?: bigint;
2148
+ nonce?: number;
2149
+ value?: bigint;
2150
+ }): Promise<`0x${string}`> {
2151
+ if (!this.contract.write) {
2152
+ throw new Error('Wallet client is required for write operations');
2153
+ }
2154
+ return this.contract.write.removeFreezer([_freezer] as const, options) as Promise<`0x${string}`>;
2155
+ }
2156
+
2157
+ /**
2158
+ * removeMinter
2159
+ * nonpayable
2160
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2161
+ */
2162
+ async removeMinter(minter_address: `0x${string}`, options?: {
2163
+ accessList?: import('viem').AccessList;
2164
+ authorizationList?: import('viem').AuthorizationList;
2165
+ chain?: import('viem').Chain | null;
2166
+ dataSuffix?: `0x${string}`;
2167
+ gas?: bigint;
2168
+ gasPrice?: bigint;
2169
+ maxFeePerGas?: bigint;
2170
+ maxPriorityFeePerGas?: bigint;
2171
+ nonce?: number;
2172
+ value?: bigint;
2173
+ }): Promise<`0x${string}`> {
2174
+ if (!this.contract.write) {
2175
+ throw new Error('Wallet client is required for write operations');
2176
+ }
2177
+ return this.contract.write.removeMinter([minter_address] as const, options) as Promise<`0x${string}`>;
2178
+ }
2179
+
2180
+ /**
2181
+ * renounceOwnership
2182
+ * nonpayable
2183
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2184
+ */
2185
+ async renounceOwnership(options?: {
2186
+ accessList?: import('viem').AccessList;
2187
+ authorizationList?: import('viem').AuthorizationList;
2188
+ chain?: import('viem').Chain | null;
2189
+ dataSuffix?: `0x${string}`;
2190
+ gas?: bigint;
2191
+ gasPrice?: bigint;
2192
+ maxFeePerGas?: bigint;
2193
+ maxPriorityFeePerGas?: bigint;
2194
+ nonce?: number;
2195
+ value?: bigint;
2196
+ }): Promise<`0x${string}`> {
2197
+ if (!this.contract.write) {
2198
+ throw new Error('Wallet client is required for write operations');
2199
+ }
2200
+ return this.contract.write.renounceOwnership(options) as Promise<`0x${string}`>;
2201
+ }
2202
+
2203
+ /**
2204
+ * thaw
2205
+ * nonpayable
2206
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2207
+ */
2208
+ async thaw(_owner: `0x${string}`, options?: {
2209
+ accessList?: import('viem').AccessList;
2210
+ authorizationList?: import('viem').AuthorizationList;
2211
+ chain?: import('viem').Chain | null;
2212
+ dataSuffix?: `0x${string}`;
2213
+ gas?: bigint;
2214
+ gasPrice?: bigint;
2215
+ maxFeePerGas?: bigint;
2216
+ maxPriorityFeePerGas?: bigint;
2217
+ nonce?: number;
2218
+ value?: bigint;
2219
+ }): Promise<`0x${string}`> {
2220
+ if (!this.contract.write) {
2221
+ throw new Error('Wallet client is required for write operations');
2222
+ }
2223
+ return this.contract.write.thaw([_owner] as const, options) as Promise<`0x${string}`>;
2224
+ }
2225
+
2226
+ /**
2227
+ * thawMany
2228
+ * nonpayable
2229
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2230
+ */
2231
+ async thawMany(_owners: `0x${string}`[], options?: {
2232
+ accessList?: import('viem').AccessList;
2233
+ authorizationList?: import('viem').AuthorizationList;
2234
+ chain?: import('viem').Chain | null;
2235
+ dataSuffix?: `0x${string}`;
2236
+ gas?: bigint;
2237
+ gasPrice?: bigint;
2238
+ maxFeePerGas?: bigint;
2239
+ maxPriorityFeePerGas?: bigint;
2240
+ nonce?: number;
2241
+ value?: bigint;
2242
+ }): Promise<`0x${string}`> {
2243
+ if (!this.contract.write) {
2244
+ throw new Error('Wallet client is required for write operations');
2245
+ }
2246
+ return this.contract.write.thawMany([_owners] as const, options) as Promise<`0x${string}`>;
2247
+ }
2248
+
2249
+ /**
2250
+ * transfer
2251
+ * nonpayable
2252
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2253
+ */
2254
+ async transfer(to: `0x${string}`, value: bigint, options?: {
2255
+ accessList?: import('viem').AccessList;
2256
+ authorizationList?: import('viem').AuthorizationList;
2257
+ chain?: import('viem').Chain | null;
2258
+ dataSuffix?: `0x${string}`;
2259
+ gas?: bigint;
2260
+ gasPrice?: bigint;
2261
+ maxFeePerGas?: bigint;
2262
+ maxPriorityFeePerGas?: bigint;
2263
+ nonce?: number;
2264
+ value?: bigint;
2265
+ }): Promise<`0x${string}`> {
2266
+ if (!this.contract.write) {
2267
+ throw new Error('Wallet client is required for write operations');
2268
+ }
2269
+ return this.contract.write.transfer([to, value] as const, options) as Promise<`0x${string}`>;
2270
+ }
2271
+
2272
+ /**
2273
+ * transferFrom
2274
+ * nonpayable
2275
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2276
+ */
2277
+ async transferFrom(from: `0x${string}`, to: `0x${string}`, value: bigint, options?: {
2278
+ accessList?: import('viem').AccessList;
2279
+ authorizationList?: import('viem').AuthorizationList;
2280
+ chain?: import('viem').Chain | null;
2281
+ dataSuffix?: `0x${string}`;
2282
+ gas?: bigint;
2283
+ gasPrice?: bigint;
2284
+ maxFeePerGas?: bigint;
2285
+ maxPriorityFeePerGas?: bigint;
2286
+ nonce?: number;
2287
+ value?: bigint;
2288
+ }): Promise<`0x${string}`> {
2289
+ if (!this.contract.write) {
2290
+ throw new Error('Wallet client is required for write operations');
2291
+ }
2292
+ return this.contract.write.transferFrom([from, to, value] as const, options) as Promise<`0x${string}`>;
2293
+ }
2294
+
2295
+ /**
2296
+ * transferOwnership
2297
+ * nonpayable
2298
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2299
+ */
2300
+ async transferOwnership(newOwner: `0x${string}`, options?: {
2301
+ accessList?: import('viem').AccessList;
2302
+ authorizationList?: import('viem').AuthorizationList;
2303
+ chain?: import('viem').Chain | null;
2304
+ dataSuffix?: `0x${string}`;
2305
+ gas?: bigint;
2306
+ gasPrice?: bigint;
2307
+ maxFeePerGas?: bigint;
2308
+ maxPriorityFeePerGas?: bigint;
2309
+ nonce?: number;
2310
+ value?: bigint;
2311
+ }): Promise<`0x${string}`> {
2312
+ if (!this.contract.write) {
2313
+ throw new Error('Wallet client is required for write operations');
2314
+ }
2315
+ return this.contract.write.transferOwnership([newOwner] as const, options) as Promise<`0x${string}`>;
2316
+ }
2317
+
2318
+ async transferWithAuthorization(from: `0x${string}`, to: `0x${string}`, value: bigint, validAfter: bigint, validBefore: bigint, nonce: `0x${string}`, signature: `0x${string}`, options?: {
2319
+ accessList?: import('viem').AccessList;
2320
+ authorizationList?: import('viem').AuthorizationList;
2321
+ chain?: import('viem').Chain | null;
2322
+ dataSuffix?: `0x${string}`;
2323
+ gas?: bigint;
2324
+ gasPrice?: bigint;
2325
+ maxFeePerGas?: bigint;
2326
+ maxPriorityFeePerGas?: bigint;
2327
+ nonce?: number;
2328
+ value?: bigint;
2329
+ }): Promise<`0x${string}`>;
2330
+ async transferWithAuthorization(from: `0x${string}`, to: `0x${string}`, value: bigint, validAfter: bigint, validBefore: bigint, nonce: `0x${string}`, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
2331
+ accessList?: import('viem').AccessList;
2332
+ authorizationList?: import('viem').AuthorizationList;
2333
+ chain?: import('viem').Chain | null;
2334
+ dataSuffix?: `0x${string}`;
2335
+ gas?: bigint;
2336
+ gasPrice?: bigint;
2337
+ maxFeePerGas?: bigint;
2338
+ maxPriorityFeePerGas?: bigint;
2339
+ nonce?: number;
2340
+ value?: bigint;
2341
+ }): Promise<`0x${string}`>;
2342
+ async transferWithAuthorization(...args: any[]): Promise<`0x${string}`> {
2343
+ if (!this.contract.write) {
2344
+ throw new Error('Wallet client is required for write operations');
2345
+ }
2346
+ return this.contract.write.transferWithAuthorization(args as any) as Promise<`0x${string}`>;
2347
+ }
2348
+
2349
+ /**
2350
+ * unpause
2351
+ * nonpayable
2352
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2353
+ */
2354
+ async unpause(options?: {
2355
+ accessList?: import('viem').AccessList;
2356
+ authorizationList?: import('viem').AuthorizationList;
2357
+ chain?: import('viem').Chain | null;
2358
+ dataSuffix?: `0x${string}`;
2359
+ gas?: bigint;
2360
+ gasPrice?: bigint;
2361
+ maxFeePerGas?: bigint;
2362
+ maxPriorityFeePerGas?: bigint;
2363
+ nonce?: number;
2364
+ value?: bigint;
2365
+ }): Promise<`0x${string}`> {
2366
+ if (!this.contract.write) {
2367
+ throw new Error('Wallet client is required for write operations');
2368
+ }
2369
+ return this.contract.write.unpause(options) as Promise<`0x${string}`>;
2370
+ }
2371
+
2372
+
2373
+
2374
+ /**
2375
+ * Simulate contract write operations (dry-run without sending transaction)
2376
+ *
2377
+ * @example
2378
+ * const result = await contract.simulate.transfer('0x...', 1000n);
2379
+ * console.log('Gas estimate:', result.request.gas);
2380
+ * console.log('Would succeed:', result.result);
2381
+ */
2382
+ get simulate() {
2383
+ const contract = this.contract;
2384
+ if (!contract.simulate) {
2385
+ throw new Error('Public client is required for simulation');
2386
+ }
2387
+ return {
2388
+ /**
2389
+ * Simulate acceptOwnership
2390
+ * Returns gas estimate and result without sending transaction
2391
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2392
+ */
2393
+ async acceptOwnership(options?: {
2394
+ accessList?: import('viem').AccessList;
2395
+ authorizationList?: import('viem').AuthorizationList;
2396
+ chain?: import('viem').Chain | null;
2397
+ dataSuffix?: `0x${string}`;
2398
+ gas?: bigint;
2399
+ gasPrice?: bigint;
2400
+ maxFeePerGas?: bigint;
2401
+ maxPriorityFeePerGas?: bigint;
2402
+ nonce?: number;
2403
+ value?: bigint;
2404
+ }): Promise<void> {
2405
+ return contract.simulate.acceptOwnership(options) as Promise<void>;
2406
+ },
2407
+ /**
2408
+ * Simulate addFreezer
2409
+ * Returns gas estimate and result without sending transaction
2410
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2411
+ */
2412
+ async addFreezer(_freezer: `0x${string}`, options?: {
2413
+ accessList?: import('viem').AccessList;
2414
+ authorizationList?: import('viem').AuthorizationList;
2415
+ chain?: import('viem').Chain | null;
2416
+ dataSuffix?: `0x${string}`;
2417
+ gas?: bigint;
2418
+ gasPrice?: bigint;
2419
+ maxFeePerGas?: bigint;
2420
+ maxPriorityFeePerGas?: bigint;
2421
+ nonce?: number;
2422
+ value?: bigint;
2423
+ }): Promise<void> {
2424
+ return contract.simulate.addFreezer([_freezer] as const, options) as Promise<void>;
2425
+ },
2426
+ /**
2427
+ * Simulate addMinter
2428
+ * Returns gas estimate and result without sending transaction
2429
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2430
+ */
2431
+ async addMinter(minter_address: `0x${string}`, options?: {
2432
+ accessList?: import('viem').AccessList;
2433
+ authorizationList?: import('viem').AuthorizationList;
2434
+ chain?: import('viem').Chain | null;
2435
+ dataSuffix?: `0x${string}`;
2436
+ gas?: bigint;
2437
+ gasPrice?: bigint;
2438
+ maxFeePerGas?: bigint;
2439
+ maxPriorityFeePerGas?: bigint;
2440
+ nonce?: number;
2441
+ value?: bigint;
2442
+ }): Promise<void> {
2443
+ return contract.simulate.addMinter([minter_address] as const, options) as Promise<void>;
2444
+ },
2445
+ /**
2446
+ * Simulate approve
2447
+ * Returns gas estimate and result without sending transaction
2448
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2449
+ */
2450
+ async approve(spender: `0x${string}`, value: bigint, options?: {
2451
+ accessList?: import('viem').AccessList;
2452
+ authorizationList?: import('viem').AuthorizationList;
2453
+ chain?: import('viem').Chain | null;
2454
+ dataSuffix?: `0x${string}`;
2455
+ gas?: bigint;
2456
+ gasPrice?: bigint;
2457
+ maxFeePerGas?: bigint;
2458
+ maxPriorityFeePerGas?: bigint;
2459
+ nonce?: number;
2460
+ value?: bigint;
2461
+ }): Promise<boolean> {
2462
+ return contract.simulate.approve([spender, value] as const, options) as Promise<boolean>;
2463
+ },
2464
+ /**
2465
+ * Simulate burn
2466
+ * Returns gas estimate and result without sending transaction
2467
+ * Supports multiple overloads: (uint256), (address, uint256)
2468
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2469
+ */
2470
+ async burn(...args: any[]): Promise<any> {
2471
+ return contract.simulate.burn(args as any) as Promise<any>;
2472
+ },
2473
+ /**
2474
+ * Simulate burnFrom
2475
+ * Returns gas estimate and result without sending transaction
2476
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2477
+ */
2478
+ async burnFrom(account: `0x${string}`, value: bigint, options?: {
2479
+ accessList?: import('viem').AccessList;
2480
+ authorizationList?: import('viem').AuthorizationList;
2481
+ chain?: import('viem').Chain | null;
2482
+ dataSuffix?: `0x${string}`;
2483
+ gas?: bigint;
2484
+ gasPrice?: bigint;
2485
+ maxFeePerGas?: bigint;
2486
+ maxPriorityFeePerGas?: bigint;
2487
+ nonce?: number;
2488
+ value?: bigint;
2489
+ }): Promise<void> {
2490
+ return contract.simulate.burnFrom([account, value] as const, options) as Promise<void>;
2491
+ },
2492
+ /**
2493
+ * Simulate burnMany
2494
+ * Returns gas estimate and result without sending transaction
2495
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2496
+ */
2497
+ async burnMany(_owners: `0x${string}`[], _amounts: bigint[], options?: {
2498
+ accessList?: import('viem').AccessList;
2499
+ authorizationList?: import('viem').AuthorizationList;
2500
+ chain?: import('viem').Chain | null;
2501
+ dataSuffix?: `0x${string}`;
2502
+ gas?: bigint;
2503
+ gasPrice?: bigint;
2504
+ maxFeePerGas?: bigint;
2505
+ maxPriorityFeePerGas?: bigint;
2506
+ nonce?: number;
2507
+ value?: bigint;
2508
+ }): Promise<void> {
2509
+ return contract.simulate.burnMany([_owners, _amounts] as const, options) as Promise<void>;
2510
+ },
2511
+ /**
2512
+ * Simulate cancelAuthorization
2513
+ * Returns gas estimate and result without sending transaction
2514
+ * Supports multiple overloads: (address, bytes32, uint8, bytes32, bytes32), (address, bytes32, bytes)
2515
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2516
+ */
2517
+ async cancelAuthorization(...args: any[]): Promise<any> {
2518
+ return contract.simulate.cancelAuthorization(args as any) as Promise<any>;
2519
+ },
2520
+ /**
2521
+ * Simulate freeze
2522
+ * Returns gas estimate and result without sending transaction
2523
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2524
+ */
2525
+ async freeze(_owner: `0x${string}`, options?: {
2526
+ accessList?: import('viem').AccessList;
2527
+ authorizationList?: import('viem').AuthorizationList;
2528
+ chain?: import('viem').Chain | null;
2529
+ dataSuffix?: `0x${string}`;
2530
+ gas?: bigint;
2531
+ gasPrice?: bigint;
2532
+ maxFeePerGas?: bigint;
2533
+ maxPriorityFeePerGas?: bigint;
2534
+ nonce?: number;
2535
+ value?: bigint;
2536
+ }): Promise<void> {
2537
+ return contract.simulate.freeze([_owner] as const, options) as Promise<void>;
2538
+ },
2539
+ /**
2540
+ * Simulate freezeMany
2541
+ * Returns gas estimate and result without sending transaction
2542
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2543
+ */
2544
+ async freezeMany(_owners: `0x${string}`[], options?: {
2545
+ accessList?: import('viem').AccessList;
2546
+ authorizationList?: import('viem').AuthorizationList;
2547
+ chain?: import('viem').Chain | null;
2548
+ dataSuffix?: `0x${string}`;
2549
+ gas?: bigint;
2550
+ gasPrice?: bigint;
2551
+ maxFeePerGas?: bigint;
2552
+ maxPriorityFeePerGas?: bigint;
2553
+ nonce?: number;
2554
+ value?: bigint;
2555
+ }): Promise<void> {
2556
+ return contract.simulate.freezeMany([_owners] as const, options) as Promise<void>;
2557
+ },
2558
+ /**
2559
+ * Simulate minter_burn_from
2560
+ * Returns gas estimate and result without sending transaction
2561
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2562
+ */
2563
+ async minter_burn_from(b_address: `0x${string}`, b_amount: bigint, options?: {
2564
+ accessList?: import('viem').AccessList;
2565
+ authorizationList?: import('viem').AuthorizationList;
2566
+ chain?: import('viem').Chain | null;
2567
+ dataSuffix?: `0x${string}`;
2568
+ gas?: bigint;
2569
+ gasPrice?: bigint;
2570
+ maxFeePerGas?: bigint;
2571
+ maxPriorityFeePerGas?: bigint;
2572
+ nonce?: number;
2573
+ value?: bigint;
2574
+ }): Promise<void> {
2575
+ return contract.simulate.minter_burn_from([b_address, b_amount] as const, options) as Promise<void>;
2576
+ },
2577
+ /**
2578
+ * Simulate minter_mint
2579
+ * Returns gas estimate and result without sending transaction
2580
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2581
+ */
2582
+ async minter_mint(m_address: `0x${string}`, m_amount: bigint, options?: {
2583
+ accessList?: import('viem').AccessList;
2584
+ authorizationList?: import('viem').AuthorizationList;
2585
+ chain?: import('viem').Chain | null;
2586
+ dataSuffix?: `0x${string}`;
2587
+ gas?: bigint;
2588
+ gasPrice?: bigint;
2589
+ maxFeePerGas?: bigint;
2590
+ maxPriorityFeePerGas?: bigint;
2591
+ nonce?: number;
2592
+ value?: bigint;
2593
+ }): Promise<void> {
2594
+ return contract.simulate.minter_mint([m_address, m_amount] as const, options) as Promise<void>;
2595
+ },
2596
+ /**
2597
+ * Simulate pause
2598
+ * Returns gas estimate and result without sending transaction
2599
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2600
+ */
2601
+ async pause(options?: {
2602
+ accessList?: import('viem').AccessList;
2603
+ authorizationList?: import('viem').AuthorizationList;
2604
+ chain?: import('viem').Chain | null;
2605
+ dataSuffix?: `0x${string}`;
2606
+ gas?: bigint;
2607
+ gasPrice?: bigint;
2608
+ maxFeePerGas?: bigint;
2609
+ maxPriorityFeePerGas?: bigint;
2610
+ nonce?: number;
2611
+ value?: bigint;
2612
+ }): Promise<void> {
2613
+ return contract.simulate.pause(options) as Promise<void>;
2614
+ },
2615
+ /**
2616
+ * Simulate permit
2617
+ * Returns gas estimate and result without sending transaction
2618
+ * Supports multiple overloads: (address, address, uint256, uint256, bytes), (address, address, uint256, uint256, uint8, bytes32, bytes32)
2619
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2620
+ */
2621
+ async permit(...args: any[]): Promise<any> {
2622
+ return contract.simulate.permit(args as any) as Promise<any>;
2623
+ },
2624
+ /**
2625
+ * Simulate receiveWithAuthorization
2626
+ * Returns gas estimate and result without sending transaction
2627
+ * Supports multiple overloads: (address, address, uint256, uint256, uint256, bytes32, bytes), (address, address, uint256, uint256, uint256, bytes32, uint8, bytes32, bytes32)
2628
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2629
+ */
2630
+ async receiveWithAuthorization(...args: any[]): Promise<any> {
2631
+ return contract.simulate.receiveWithAuthorization(args as any) as Promise<any>;
2632
+ },
2633
+ /**
2634
+ * Simulate removeFreezer
2635
+ * Returns gas estimate and result without sending transaction
2636
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2637
+ */
2638
+ async removeFreezer(_freezer: `0x${string}`, options?: {
2639
+ accessList?: import('viem').AccessList;
2640
+ authorizationList?: import('viem').AuthorizationList;
2641
+ chain?: import('viem').Chain | null;
2642
+ dataSuffix?: `0x${string}`;
2643
+ gas?: bigint;
2644
+ gasPrice?: bigint;
2645
+ maxFeePerGas?: bigint;
2646
+ maxPriorityFeePerGas?: bigint;
2647
+ nonce?: number;
2648
+ value?: bigint;
2649
+ }): Promise<void> {
2650
+ return contract.simulate.removeFreezer([_freezer] as const, options) as Promise<void>;
2651
+ },
2652
+ /**
2653
+ * Simulate removeMinter
2654
+ * Returns gas estimate and result without sending transaction
2655
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2656
+ */
2657
+ async removeMinter(minter_address: `0x${string}`, options?: {
2658
+ accessList?: import('viem').AccessList;
2659
+ authorizationList?: import('viem').AuthorizationList;
2660
+ chain?: import('viem').Chain | null;
2661
+ dataSuffix?: `0x${string}`;
2662
+ gas?: bigint;
2663
+ gasPrice?: bigint;
2664
+ maxFeePerGas?: bigint;
2665
+ maxPriorityFeePerGas?: bigint;
2666
+ nonce?: number;
2667
+ value?: bigint;
2668
+ }): Promise<void> {
2669
+ return contract.simulate.removeMinter([minter_address] as const, options) as Promise<void>;
2670
+ },
2671
+ /**
2672
+ * Simulate renounceOwnership
2673
+ * Returns gas estimate and result without sending transaction
2674
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2675
+ */
2676
+ async renounceOwnership(options?: {
2677
+ accessList?: import('viem').AccessList;
2678
+ authorizationList?: import('viem').AuthorizationList;
2679
+ chain?: import('viem').Chain | null;
2680
+ dataSuffix?: `0x${string}`;
2681
+ gas?: bigint;
2682
+ gasPrice?: bigint;
2683
+ maxFeePerGas?: bigint;
2684
+ maxPriorityFeePerGas?: bigint;
2685
+ nonce?: number;
2686
+ value?: bigint;
2687
+ }): Promise<void> {
2688
+ return contract.simulate.renounceOwnership(options) as Promise<void>;
2689
+ },
2690
+ /**
2691
+ * Simulate thaw
2692
+ * Returns gas estimate and result without sending transaction
2693
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2694
+ */
2695
+ async thaw(_owner: `0x${string}`, options?: {
2696
+ accessList?: import('viem').AccessList;
2697
+ authorizationList?: import('viem').AuthorizationList;
2698
+ chain?: import('viem').Chain | null;
2699
+ dataSuffix?: `0x${string}`;
2700
+ gas?: bigint;
2701
+ gasPrice?: bigint;
2702
+ maxFeePerGas?: bigint;
2703
+ maxPriorityFeePerGas?: bigint;
2704
+ nonce?: number;
2705
+ value?: bigint;
2706
+ }): Promise<void> {
2707
+ return contract.simulate.thaw([_owner] as const, options) as Promise<void>;
2708
+ },
2709
+ /**
2710
+ * Simulate thawMany
2711
+ * Returns gas estimate and result without sending transaction
2712
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2713
+ */
2714
+ async thawMany(_owners: `0x${string}`[], options?: {
2715
+ accessList?: import('viem').AccessList;
2716
+ authorizationList?: import('viem').AuthorizationList;
2717
+ chain?: import('viem').Chain | null;
2718
+ dataSuffix?: `0x${string}`;
2719
+ gas?: bigint;
2720
+ gasPrice?: bigint;
2721
+ maxFeePerGas?: bigint;
2722
+ maxPriorityFeePerGas?: bigint;
2723
+ nonce?: number;
2724
+ value?: bigint;
2725
+ }): Promise<void> {
2726
+ return contract.simulate.thawMany([_owners] as const, options) as Promise<void>;
2727
+ },
2728
+ /**
2729
+ * Simulate transfer
2730
+ * Returns gas estimate and result without sending transaction
2731
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2732
+ */
2733
+ async transfer(to: `0x${string}`, value: bigint, options?: {
2734
+ accessList?: import('viem').AccessList;
2735
+ authorizationList?: import('viem').AuthorizationList;
2736
+ chain?: import('viem').Chain | null;
2737
+ dataSuffix?: `0x${string}`;
2738
+ gas?: bigint;
2739
+ gasPrice?: bigint;
2740
+ maxFeePerGas?: bigint;
2741
+ maxPriorityFeePerGas?: bigint;
2742
+ nonce?: number;
2743
+ value?: bigint;
2744
+ }): Promise<boolean> {
2745
+ return contract.simulate.transfer([to, value] as const, options) as Promise<boolean>;
2746
+ },
2747
+ /**
2748
+ * Simulate transferFrom
2749
+ * Returns gas estimate and result without sending transaction
2750
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2751
+ */
2752
+ async transferFrom(from: `0x${string}`, to: `0x${string}`, value: bigint, options?: {
2753
+ accessList?: import('viem').AccessList;
2754
+ authorizationList?: import('viem').AuthorizationList;
2755
+ chain?: import('viem').Chain | null;
2756
+ dataSuffix?: `0x${string}`;
2757
+ gas?: bigint;
2758
+ gasPrice?: bigint;
2759
+ maxFeePerGas?: bigint;
2760
+ maxPriorityFeePerGas?: bigint;
2761
+ nonce?: number;
2762
+ value?: bigint;
2763
+ }): Promise<boolean> {
2764
+ return contract.simulate.transferFrom([from, to, value] as const, options) as Promise<boolean>;
2765
+ },
2766
+ /**
2767
+ * Simulate transferOwnership
2768
+ * Returns gas estimate and result without sending transaction
2769
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2770
+ */
2771
+ async transferOwnership(newOwner: `0x${string}`, options?: {
2772
+ accessList?: import('viem').AccessList;
2773
+ authorizationList?: import('viem').AuthorizationList;
2774
+ chain?: import('viem').Chain | null;
2775
+ dataSuffix?: `0x${string}`;
2776
+ gas?: bigint;
2777
+ gasPrice?: bigint;
2778
+ maxFeePerGas?: bigint;
2779
+ maxPriorityFeePerGas?: bigint;
2780
+ nonce?: number;
2781
+ value?: bigint;
2782
+ }): Promise<void> {
2783
+ return contract.simulate.transferOwnership([newOwner] as const, options) as Promise<void>;
2784
+ },
2785
+ /**
2786
+ * Simulate transferWithAuthorization
2787
+ * Returns gas estimate and result without sending transaction
2788
+ * Supports multiple overloads: (address, address, uint256, uint256, uint256, bytes32, bytes), (address, address, uint256, uint256, uint256, bytes32, uint8, bytes32, bytes32)
2789
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2790
+ */
2791
+ async transferWithAuthorization(...args: any[]): Promise<any> {
2792
+ return contract.simulate.transferWithAuthorization(args as any) as Promise<any>;
2793
+ },
2794
+ /**
2795
+ * Simulate unpause
2796
+ * Returns gas estimate and result without sending transaction
2797
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2798
+ */
2799
+ async unpause(options?: {
2800
+ accessList?: import('viem').AccessList;
2801
+ authorizationList?: import('viem').AuthorizationList;
2802
+ chain?: import('viem').Chain | null;
2803
+ dataSuffix?: `0x${string}`;
2804
+ gas?: bigint;
2805
+ gasPrice?: bigint;
2806
+ maxFeePerGas?: bigint;
2807
+ maxPriorityFeePerGas?: bigint;
2808
+ nonce?: number;
2809
+ value?: bigint;
2810
+ }): Promise<void> {
2811
+ return contract.simulate.unpause(options) as Promise<void>;
2812
+ }
2813
+ };
2814
+ }
2815
+
2816
+ /**
2817
+ * Watch contract events
2818
+ *
2819
+ * @example
2820
+ * // Watch all Transfer events
2821
+ * const unwatch = contract.watch.Transfer((event) => {
2822
+ * console.log('Transfer:', event);
2823
+ * });
2824
+ *
2825
+ * // Stop watching
2826
+ * unwatch();
2827
+ */
2828
+ get watch() {
2829
+ return {
2830
+ /**
2831
+ * Watch AccountFrozen events
2832
+ * @param callback Function to call when event is emitted
2833
+ * @param filter Optional filter for indexed parameters
2834
+ * @returns Unwatch function to stop listening
2835
+ */
2836
+ AccountFrozen: (callback: (event: { account: `0x${string}` }) => void) => {
2837
+ return this.publicClient.watchContractEvent({
2838
+ address: this.contractAddress,
2839
+ abi: FrxUSDAbi,
2840
+ eventName: 'AccountFrozen',
2841
+
2842
+ onLogs: (logs: any[]) => {
2843
+ logs.forEach((log: any) => {
2844
+ callback(log.args as any);
2845
+ });
2846
+ },
2847
+ }) as () => void;
2848
+ },
2849
+ /**
2850
+ * Watch AccountThawed events
2851
+ * @param callback Function to call when event is emitted
2852
+ * @param filter Optional filter for indexed parameters
2853
+ * @returns Unwatch function to stop listening
2854
+ */
2855
+ AccountThawed: (callback: (event: { account: `0x${string}` }) => void) => {
2856
+ return this.publicClient.watchContractEvent({
2857
+ address: this.contractAddress,
2858
+ abi: FrxUSDAbi,
2859
+ eventName: 'AccountThawed',
2860
+
2861
+ onLogs: (logs: any[]) => {
2862
+ logs.forEach((log: any) => {
2863
+ callback(log.args as any);
2864
+ });
2865
+ },
2866
+ }) as () => void;
2867
+ },
2868
+ /**
2869
+ * Watch AddFreezer events
2870
+ * @param callback Function to call when event is emitted
2871
+ * @param filter Optional filter for indexed parameters
2872
+ * @returns Unwatch function to stop listening
2873
+ */
2874
+ AddFreezer: (callback: (event: { account: `0x${string}` }) => void) => {
2875
+ return this.publicClient.watchContractEvent({
2876
+ address: this.contractAddress,
2877
+ abi: FrxUSDAbi,
2878
+ eventName: 'AddFreezer',
2879
+
2880
+ onLogs: (logs: any[]) => {
2881
+ logs.forEach((log: any) => {
2882
+ callback(log.args as any);
2883
+ });
2884
+ },
2885
+ }) as () => void;
2886
+ },
2887
+ /**
2888
+ * Watch Approval events
2889
+ * @param callback Function to call when event is emitted
2890
+ * @param filter Optional filter for indexed parameters
2891
+ * @returns Unwatch function to stop listening
2892
+ */
2893
+ Approval: (callback: (event: { owner: `0x${string}`; spender: `0x${string}`; value: bigint }) => void, filter?: { owner?: `0x${string}` | `0x${string}`[] | null; spender?: `0x${string}` | `0x${string}`[] | null }) => {
2894
+ return this.publicClient.watchContractEvent({
2895
+ address: this.contractAddress,
2896
+ abi: FrxUSDAbi,
2897
+ eventName: 'Approval',
2898
+ args: filter as any,
2899
+ onLogs: (logs: any[]) => {
2900
+ logs.forEach((log: any) => {
2901
+ callback(log.args as any);
2902
+ });
2903
+ },
2904
+ }) as () => void;
2905
+ },
2906
+ /**
2907
+ * Watch AuthorizationCanceled events
2908
+ * @param callback Function to call when event is emitted
2909
+ * @param filter Optional filter for indexed parameters
2910
+ * @returns Unwatch function to stop listening
2911
+ */
2912
+ AuthorizationCanceled: (callback: (event: { authorizer: `0x${string}`; nonce: `0x${string}` }) => void, filter?: { authorizer?: `0x${string}` | `0x${string}`[] | null; nonce?: `0x${string}` | `0x${string}`[] | null }) => {
2913
+ return this.publicClient.watchContractEvent({
2914
+ address: this.contractAddress,
2915
+ abi: FrxUSDAbi,
2916
+ eventName: 'AuthorizationCanceled',
2917
+ args: filter as any,
2918
+ onLogs: (logs: any[]) => {
2919
+ logs.forEach((log: any) => {
2920
+ callback(log.args as any);
2921
+ });
2922
+ },
2923
+ }) as () => void;
2924
+ },
2925
+ /**
2926
+ * Watch AuthorizationUsed events
2927
+ * @param callback Function to call when event is emitted
2928
+ * @param filter Optional filter for indexed parameters
2929
+ * @returns Unwatch function to stop listening
2930
+ */
2931
+ AuthorizationUsed: (callback: (event: { authorizer: `0x${string}`; nonce: `0x${string}` }) => void, filter?: { authorizer?: `0x${string}` | `0x${string}`[] | null; nonce?: `0x${string}` | `0x${string}`[] | null }) => {
2932
+ return this.publicClient.watchContractEvent({
2933
+ address: this.contractAddress,
2934
+ abi: FrxUSDAbi,
2935
+ eventName: 'AuthorizationUsed',
2936
+ args: filter as any,
2937
+ onLogs: (logs: any[]) => {
2938
+ logs.forEach((log: any) => {
2939
+ callback(log.args as any);
2940
+ });
2941
+ },
2942
+ }) as () => void;
2943
+ },
2944
+ /**
2945
+ * Watch Burn events
2946
+ * @param callback Function to call when event is emitted
2947
+ * @param filter Optional filter for indexed parameters
2948
+ * @returns Unwatch function to stop listening
2949
+ */
2950
+ Burn: (callback: (event: { account: `0x${string}`; amount: bigint }) => void, filter?: { account?: `0x${string}` | `0x${string}`[] | null }) => {
2951
+ return this.publicClient.watchContractEvent({
2952
+ address: this.contractAddress,
2953
+ abi: FrxUSDAbi,
2954
+ eventName: 'Burn',
2955
+ args: filter as any,
2956
+ onLogs: (logs: any[]) => {
2957
+ logs.forEach((log: any) => {
2958
+ callback(log.args as any);
2959
+ });
2960
+ },
2961
+ }) as () => void;
2962
+ },
2963
+ /**
2964
+ * Watch EIP712DomainChanged events
2965
+ * @param callback Function to call when event is emitted
2966
+ * @param filter Optional filter for indexed parameters
2967
+ * @returns Unwatch function to stop listening
2968
+ */
2969
+ EIP712DomainChanged: (callback: (event: { }) => void) => {
2970
+ return this.publicClient.watchContractEvent({
2971
+ address: this.contractAddress,
2972
+ abi: FrxUSDAbi,
2973
+ eventName: 'EIP712DomainChanged',
2974
+
2975
+ onLogs: (logs: any[]) => {
2976
+ logs.forEach((log: any) => {
2977
+ callback(log.args as any);
2978
+ });
2979
+ },
2980
+ }) as () => void;
2981
+ },
2982
+ /**
2983
+ * Watch Mint events
2984
+ * @param callback Function to call when event is emitted
2985
+ * @param filter Optional filter for indexed parameters
2986
+ * @returns Unwatch function to stop listening
2987
+ */
2988
+ Mint: (callback: (event: { account: `0x${string}`; amount: bigint }) => void, filter?: { account?: `0x${string}` | `0x${string}`[] | null }) => {
2989
+ return this.publicClient.watchContractEvent({
2990
+ address: this.contractAddress,
2991
+ abi: FrxUSDAbi,
2992
+ eventName: 'Mint',
2993
+ args: filter as any,
2994
+ onLogs: (logs: any[]) => {
2995
+ logs.forEach((log: any) => {
2996
+ callback(log.args as any);
2997
+ });
2998
+ },
2999
+ }) as () => void;
3000
+ },
3001
+ /**
3002
+ * Watch MinterAdded events
3003
+ * @param callback Function to call when event is emitted
3004
+ * @param filter Optional filter for indexed parameters
3005
+ * @returns Unwatch function to stop listening
3006
+ */
3007
+ MinterAdded: (callback: (event: { minter_address: `0x${string}` }) => void) => {
3008
+ return this.publicClient.watchContractEvent({
3009
+ address: this.contractAddress,
3010
+ abi: FrxUSDAbi,
3011
+ eventName: 'MinterAdded',
3012
+
3013
+ onLogs: (logs: any[]) => {
3014
+ logs.forEach((log: any) => {
3015
+ callback(log.args as any);
3016
+ });
3017
+ },
3018
+ }) as () => void;
3019
+ },
3020
+ /**
3021
+ * Watch MinterRemoved events
3022
+ * @param callback Function to call when event is emitted
3023
+ * @param filter Optional filter for indexed parameters
3024
+ * @returns Unwatch function to stop listening
3025
+ */
3026
+ MinterRemoved: (callback: (event: { minter_address: `0x${string}` }) => void) => {
3027
+ return this.publicClient.watchContractEvent({
3028
+ address: this.contractAddress,
3029
+ abi: FrxUSDAbi,
3030
+ eventName: 'MinterRemoved',
3031
+
3032
+ onLogs: (logs: any[]) => {
3033
+ logs.forEach((log: any) => {
3034
+ callback(log.args as any);
3035
+ });
3036
+ },
3037
+ }) as () => void;
3038
+ },
3039
+ /**
3040
+ * Watch OwnershipTransferStarted events
3041
+ * @param callback Function to call when event is emitted
3042
+ * @param filter Optional filter for indexed parameters
3043
+ * @returns Unwatch function to stop listening
3044
+ */
3045
+ OwnershipTransferStarted: (callback: (event: { previousOwner: `0x${string}`; newOwner: `0x${string}` }) => void, filter?: { previousOwner?: `0x${string}` | `0x${string}`[] | null; newOwner?: `0x${string}` | `0x${string}`[] | null }) => {
3046
+ return this.publicClient.watchContractEvent({
3047
+ address: this.contractAddress,
3048
+ abi: FrxUSDAbi,
3049
+ eventName: 'OwnershipTransferStarted',
3050
+ args: filter as any,
3051
+ onLogs: (logs: any[]) => {
3052
+ logs.forEach((log: any) => {
3053
+ callback(log.args as any);
3054
+ });
3055
+ },
3056
+ }) as () => void;
3057
+ },
3058
+ /**
3059
+ * Watch OwnershipTransferred events
3060
+ * @param callback Function to call when event is emitted
3061
+ * @param filter Optional filter for indexed parameters
3062
+ * @returns Unwatch function to stop listening
3063
+ */
3064
+ OwnershipTransferred: (callback: (event: { previousOwner: `0x${string}`; newOwner: `0x${string}` }) => void, filter?: { previousOwner?: `0x${string}` | `0x${string}`[] | null; newOwner?: `0x${string}` | `0x${string}`[] | null }) => {
3065
+ return this.publicClient.watchContractEvent({
3066
+ address: this.contractAddress,
3067
+ abi: FrxUSDAbi,
3068
+ eventName: 'OwnershipTransferred',
3069
+ args: filter as any,
3070
+ onLogs: (logs: any[]) => {
3071
+ logs.forEach((log: any) => {
3072
+ callback(log.args as any);
3073
+ });
3074
+ },
3075
+ }) as () => void;
3076
+ },
3077
+ /**
3078
+ * Watch Paused events
3079
+ * @param callback Function to call when event is emitted
3080
+ * @param filter Optional filter for indexed parameters
3081
+ * @returns Unwatch function to stop listening
3082
+ */
3083
+ Paused: (callback: (event: { }) => void) => {
3084
+ return this.publicClient.watchContractEvent({
3085
+ address: this.contractAddress,
3086
+ abi: FrxUSDAbi,
3087
+ eventName: 'Paused',
3088
+
3089
+ onLogs: (logs: any[]) => {
3090
+ logs.forEach((log: any) => {
3091
+ callback(log.args as any);
3092
+ });
3093
+ },
3094
+ }) as () => void;
3095
+ },
3096
+ /**
3097
+ * Watch RemoveFreezer events
3098
+ * @param callback Function to call when event is emitted
3099
+ * @param filter Optional filter for indexed parameters
3100
+ * @returns Unwatch function to stop listening
3101
+ */
3102
+ RemoveFreezer: (callback: (event: { account: `0x${string}` }) => void) => {
3103
+ return this.publicClient.watchContractEvent({
3104
+ address: this.contractAddress,
3105
+ abi: FrxUSDAbi,
3106
+ eventName: 'RemoveFreezer',
3107
+
3108
+ onLogs: (logs: any[]) => {
3109
+ logs.forEach((log: any) => {
3110
+ callback(log.args as any);
3111
+ });
3112
+ },
3113
+ }) as () => void;
3114
+ },
3115
+ /**
3116
+ * Watch TokenMinterBurned events
3117
+ * @param callback Function to call when event is emitted
3118
+ * @param filter Optional filter for indexed parameters
3119
+ * @returns Unwatch function to stop listening
3120
+ */
3121
+ TokenMinterBurned: (callback: (event: { from: `0x${string}`; to: `0x${string}`; amount: bigint }) => void, filter?: { from?: `0x${string}` | `0x${string}`[] | null; to?: `0x${string}` | `0x${string}`[] | null }) => {
3122
+ return this.publicClient.watchContractEvent({
3123
+ address: this.contractAddress,
3124
+ abi: FrxUSDAbi,
3125
+ eventName: 'TokenMinterBurned',
3126
+ args: filter as any,
3127
+ onLogs: (logs: any[]) => {
3128
+ logs.forEach((log: any) => {
3129
+ callback(log.args as any);
3130
+ });
3131
+ },
3132
+ }) as () => void;
3133
+ },
3134
+ /**
3135
+ * Watch TokenMinterMinted events
3136
+ * @param callback Function to call when event is emitted
3137
+ * @param filter Optional filter for indexed parameters
3138
+ * @returns Unwatch function to stop listening
3139
+ */
3140
+ TokenMinterMinted: (callback: (event: { from: `0x${string}`; to: `0x${string}`; amount: bigint }) => void, filter?: { from?: `0x${string}` | `0x${string}`[] | null; to?: `0x${string}` | `0x${string}`[] | null }) => {
3141
+ return this.publicClient.watchContractEvent({
3142
+ address: this.contractAddress,
3143
+ abi: FrxUSDAbi,
3144
+ eventName: 'TokenMinterMinted',
3145
+ args: filter as any,
3146
+ onLogs: (logs: any[]) => {
3147
+ logs.forEach((log: any) => {
3148
+ callback(log.args as any);
3149
+ });
3150
+ },
3151
+ }) as () => void;
3152
+ },
3153
+ /**
3154
+ * Watch Transfer events
3155
+ * @param callback Function to call when event is emitted
3156
+ * @param filter Optional filter for indexed parameters
3157
+ * @returns Unwatch function to stop listening
3158
+ */
3159
+ Transfer: (callback: (event: { from: `0x${string}`; to: `0x${string}`; value: bigint }) => void, filter?: { from?: `0x${string}` | `0x${string}`[] | null; to?: `0x${string}` | `0x${string}`[] | null }) => {
3160
+ return this.publicClient.watchContractEvent({
3161
+ address: this.contractAddress,
3162
+ abi: FrxUSDAbi,
3163
+ eventName: 'Transfer',
3164
+ args: filter as any,
3165
+ onLogs: (logs: any[]) => {
3166
+ logs.forEach((log: any) => {
3167
+ callback(log.args as any);
3168
+ });
3169
+ },
3170
+ }) as () => void;
3171
+ },
3172
+ /**
3173
+ * Watch Unpaused events
3174
+ * @param callback Function to call when event is emitted
3175
+ * @param filter Optional filter for indexed parameters
3176
+ * @returns Unwatch function to stop listening
3177
+ */
3178
+ Unpaused: (callback: (event: { }) => void) => {
3179
+ return this.publicClient.watchContractEvent({
3180
+ address: this.contractAddress,
3181
+ abi: FrxUSDAbi,
3182
+ eventName: 'Unpaused',
3183
+
3184
+ onLogs: (logs: any[]) => {
3185
+ logs.forEach((log: any) => {
3186
+ callback(log.args as any);
3187
+ });
3188
+ },
3189
+ }) as () => void;
3190
+ }
3191
+ };
3192
+ }
3193
+ }