@gitmyabi-stg/musd 1.0.0

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