@gitmyabi-stg/usdat 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4846 @@
1
+ import type { Abi, Address, PublicClient, WalletClient, GetContractReturnType } from 'viem';
2
+ import { getContract } from 'viem';
3
+
4
+ /**
5
+ * USDat ABI
6
+ *
7
+ * This ABI is typed using viem's type system for full type safety.
8
+ */
9
+ export const USDatAbi = [
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
+ {
72
+ "internalType": "address",
73
+ "name": "account",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "name": "AccountNotWhitelisted",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "ArrayLengthMismatch",
83
+ "type": "error"
84
+ },
85
+ {
86
+ "inputs": [
87
+ {
88
+ "internalType": "address",
89
+ "name": "asset",
90
+ "type": "address"
91
+ }
92
+ ],
93
+ "name": "AssetCapReached",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [
98
+ {
99
+ "internalType": "address",
100
+ "name": "authorizer",
101
+ "type": "address"
102
+ },
103
+ {
104
+ "internalType": "bytes32",
105
+ "name": "nonce",
106
+ "type": "bytes32"
107
+ }
108
+ ],
109
+ "name": "AuthorizationAlreadyUsed",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [
114
+ {
115
+ "internalType": "uint256",
116
+ "name": "timestamp",
117
+ "type": "uint256"
118
+ },
119
+ {
120
+ "internalType": "uint256",
121
+ "name": "validBefore",
122
+ "type": "uint256"
123
+ }
124
+ ],
125
+ "name": "AuthorizationExpired",
126
+ "type": "error"
127
+ },
128
+ {
129
+ "inputs": [
130
+ {
131
+ "internalType": "uint256",
132
+ "name": "timestamp",
133
+ "type": "uint256"
134
+ },
135
+ {
136
+ "internalType": "uint256",
137
+ "name": "validAfter",
138
+ "type": "uint256"
139
+ }
140
+ ],
141
+ "name": "AuthorizationNotYetValid",
142
+ "type": "error"
143
+ },
144
+ {
145
+ "inputs": [
146
+ {
147
+ "internalType": "address",
148
+ "name": "caller",
149
+ "type": "address"
150
+ },
151
+ {
152
+ "internalType": "address",
153
+ "name": "payee",
154
+ "type": "address"
155
+ }
156
+ ],
157
+ "name": "CallerMustBePayee",
158
+ "type": "error"
159
+ },
160
+ {
161
+ "inputs": [],
162
+ "name": "EarningIsDisabled",
163
+ "type": "error"
164
+ },
165
+ {
166
+ "inputs": [],
167
+ "name": "EarningIsEnabled",
168
+ "type": "error"
169
+ },
170
+ {
171
+ "inputs": [],
172
+ "name": "EnforcedPause",
173
+ "type": "error"
174
+ },
175
+ {
176
+ "inputs": [],
177
+ "name": "ExpectedPause",
178
+ "type": "error"
179
+ },
180
+ {
181
+ "inputs": [
182
+ {
183
+ "internalType": "address",
184
+ "name": "spender",
185
+ "type": "address"
186
+ },
187
+ {
188
+ "internalType": "uint256",
189
+ "name": "allowance",
190
+ "type": "uint256"
191
+ },
192
+ {
193
+ "internalType": "uint256",
194
+ "name": "needed",
195
+ "type": "uint256"
196
+ }
197
+ ],
198
+ "name": "InsufficientAllowance",
199
+ "type": "error"
200
+ },
201
+ {
202
+ "inputs": [
203
+ {
204
+ "internalType": "uint256",
205
+ "name": "amount",
206
+ "type": "uint256"
207
+ }
208
+ ],
209
+ "name": "InsufficientAmount",
210
+ "type": "error"
211
+ },
212
+ {
213
+ "inputs": [
214
+ {
215
+ "internalType": "address",
216
+ "name": "asset",
217
+ "type": "address"
218
+ },
219
+ {
220
+ "internalType": "uint256",
221
+ "name": "amount",
222
+ "type": "uint256"
223
+ },
224
+ {
225
+ "internalType": "uint256",
226
+ "name": "assetAvailable",
227
+ "type": "uint256"
228
+ }
229
+ ],
230
+ "name": "InsufficientAssetBacking",
231
+ "type": "error"
232
+ },
233
+ {
234
+ "inputs": [
235
+ {
236
+ "internalType": "address",
237
+ "name": "asset",
238
+ "type": "address"
239
+ },
240
+ {
241
+ "internalType": "uint256",
242
+ "name": "amountExpected",
243
+ "type": "uint256"
244
+ },
245
+ {
246
+ "internalType": "uint256",
247
+ "name": "amountReceived",
248
+ "type": "uint256"
249
+ }
250
+ ],
251
+ "name": "InsufficientAssetReceived",
252
+ "type": "error"
253
+ },
254
+ {
255
+ "inputs": [
256
+ {
257
+ "internalType": "address",
258
+ "name": "account",
259
+ "type": "address"
260
+ },
261
+ {
262
+ "internalType": "uint256",
263
+ "name": "balance",
264
+ "type": "uint256"
265
+ },
266
+ {
267
+ "internalType": "uint256",
268
+ "name": "amount",
269
+ "type": "uint256"
270
+ }
271
+ ],
272
+ "name": "InsufficientBalance",
273
+ "type": "error"
274
+ },
275
+ {
276
+ "inputs": [
277
+ {
278
+ "internalType": "uint256",
279
+ "name": "amount",
280
+ "type": "uint256"
281
+ },
282
+ {
283
+ "internalType": "uint256",
284
+ "name": "mAvailable",
285
+ "type": "uint256"
286
+ }
287
+ ],
288
+ "name": "InsufficientMBacking",
289
+ "type": "error"
290
+ },
291
+ {
292
+ "inputs": [
293
+ {
294
+ "internalType": "uint256",
295
+ "name": "nonce",
296
+ "type": "uint256"
297
+ },
298
+ {
299
+ "internalType": "uint256",
300
+ "name": "expectedNonce",
301
+ "type": "uint256"
302
+ }
303
+ ],
304
+ "name": "InvalidAccountNonce",
305
+ "type": "error"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "address",
311
+ "name": "asset",
312
+ "type": "address"
313
+ }
314
+ ],
315
+ "name": "InvalidAsset",
316
+ "type": "error"
317
+ },
318
+ {
319
+ "inputs": [],
320
+ "name": "InvalidInitialization",
321
+ "type": "error"
322
+ },
323
+ {
324
+ "inputs": [
325
+ {
326
+ "internalType": "address",
327
+ "name": "recipient",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "name": "InvalidRecipient",
332
+ "type": "error"
333
+ },
334
+ {
335
+ "inputs": [],
336
+ "name": "InvalidSignature",
337
+ "type": "error"
338
+ },
339
+ {
340
+ "inputs": [],
341
+ "name": "InvalidSignatureLength",
342
+ "type": "error"
343
+ },
344
+ {
345
+ "inputs": [],
346
+ "name": "InvalidSignatureS",
347
+ "type": "error"
348
+ },
349
+ {
350
+ "inputs": [],
351
+ "name": "InvalidSignatureV",
352
+ "type": "error"
353
+ },
354
+ {
355
+ "inputs": [],
356
+ "name": "InvalidUInt240",
357
+ "type": "error"
358
+ },
359
+ {
360
+ "inputs": [],
361
+ "name": "NotInitializing",
362
+ "type": "error"
363
+ },
364
+ {
365
+ "inputs": [],
366
+ "name": "NotSwapFacility",
367
+ "type": "error"
368
+ },
369
+ {
370
+ "inputs": [
371
+ {
372
+ "internalType": "address",
373
+ "name": "token",
374
+ "type": "address"
375
+ }
376
+ ],
377
+ "name": "SafeERC20FailedOperation",
378
+ "type": "error"
379
+ },
380
+ {
381
+ "inputs": [
382
+ {
383
+ "internalType": "uint256",
384
+ "name": "deadline",
385
+ "type": "uint256"
386
+ },
387
+ {
388
+ "internalType": "uint256",
389
+ "name": "timestamp",
390
+ "type": "uint256"
391
+ }
392
+ ],
393
+ "name": "SignatureExpired",
394
+ "type": "error"
395
+ },
396
+ {
397
+ "inputs": [],
398
+ "name": "SignerMismatch",
399
+ "type": "error"
400
+ },
401
+ {
402
+ "inputs": [],
403
+ "name": "ZeroAdmin",
404
+ "type": "error"
405
+ },
406
+ {
407
+ "inputs": [],
408
+ "name": "ZeroAssetCapManager",
409
+ "type": "error"
410
+ },
411
+ {
412
+ "inputs": [],
413
+ "name": "ZeroForcedTransferManager",
414
+ "type": "error"
415
+ },
416
+ {
417
+ "inputs": [],
418
+ "name": "ZeroFreezeManager",
419
+ "type": "error"
420
+ },
421
+ {
422
+ "inputs": [],
423
+ "name": "ZeroMToken",
424
+ "type": "error"
425
+ },
426
+ {
427
+ "inputs": [],
428
+ "name": "ZeroPauser",
429
+ "type": "error"
430
+ },
431
+ {
432
+ "inputs": [],
433
+ "name": "ZeroSwapFacility",
434
+ "type": "error"
435
+ },
436
+ {
437
+ "inputs": [],
438
+ "name": "ZeroYieldRecipient",
439
+ "type": "error"
440
+ },
441
+ {
442
+ "inputs": [],
443
+ "name": "ZeroYieldRecipientManager",
444
+ "type": "error"
445
+ },
446
+ {
447
+ "anonymous": false,
448
+ "inputs": [
449
+ {
450
+ "indexed": true,
451
+ "internalType": "address",
452
+ "name": "account",
453
+ "type": "address"
454
+ },
455
+ {
456
+ "indexed": true,
457
+ "internalType": "address",
458
+ "name": "spender",
459
+ "type": "address"
460
+ },
461
+ {
462
+ "indexed": false,
463
+ "internalType": "uint256",
464
+ "name": "amount",
465
+ "type": "uint256"
466
+ }
467
+ ],
468
+ "name": "Approval",
469
+ "type": "event"
470
+ },
471
+ {
472
+ "anonymous": false,
473
+ "inputs": [
474
+ {
475
+ "indexed": true,
476
+ "internalType": "address",
477
+ "name": "asset",
478
+ "type": "address"
479
+ },
480
+ {
481
+ "indexed": false,
482
+ "internalType": "uint256",
483
+ "name": "cap",
484
+ "type": "uint256"
485
+ }
486
+ ],
487
+ "name": "AssetCapSet",
488
+ "type": "event"
489
+ },
490
+ {
491
+ "anonymous": false,
492
+ "inputs": [
493
+ {
494
+ "indexed": true,
495
+ "internalType": "address",
496
+ "name": "asset",
497
+ "type": "address"
498
+ },
499
+ {
500
+ "indexed": false,
501
+ "internalType": "uint256",
502
+ "name": "assetAmount",
503
+ "type": "uint256"
504
+ },
505
+ {
506
+ "indexed": true,
507
+ "internalType": "address",
508
+ "name": "recipient",
509
+ "type": "address"
510
+ },
511
+ {
512
+ "indexed": false,
513
+ "internalType": "uint256",
514
+ "name": "mAmount",
515
+ "type": "uint256"
516
+ }
517
+ ],
518
+ "name": "AssetReplacedWithM",
519
+ "type": "event"
520
+ },
521
+ {
522
+ "anonymous": false,
523
+ "inputs": [
524
+ {
525
+ "indexed": true,
526
+ "internalType": "address",
527
+ "name": "authorizer",
528
+ "type": "address"
529
+ },
530
+ {
531
+ "indexed": true,
532
+ "internalType": "bytes32",
533
+ "name": "nonce",
534
+ "type": "bytes32"
535
+ }
536
+ ],
537
+ "name": "AuthorizationCanceled",
538
+ "type": "event"
539
+ },
540
+ {
541
+ "anonymous": false,
542
+ "inputs": [
543
+ {
544
+ "indexed": true,
545
+ "internalType": "address",
546
+ "name": "authorizer",
547
+ "type": "address"
548
+ },
549
+ {
550
+ "indexed": true,
551
+ "internalType": "bytes32",
552
+ "name": "nonce",
553
+ "type": "bytes32"
554
+ }
555
+ ],
556
+ "name": "AuthorizationUsed",
557
+ "type": "event"
558
+ },
559
+ {
560
+ "anonymous": false,
561
+ "inputs": [],
562
+ "name": "EIP712DomainChanged",
563
+ "type": "event"
564
+ },
565
+ {
566
+ "anonymous": false,
567
+ "inputs": [
568
+ {
569
+ "indexed": false,
570
+ "internalType": "uint128",
571
+ "name": "index",
572
+ "type": "uint128"
573
+ }
574
+ ],
575
+ "name": "EarningDisabled",
576
+ "type": "event"
577
+ },
578
+ {
579
+ "anonymous": false,
580
+ "inputs": [
581
+ {
582
+ "indexed": false,
583
+ "internalType": "uint128",
584
+ "name": "index",
585
+ "type": "uint128"
586
+ }
587
+ ],
588
+ "name": "EarningEnabled",
589
+ "type": "event"
590
+ },
591
+ {
592
+ "anonymous": false,
593
+ "inputs": [
594
+ {
595
+ "indexed": true,
596
+ "internalType": "address",
597
+ "name": "frozenAccount",
598
+ "type": "address"
599
+ },
600
+ {
601
+ "indexed": true,
602
+ "internalType": "address",
603
+ "name": "recipient",
604
+ "type": "address"
605
+ },
606
+ {
607
+ "indexed": true,
608
+ "internalType": "address",
609
+ "name": "forcedTransferManager",
610
+ "type": "address"
611
+ },
612
+ {
613
+ "indexed": false,
614
+ "internalType": "uint256",
615
+ "name": "amount",
616
+ "type": "uint256"
617
+ }
618
+ ],
619
+ "name": "ForcedTransfer",
620
+ "type": "event"
621
+ },
622
+ {
623
+ "anonymous": false,
624
+ "inputs": [
625
+ {
626
+ "indexed": true,
627
+ "internalType": "address",
628
+ "name": "account",
629
+ "type": "address"
630
+ },
631
+ {
632
+ "indexed": false,
633
+ "internalType": "uint256",
634
+ "name": "timestamp",
635
+ "type": "uint256"
636
+ }
637
+ ],
638
+ "name": "Frozen",
639
+ "type": "event"
640
+ },
641
+ {
642
+ "anonymous": false,
643
+ "inputs": [
644
+ {
645
+ "indexed": false,
646
+ "internalType": "uint64",
647
+ "name": "version",
648
+ "type": "uint64"
649
+ }
650
+ ],
651
+ "name": "Initialized",
652
+ "type": "event"
653
+ },
654
+ {
655
+ "anonymous": false,
656
+ "inputs": [
657
+ {
658
+ "indexed": false,
659
+ "internalType": "address",
660
+ "name": "account",
661
+ "type": "address"
662
+ }
663
+ ],
664
+ "name": "Paused",
665
+ "type": "event"
666
+ },
667
+ {
668
+ "anonymous": false,
669
+ "inputs": [
670
+ {
671
+ "indexed": true,
672
+ "internalType": "address",
673
+ "name": "account",
674
+ "type": "address"
675
+ },
676
+ {
677
+ "indexed": false,
678
+ "internalType": "uint256",
679
+ "name": "timestamp",
680
+ "type": "uint256"
681
+ }
682
+ ],
683
+ "name": "RemovedFromWhitelist",
684
+ "type": "event"
685
+ },
686
+ {
687
+ "anonymous": false,
688
+ "inputs": [
689
+ {
690
+ "indexed": true,
691
+ "internalType": "bytes32",
692
+ "name": "role",
693
+ "type": "bytes32"
694
+ },
695
+ {
696
+ "indexed": true,
697
+ "internalType": "bytes32",
698
+ "name": "previousAdminRole",
699
+ "type": "bytes32"
700
+ },
701
+ {
702
+ "indexed": true,
703
+ "internalType": "bytes32",
704
+ "name": "newAdminRole",
705
+ "type": "bytes32"
706
+ }
707
+ ],
708
+ "name": "RoleAdminChanged",
709
+ "type": "event"
710
+ },
711
+ {
712
+ "anonymous": false,
713
+ "inputs": [
714
+ {
715
+ "indexed": true,
716
+ "internalType": "bytes32",
717
+ "name": "role",
718
+ "type": "bytes32"
719
+ },
720
+ {
721
+ "indexed": true,
722
+ "internalType": "address",
723
+ "name": "account",
724
+ "type": "address"
725
+ },
726
+ {
727
+ "indexed": true,
728
+ "internalType": "address",
729
+ "name": "sender",
730
+ "type": "address"
731
+ }
732
+ ],
733
+ "name": "RoleGranted",
734
+ "type": "event"
735
+ },
736
+ {
737
+ "anonymous": false,
738
+ "inputs": [
739
+ {
740
+ "indexed": true,
741
+ "internalType": "bytes32",
742
+ "name": "role",
743
+ "type": "bytes32"
744
+ },
745
+ {
746
+ "indexed": true,
747
+ "internalType": "address",
748
+ "name": "account",
749
+ "type": "address"
750
+ },
751
+ {
752
+ "indexed": true,
753
+ "internalType": "address",
754
+ "name": "sender",
755
+ "type": "address"
756
+ }
757
+ ],
758
+ "name": "RoleRevoked",
759
+ "type": "event"
760
+ },
761
+ {
762
+ "anonymous": false,
763
+ "inputs": [
764
+ {
765
+ "indexed": true,
766
+ "internalType": "address",
767
+ "name": "sender",
768
+ "type": "address"
769
+ },
770
+ {
771
+ "indexed": true,
772
+ "internalType": "address",
773
+ "name": "recipient",
774
+ "type": "address"
775
+ },
776
+ {
777
+ "indexed": false,
778
+ "internalType": "uint256",
779
+ "name": "amount",
780
+ "type": "uint256"
781
+ }
782
+ ],
783
+ "name": "Transfer",
784
+ "type": "event"
785
+ },
786
+ {
787
+ "anonymous": false,
788
+ "inputs": [
789
+ {
790
+ "indexed": true,
791
+ "internalType": "address",
792
+ "name": "account",
793
+ "type": "address"
794
+ },
795
+ {
796
+ "indexed": false,
797
+ "internalType": "uint256",
798
+ "name": "timestamp",
799
+ "type": "uint256"
800
+ }
801
+ ],
802
+ "name": "Unfrozen",
803
+ "type": "event"
804
+ },
805
+ {
806
+ "anonymous": false,
807
+ "inputs": [
808
+ {
809
+ "indexed": false,
810
+ "internalType": "address",
811
+ "name": "account",
812
+ "type": "address"
813
+ }
814
+ ],
815
+ "name": "Unpaused",
816
+ "type": "event"
817
+ },
818
+ {
819
+ "anonymous": false,
820
+ "inputs": [
821
+ {
822
+ "indexed": false,
823
+ "internalType": "uint256",
824
+ "name": "timestamp",
825
+ "type": "uint256"
826
+ }
827
+ ],
828
+ "name": "WhitelistDisabled",
829
+ "type": "event"
830
+ },
831
+ {
832
+ "anonymous": false,
833
+ "inputs": [
834
+ {
835
+ "indexed": false,
836
+ "internalType": "uint256",
837
+ "name": "timestamp",
838
+ "type": "uint256"
839
+ }
840
+ ],
841
+ "name": "WhitelistEnabled",
842
+ "type": "event"
843
+ },
844
+ {
845
+ "anonymous": false,
846
+ "inputs": [
847
+ {
848
+ "indexed": true,
849
+ "internalType": "address",
850
+ "name": "account",
851
+ "type": "address"
852
+ },
853
+ {
854
+ "indexed": false,
855
+ "internalType": "uint256",
856
+ "name": "timestamp",
857
+ "type": "uint256"
858
+ }
859
+ ],
860
+ "name": "Whitelisted",
861
+ "type": "event"
862
+ },
863
+ {
864
+ "anonymous": false,
865
+ "inputs": [
866
+ {
867
+ "indexed": false,
868
+ "internalType": "uint256",
869
+ "name": "yield",
870
+ "type": "uint256"
871
+ }
872
+ ],
873
+ "name": "YieldClaimed",
874
+ "type": "event"
875
+ },
876
+ {
877
+ "anonymous": false,
878
+ "inputs": [
879
+ {
880
+ "indexed": true,
881
+ "internalType": "address",
882
+ "name": "yieldRecipient",
883
+ "type": "address"
884
+ }
885
+ ],
886
+ "name": "YieldRecipientSet",
887
+ "type": "event"
888
+ },
889
+ {
890
+ "inputs": [],
891
+ "name": "ASSET_CAP_MANAGER_ROLE",
892
+ "outputs": [
893
+ {
894
+ "internalType": "bytes32",
895
+ "name": "",
896
+ "type": "bytes32"
897
+ }
898
+ ],
899
+ "stateMutability": "view",
900
+ "type": "function"
901
+ },
902
+ {
903
+ "inputs": [],
904
+ "name": "CANCEL_AUTHORIZATION_TYPEHASH",
905
+ "outputs": [
906
+ {
907
+ "internalType": "bytes32",
908
+ "name": "",
909
+ "type": "bytes32"
910
+ }
911
+ ],
912
+ "stateMutability": "view",
913
+ "type": "function"
914
+ },
915
+ {
916
+ "inputs": [],
917
+ "name": "DEFAULT_ADMIN_ROLE",
918
+ "outputs": [
919
+ {
920
+ "internalType": "bytes32",
921
+ "name": "",
922
+ "type": "bytes32"
923
+ }
924
+ ],
925
+ "stateMutability": "view",
926
+ "type": "function"
927
+ },
928
+ {
929
+ "inputs": [],
930
+ "name": "DOMAIN_SEPARATOR",
931
+ "outputs": [
932
+ {
933
+ "internalType": "bytes32",
934
+ "name": "",
935
+ "type": "bytes32"
936
+ }
937
+ ],
938
+ "stateMutability": "view",
939
+ "type": "function"
940
+ },
941
+ {
942
+ "inputs": [],
943
+ "name": "FORCED_TRANSFER_MANAGER_ROLE",
944
+ "outputs": [
945
+ {
946
+ "internalType": "bytes32",
947
+ "name": "",
948
+ "type": "bytes32"
949
+ }
950
+ ],
951
+ "stateMutability": "view",
952
+ "type": "function"
953
+ },
954
+ {
955
+ "inputs": [],
956
+ "name": "FREEZE_MANAGER_ROLE",
957
+ "outputs": [
958
+ {
959
+ "internalType": "bytes32",
960
+ "name": "",
961
+ "type": "bytes32"
962
+ }
963
+ ],
964
+ "stateMutability": "view",
965
+ "type": "function"
966
+ },
967
+ {
968
+ "inputs": [],
969
+ "name": "M_DECIMALS",
970
+ "outputs": [
971
+ {
972
+ "internalType": "uint8",
973
+ "name": "",
974
+ "type": "uint8"
975
+ }
976
+ ],
977
+ "stateMutability": "view",
978
+ "type": "function"
979
+ },
980
+ {
981
+ "inputs": [],
982
+ "name": "PAUSER_ROLE",
983
+ "outputs": [
984
+ {
985
+ "internalType": "bytes32",
986
+ "name": "",
987
+ "type": "bytes32"
988
+ }
989
+ ],
990
+ "stateMutability": "view",
991
+ "type": "function"
992
+ },
993
+ {
994
+ "inputs": [],
995
+ "name": "PERMIT_TYPEHASH",
996
+ "outputs": [
997
+ {
998
+ "internalType": "bytes32",
999
+ "name": "",
1000
+ "type": "bytes32"
1001
+ }
1002
+ ],
1003
+ "stateMutability": "view",
1004
+ "type": "function"
1005
+ },
1006
+ {
1007
+ "inputs": [],
1008
+ "name": "RECEIVE_WITH_AUTHORIZATION_TYPEHASH",
1009
+ "outputs": [
1010
+ {
1011
+ "internalType": "bytes32",
1012
+ "name": "",
1013
+ "type": "bytes32"
1014
+ }
1015
+ ],
1016
+ "stateMutability": "view",
1017
+ "type": "function"
1018
+ },
1019
+ {
1020
+ "inputs": [],
1021
+ "name": "TRANSFER_WITH_AUTHORIZATION_TYPEHASH",
1022
+ "outputs": [
1023
+ {
1024
+ "internalType": "bytes32",
1025
+ "name": "",
1026
+ "type": "bytes32"
1027
+ }
1028
+ ],
1029
+ "stateMutability": "view",
1030
+ "type": "function"
1031
+ },
1032
+ {
1033
+ "inputs": [],
1034
+ "name": "WHITELIST_MANAGER_ROLE",
1035
+ "outputs": [
1036
+ {
1037
+ "internalType": "bytes32",
1038
+ "name": "",
1039
+ "type": "bytes32"
1040
+ }
1041
+ ],
1042
+ "stateMutability": "view",
1043
+ "type": "function"
1044
+ },
1045
+ {
1046
+ "inputs": [],
1047
+ "name": "YIELD_RECIPIENT_MANAGER_ROLE",
1048
+ "outputs": [
1049
+ {
1050
+ "internalType": "bytes32",
1051
+ "name": "",
1052
+ "type": "bytes32"
1053
+ }
1054
+ ],
1055
+ "stateMutability": "view",
1056
+ "type": "function"
1057
+ },
1058
+ {
1059
+ "inputs": [
1060
+ {
1061
+ "internalType": "address",
1062
+ "name": "account",
1063
+ "type": "address"
1064
+ },
1065
+ {
1066
+ "internalType": "address",
1067
+ "name": "spender",
1068
+ "type": "address"
1069
+ }
1070
+ ],
1071
+ "name": "allowance",
1072
+ "outputs": [
1073
+ {
1074
+ "internalType": "uint256",
1075
+ "name": "",
1076
+ "type": "uint256"
1077
+ }
1078
+ ],
1079
+ "stateMutability": "view",
1080
+ "type": "function"
1081
+ },
1082
+ {
1083
+ "inputs": [
1084
+ {
1085
+ "internalType": "address",
1086
+ "name": "spender_",
1087
+ "type": "address"
1088
+ },
1089
+ {
1090
+ "internalType": "uint256",
1091
+ "name": "amount_",
1092
+ "type": "uint256"
1093
+ }
1094
+ ],
1095
+ "name": "approve",
1096
+ "outputs": [
1097
+ {
1098
+ "internalType": "bool",
1099
+ "name": "",
1100
+ "type": "bool"
1101
+ }
1102
+ ],
1103
+ "stateMutability": "nonpayable",
1104
+ "type": "function"
1105
+ },
1106
+ {
1107
+ "inputs": [
1108
+ {
1109
+ "internalType": "address",
1110
+ "name": "asset",
1111
+ "type": "address"
1112
+ }
1113
+ ],
1114
+ "name": "assetBalanceOf",
1115
+ "outputs": [
1116
+ {
1117
+ "internalType": "uint256",
1118
+ "name": "",
1119
+ "type": "uint256"
1120
+ }
1121
+ ],
1122
+ "stateMutability": "view",
1123
+ "type": "function"
1124
+ },
1125
+ {
1126
+ "inputs": [
1127
+ {
1128
+ "internalType": "address",
1129
+ "name": "asset",
1130
+ "type": "address"
1131
+ }
1132
+ ],
1133
+ "name": "assetCap",
1134
+ "outputs": [
1135
+ {
1136
+ "internalType": "uint256",
1137
+ "name": "",
1138
+ "type": "uint256"
1139
+ }
1140
+ ],
1141
+ "stateMutability": "view",
1142
+ "type": "function"
1143
+ },
1144
+ {
1145
+ "inputs": [
1146
+ {
1147
+ "internalType": "address",
1148
+ "name": "asset",
1149
+ "type": "address"
1150
+ }
1151
+ ],
1152
+ "name": "assetDecimals",
1153
+ "outputs": [
1154
+ {
1155
+ "internalType": "uint8",
1156
+ "name": "",
1157
+ "type": "uint8"
1158
+ }
1159
+ ],
1160
+ "stateMutability": "view",
1161
+ "type": "function"
1162
+ },
1163
+ {
1164
+ "inputs": [
1165
+ {
1166
+ "internalType": "address",
1167
+ "name": "authorizer",
1168
+ "type": "address"
1169
+ },
1170
+ {
1171
+ "internalType": "bytes32",
1172
+ "name": "nonce",
1173
+ "type": "bytes32"
1174
+ }
1175
+ ],
1176
+ "name": "authorizationState",
1177
+ "outputs": [
1178
+ {
1179
+ "internalType": "bool",
1180
+ "name": "",
1181
+ "type": "bool"
1182
+ }
1183
+ ],
1184
+ "stateMutability": "view",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [
1189
+ {
1190
+ "internalType": "address",
1191
+ "name": "account",
1192
+ "type": "address"
1193
+ }
1194
+ ],
1195
+ "name": "balanceOf",
1196
+ "outputs": [
1197
+ {
1198
+ "internalType": "uint256",
1199
+ "name": "",
1200
+ "type": "uint256"
1201
+ }
1202
+ ],
1203
+ "stateMutability": "view",
1204
+ "type": "function"
1205
+ },
1206
+ {
1207
+ "inputs": [
1208
+ {
1209
+ "internalType": "address",
1210
+ "name": "authorizer_",
1211
+ "type": "address"
1212
+ },
1213
+ {
1214
+ "internalType": "bytes32",
1215
+ "name": "nonce_",
1216
+ "type": "bytes32"
1217
+ },
1218
+ {
1219
+ "internalType": "bytes32",
1220
+ "name": "r_",
1221
+ "type": "bytes32"
1222
+ },
1223
+ {
1224
+ "internalType": "bytes32",
1225
+ "name": "vs_",
1226
+ "type": "bytes32"
1227
+ }
1228
+ ],
1229
+ "name": "cancelAuthorization",
1230
+ "outputs": [],
1231
+ "stateMutability": "nonpayable",
1232
+ "type": "function"
1233
+ },
1234
+ {
1235
+ "inputs": [
1236
+ {
1237
+ "internalType": "address",
1238
+ "name": "authorizer_",
1239
+ "type": "address"
1240
+ },
1241
+ {
1242
+ "internalType": "bytes32",
1243
+ "name": "nonce_",
1244
+ "type": "bytes32"
1245
+ },
1246
+ {
1247
+ "internalType": "uint8",
1248
+ "name": "v_",
1249
+ "type": "uint8"
1250
+ },
1251
+ {
1252
+ "internalType": "bytes32",
1253
+ "name": "r_",
1254
+ "type": "bytes32"
1255
+ },
1256
+ {
1257
+ "internalType": "bytes32",
1258
+ "name": "s_",
1259
+ "type": "bytes32"
1260
+ }
1261
+ ],
1262
+ "name": "cancelAuthorization",
1263
+ "outputs": [],
1264
+ "stateMutability": "nonpayable",
1265
+ "type": "function"
1266
+ },
1267
+ {
1268
+ "inputs": [
1269
+ {
1270
+ "internalType": "address",
1271
+ "name": "authorizer_",
1272
+ "type": "address"
1273
+ },
1274
+ {
1275
+ "internalType": "bytes32",
1276
+ "name": "nonce_",
1277
+ "type": "bytes32"
1278
+ },
1279
+ {
1280
+ "internalType": "bytes",
1281
+ "name": "signature_",
1282
+ "type": "bytes"
1283
+ }
1284
+ ],
1285
+ "name": "cancelAuthorization",
1286
+ "outputs": [],
1287
+ "stateMutability": "nonpayable",
1288
+ "type": "function"
1289
+ },
1290
+ {
1291
+ "inputs": [],
1292
+ "name": "claimYield",
1293
+ "outputs": [
1294
+ {
1295
+ "internalType": "uint256",
1296
+ "name": "",
1297
+ "type": "uint256"
1298
+ }
1299
+ ],
1300
+ "stateMutability": "nonpayable",
1301
+ "type": "function"
1302
+ },
1303
+ {
1304
+ "inputs": [],
1305
+ "name": "currentIndex",
1306
+ "outputs": [
1307
+ {
1308
+ "internalType": "uint128",
1309
+ "name": "",
1310
+ "type": "uint128"
1311
+ }
1312
+ ],
1313
+ "stateMutability": "view",
1314
+ "type": "function"
1315
+ },
1316
+ {
1317
+ "inputs": [],
1318
+ "name": "decimals",
1319
+ "outputs": [
1320
+ {
1321
+ "internalType": "uint8",
1322
+ "name": "",
1323
+ "type": "uint8"
1324
+ }
1325
+ ],
1326
+ "stateMutability": "view",
1327
+ "type": "function"
1328
+ },
1329
+ {
1330
+ "inputs": [],
1331
+ "name": "disableEarning",
1332
+ "outputs": [],
1333
+ "stateMutability": "nonpayable",
1334
+ "type": "function"
1335
+ },
1336
+ {
1337
+ "inputs": [],
1338
+ "name": "disableWhitelist",
1339
+ "outputs": [],
1340
+ "stateMutability": "nonpayable",
1341
+ "type": "function"
1342
+ },
1343
+ {
1344
+ "inputs": [],
1345
+ "name": "eip712Domain",
1346
+ "outputs": [
1347
+ {
1348
+ "internalType": "bytes1",
1349
+ "name": "fields_",
1350
+ "type": "bytes1"
1351
+ },
1352
+ {
1353
+ "internalType": "string",
1354
+ "name": "name_",
1355
+ "type": "string"
1356
+ },
1357
+ {
1358
+ "internalType": "string",
1359
+ "name": "version_",
1360
+ "type": "string"
1361
+ },
1362
+ {
1363
+ "internalType": "uint256",
1364
+ "name": "chainId_",
1365
+ "type": "uint256"
1366
+ },
1367
+ {
1368
+ "internalType": "address",
1369
+ "name": "verifyingContract_",
1370
+ "type": "address"
1371
+ },
1372
+ {
1373
+ "internalType": "bytes32",
1374
+ "name": "salt_",
1375
+ "type": "bytes32"
1376
+ },
1377
+ {
1378
+ "internalType": "uint256[]",
1379
+ "name": "extensions_",
1380
+ "type": "uint256[]"
1381
+ }
1382
+ ],
1383
+ "stateMutability": "view",
1384
+ "type": "function"
1385
+ },
1386
+ {
1387
+ "inputs": [],
1388
+ "name": "enableEarning",
1389
+ "outputs": [],
1390
+ "stateMutability": "nonpayable",
1391
+ "type": "function"
1392
+ },
1393
+ {
1394
+ "inputs": [],
1395
+ "name": "enableWhitelist",
1396
+ "outputs": [],
1397
+ "stateMutability": "nonpayable",
1398
+ "type": "function"
1399
+ },
1400
+ {
1401
+ "inputs": [
1402
+ {
1403
+ "internalType": "address",
1404
+ "name": "frozenAccount",
1405
+ "type": "address"
1406
+ },
1407
+ {
1408
+ "internalType": "address",
1409
+ "name": "recipient",
1410
+ "type": "address"
1411
+ },
1412
+ {
1413
+ "internalType": "uint256",
1414
+ "name": "amount",
1415
+ "type": "uint256"
1416
+ }
1417
+ ],
1418
+ "name": "forceTransfer",
1419
+ "outputs": [],
1420
+ "stateMutability": "nonpayable",
1421
+ "type": "function"
1422
+ },
1423
+ {
1424
+ "inputs": [
1425
+ {
1426
+ "internalType": "address[]",
1427
+ "name": "frozenAccounts",
1428
+ "type": "address[]"
1429
+ },
1430
+ {
1431
+ "internalType": "address[]",
1432
+ "name": "recipients",
1433
+ "type": "address[]"
1434
+ },
1435
+ {
1436
+ "internalType": "uint256[]",
1437
+ "name": "amounts",
1438
+ "type": "uint256[]"
1439
+ }
1440
+ ],
1441
+ "name": "forceTransfers",
1442
+ "outputs": [],
1443
+ "stateMutability": "nonpayable",
1444
+ "type": "function"
1445
+ },
1446
+ {
1447
+ "inputs": [
1448
+ {
1449
+ "internalType": "address",
1450
+ "name": "account",
1451
+ "type": "address"
1452
+ }
1453
+ ],
1454
+ "name": "freeze",
1455
+ "outputs": [],
1456
+ "stateMutability": "nonpayable",
1457
+ "type": "function"
1458
+ },
1459
+ {
1460
+ "inputs": [
1461
+ {
1462
+ "internalType": "address[]",
1463
+ "name": "accounts",
1464
+ "type": "address[]"
1465
+ }
1466
+ ],
1467
+ "name": "freezeAccounts",
1468
+ "outputs": [],
1469
+ "stateMutability": "nonpayable",
1470
+ "type": "function"
1471
+ },
1472
+ {
1473
+ "inputs": [
1474
+ {
1475
+ "internalType": "bytes32",
1476
+ "name": "role",
1477
+ "type": "bytes32"
1478
+ }
1479
+ ],
1480
+ "name": "getRoleAdmin",
1481
+ "outputs": [
1482
+ {
1483
+ "internalType": "bytes32",
1484
+ "name": "",
1485
+ "type": "bytes32"
1486
+ }
1487
+ ],
1488
+ "stateMutability": "view",
1489
+ "type": "function"
1490
+ },
1491
+ {
1492
+ "inputs": [
1493
+ {
1494
+ "internalType": "bytes32",
1495
+ "name": "role",
1496
+ "type": "bytes32"
1497
+ },
1498
+ {
1499
+ "internalType": "address",
1500
+ "name": "account",
1501
+ "type": "address"
1502
+ }
1503
+ ],
1504
+ "name": "grantRole",
1505
+ "outputs": [],
1506
+ "stateMutability": "nonpayable",
1507
+ "type": "function"
1508
+ },
1509
+ {
1510
+ "inputs": [
1511
+ {
1512
+ "internalType": "bytes32",
1513
+ "name": "role",
1514
+ "type": "bytes32"
1515
+ },
1516
+ {
1517
+ "internalType": "address",
1518
+ "name": "account",
1519
+ "type": "address"
1520
+ }
1521
+ ],
1522
+ "name": "hasRole",
1523
+ "outputs": [
1524
+ {
1525
+ "internalType": "bool",
1526
+ "name": "",
1527
+ "type": "bool"
1528
+ }
1529
+ ],
1530
+ "stateMutability": "view",
1531
+ "type": "function"
1532
+ },
1533
+ {
1534
+ "inputs": [
1535
+ {
1536
+ "internalType": "string",
1537
+ "name": "name",
1538
+ "type": "string"
1539
+ },
1540
+ {
1541
+ "internalType": "string",
1542
+ "name": "symbol",
1543
+ "type": "string"
1544
+ },
1545
+ {
1546
+ "internalType": "address",
1547
+ "name": "yieldRecipient",
1548
+ "type": "address"
1549
+ },
1550
+ {
1551
+ "internalType": "address",
1552
+ "name": "admin",
1553
+ "type": "address"
1554
+ },
1555
+ {
1556
+ "internalType": "address",
1557
+ "name": "assetCapManager",
1558
+ "type": "address"
1559
+ },
1560
+ {
1561
+ "internalType": "address",
1562
+ "name": "freezeManager",
1563
+ "type": "address"
1564
+ },
1565
+ {
1566
+ "internalType": "address",
1567
+ "name": "pauser",
1568
+ "type": "address"
1569
+ },
1570
+ {
1571
+ "internalType": "address",
1572
+ "name": "yieldRecipientManager",
1573
+ "type": "address"
1574
+ }
1575
+ ],
1576
+ "name": "initialize",
1577
+ "outputs": [],
1578
+ "stateMutability": "nonpayable",
1579
+ "type": "function"
1580
+ },
1581
+ {
1582
+ "inputs": [
1583
+ {
1584
+ "internalType": "string",
1585
+ "name": "name",
1586
+ "type": "string"
1587
+ },
1588
+ {
1589
+ "internalType": "string",
1590
+ "name": "symbol",
1591
+ "type": "string"
1592
+ },
1593
+ {
1594
+ "internalType": "address",
1595
+ "name": "yieldRecipient_",
1596
+ "type": "address"
1597
+ },
1598
+ {
1599
+ "internalType": "address",
1600
+ "name": "admin",
1601
+ "type": "address"
1602
+ },
1603
+ {
1604
+ "internalType": "address",
1605
+ "name": "freezeManager",
1606
+ "type": "address"
1607
+ },
1608
+ {
1609
+ "internalType": "address",
1610
+ "name": "yieldRecipientManager",
1611
+ "type": "address"
1612
+ },
1613
+ {
1614
+ "internalType": "address",
1615
+ "name": "pauser",
1616
+ "type": "address"
1617
+ }
1618
+ ],
1619
+ "name": "initialize",
1620
+ "outputs": [],
1621
+ "stateMutability": "nonpayable",
1622
+ "type": "function"
1623
+ },
1624
+ {
1625
+ "inputs": [
1626
+ {
1627
+ "internalType": "address",
1628
+ "name": "yieldRecipient",
1629
+ "type": "address"
1630
+ },
1631
+ {
1632
+ "internalType": "address",
1633
+ "name": "admin",
1634
+ "type": "address"
1635
+ },
1636
+ {
1637
+ "internalType": "address",
1638
+ "name": "compliance",
1639
+ "type": "address"
1640
+ },
1641
+ {
1642
+ "internalType": "address",
1643
+ "name": "processor",
1644
+ "type": "address"
1645
+ }
1646
+ ],
1647
+ "name": "initialize",
1648
+ "outputs": [],
1649
+ "stateMutability": "nonpayable",
1650
+ "type": "function"
1651
+ },
1652
+ {
1653
+ "inputs": [
1654
+ {
1655
+ "internalType": "address",
1656
+ "name": "asset",
1657
+ "type": "address"
1658
+ }
1659
+ ],
1660
+ "name": "isAllowedAsset",
1661
+ "outputs": [
1662
+ {
1663
+ "internalType": "bool",
1664
+ "name": "",
1665
+ "type": "bool"
1666
+ }
1667
+ ],
1668
+ "stateMutability": "view",
1669
+ "type": "function"
1670
+ },
1671
+ {
1672
+ "inputs": [
1673
+ {
1674
+ "internalType": "address",
1675
+ "name": "asset",
1676
+ "type": "address"
1677
+ },
1678
+ {
1679
+ "internalType": "uint256",
1680
+ "name": "amount",
1681
+ "type": "uint256"
1682
+ }
1683
+ ],
1684
+ "name": "isAllowedToReplaceAssetWithM",
1685
+ "outputs": [
1686
+ {
1687
+ "internalType": "bool",
1688
+ "name": "",
1689
+ "type": "bool"
1690
+ }
1691
+ ],
1692
+ "stateMutability": "view",
1693
+ "type": "function"
1694
+ },
1695
+ {
1696
+ "inputs": [
1697
+ {
1698
+ "internalType": "uint256",
1699
+ "name": "amount",
1700
+ "type": "uint256"
1701
+ }
1702
+ ],
1703
+ "name": "isAllowedToUnwrap",
1704
+ "outputs": [
1705
+ {
1706
+ "internalType": "bool",
1707
+ "name": "",
1708
+ "type": "bool"
1709
+ }
1710
+ ],
1711
+ "stateMutability": "view",
1712
+ "type": "function"
1713
+ },
1714
+ {
1715
+ "inputs": [
1716
+ {
1717
+ "internalType": "address",
1718
+ "name": "asset",
1719
+ "type": "address"
1720
+ },
1721
+ {
1722
+ "internalType": "uint256",
1723
+ "name": "amount",
1724
+ "type": "uint256"
1725
+ }
1726
+ ],
1727
+ "name": "isAllowedToWrap",
1728
+ "outputs": [
1729
+ {
1730
+ "internalType": "bool",
1731
+ "name": "",
1732
+ "type": "bool"
1733
+ }
1734
+ ],
1735
+ "stateMutability": "view",
1736
+ "type": "function"
1737
+ },
1738
+ {
1739
+ "inputs": [],
1740
+ "name": "isEarningEnabled",
1741
+ "outputs": [
1742
+ {
1743
+ "internalType": "bool",
1744
+ "name": "",
1745
+ "type": "bool"
1746
+ }
1747
+ ],
1748
+ "stateMutability": "view",
1749
+ "type": "function"
1750
+ },
1751
+ {
1752
+ "inputs": [
1753
+ {
1754
+ "internalType": "address",
1755
+ "name": "account",
1756
+ "type": "address"
1757
+ }
1758
+ ],
1759
+ "name": "isFrozen",
1760
+ "outputs": [
1761
+ {
1762
+ "internalType": "bool",
1763
+ "name": "",
1764
+ "type": "bool"
1765
+ }
1766
+ ],
1767
+ "stateMutability": "view",
1768
+ "type": "function"
1769
+ },
1770
+ {
1771
+ "inputs": [],
1772
+ "name": "isWhitelistEnabled",
1773
+ "outputs": [
1774
+ {
1775
+ "internalType": "bool",
1776
+ "name": "",
1777
+ "type": "bool"
1778
+ }
1779
+ ],
1780
+ "stateMutability": "view",
1781
+ "type": "function"
1782
+ },
1783
+ {
1784
+ "inputs": [
1785
+ {
1786
+ "internalType": "address",
1787
+ "name": "account",
1788
+ "type": "address"
1789
+ }
1790
+ ],
1791
+ "name": "isWhitelisted",
1792
+ "outputs": [
1793
+ {
1794
+ "internalType": "bool",
1795
+ "name": "",
1796
+ "type": "bool"
1797
+ }
1798
+ ],
1799
+ "stateMutability": "view",
1800
+ "type": "function"
1801
+ },
1802
+ {
1803
+ "inputs": [],
1804
+ "name": "mToken",
1805
+ "outputs": [
1806
+ {
1807
+ "internalType": "address",
1808
+ "name": "",
1809
+ "type": "address"
1810
+ }
1811
+ ],
1812
+ "stateMutability": "view",
1813
+ "type": "function"
1814
+ },
1815
+ {
1816
+ "inputs": [],
1817
+ "name": "name",
1818
+ "outputs": [
1819
+ {
1820
+ "internalType": "string",
1821
+ "name": "",
1822
+ "type": "string"
1823
+ }
1824
+ ],
1825
+ "stateMutability": "view",
1826
+ "type": "function"
1827
+ },
1828
+ {
1829
+ "inputs": [
1830
+ {
1831
+ "internalType": "address",
1832
+ "name": "account",
1833
+ "type": "address"
1834
+ }
1835
+ ],
1836
+ "name": "nonces",
1837
+ "outputs": [
1838
+ {
1839
+ "internalType": "uint256",
1840
+ "name": "",
1841
+ "type": "uint256"
1842
+ }
1843
+ ],
1844
+ "stateMutability": "view",
1845
+ "type": "function"
1846
+ },
1847
+ {
1848
+ "inputs": [],
1849
+ "name": "pause",
1850
+ "outputs": [],
1851
+ "stateMutability": "nonpayable",
1852
+ "type": "function"
1853
+ },
1854
+ {
1855
+ "inputs": [],
1856
+ "name": "paused",
1857
+ "outputs": [
1858
+ {
1859
+ "internalType": "bool",
1860
+ "name": "",
1861
+ "type": "bool"
1862
+ }
1863
+ ],
1864
+ "stateMutability": "view",
1865
+ "type": "function"
1866
+ },
1867
+ {
1868
+ "inputs": [
1869
+ {
1870
+ "internalType": "address",
1871
+ "name": "owner_",
1872
+ "type": "address"
1873
+ },
1874
+ {
1875
+ "internalType": "address",
1876
+ "name": "spender_",
1877
+ "type": "address"
1878
+ },
1879
+ {
1880
+ "internalType": "uint256",
1881
+ "name": "value_",
1882
+ "type": "uint256"
1883
+ },
1884
+ {
1885
+ "internalType": "uint256",
1886
+ "name": "deadline_",
1887
+ "type": "uint256"
1888
+ },
1889
+ {
1890
+ "internalType": "bytes",
1891
+ "name": "signature_",
1892
+ "type": "bytes"
1893
+ }
1894
+ ],
1895
+ "name": "permit",
1896
+ "outputs": [],
1897
+ "stateMutability": "nonpayable",
1898
+ "type": "function"
1899
+ },
1900
+ {
1901
+ "inputs": [
1902
+ {
1903
+ "internalType": "address",
1904
+ "name": "owner_",
1905
+ "type": "address"
1906
+ },
1907
+ {
1908
+ "internalType": "address",
1909
+ "name": "spender_",
1910
+ "type": "address"
1911
+ },
1912
+ {
1913
+ "internalType": "uint256",
1914
+ "name": "value_",
1915
+ "type": "uint256"
1916
+ },
1917
+ {
1918
+ "internalType": "uint256",
1919
+ "name": "deadline_",
1920
+ "type": "uint256"
1921
+ },
1922
+ {
1923
+ "internalType": "uint8",
1924
+ "name": "v_",
1925
+ "type": "uint8"
1926
+ },
1927
+ {
1928
+ "internalType": "bytes32",
1929
+ "name": "r_",
1930
+ "type": "bytes32"
1931
+ },
1932
+ {
1933
+ "internalType": "bytes32",
1934
+ "name": "s_",
1935
+ "type": "bytes32"
1936
+ }
1937
+ ],
1938
+ "name": "permit",
1939
+ "outputs": [],
1940
+ "stateMutability": "nonpayable",
1941
+ "type": "function"
1942
+ },
1943
+ {
1944
+ "inputs": [
1945
+ {
1946
+ "internalType": "address",
1947
+ "name": "from_",
1948
+ "type": "address"
1949
+ },
1950
+ {
1951
+ "internalType": "address",
1952
+ "name": "to_",
1953
+ "type": "address"
1954
+ },
1955
+ {
1956
+ "internalType": "uint256",
1957
+ "name": "value_",
1958
+ "type": "uint256"
1959
+ },
1960
+ {
1961
+ "internalType": "uint256",
1962
+ "name": "validAfter_",
1963
+ "type": "uint256"
1964
+ },
1965
+ {
1966
+ "internalType": "uint256",
1967
+ "name": "validBefore_",
1968
+ "type": "uint256"
1969
+ },
1970
+ {
1971
+ "internalType": "bytes32",
1972
+ "name": "nonce_",
1973
+ "type": "bytes32"
1974
+ },
1975
+ {
1976
+ "internalType": "bytes",
1977
+ "name": "signature_",
1978
+ "type": "bytes"
1979
+ }
1980
+ ],
1981
+ "name": "receiveWithAuthorization",
1982
+ "outputs": [],
1983
+ "stateMutability": "nonpayable",
1984
+ "type": "function"
1985
+ },
1986
+ {
1987
+ "inputs": [
1988
+ {
1989
+ "internalType": "address",
1990
+ "name": "from_",
1991
+ "type": "address"
1992
+ },
1993
+ {
1994
+ "internalType": "address",
1995
+ "name": "to_",
1996
+ "type": "address"
1997
+ },
1998
+ {
1999
+ "internalType": "uint256",
2000
+ "name": "value_",
2001
+ "type": "uint256"
2002
+ },
2003
+ {
2004
+ "internalType": "uint256",
2005
+ "name": "validAfter_",
2006
+ "type": "uint256"
2007
+ },
2008
+ {
2009
+ "internalType": "uint256",
2010
+ "name": "validBefore_",
2011
+ "type": "uint256"
2012
+ },
2013
+ {
2014
+ "internalType": "bytes32",
2015
+ "name": "nonce_",
2016
+ "type": "bytes32"
2017
+ },
2018
+ {
2019
+ "internalType": "bytes32",
2020
+ "name": "r_",
2021
+ "type": "bytes32"
2022
+ },
2023
+ {
2024
+ "internalType": "bytes32",
2025
+ "name": "vs_",
2026
+ "type": "bytes32"
2027
+ }
2028
+ ],
2029
+ "name": "receiveWithAuthorization",
2030
+ "outputs": [],
2031
+ "stateMutability": "nonpayable",
2032
+ "type": "function"
2033
+ },
2034
+ {
2035
+ "inputs": [
2036
+ {
2037
+ "internalType": "address",
2038
+ "name": "from_",
2039
+ "type": "address"
2040
+ },
2041
+ {
2042
+ "internalType": "address",
2043
+ "name": "to_",
2044
+ "type": "address"
2045
+ },
2046
+ {
2047
+ "internalType": "uint256",
2048
+ "name": "value_",
2049
+ "type": "uint256"
2050
+ },
2051
+ {
2052
+ "internalType": "uint256",
2053
+ "name": "validAfter_",
2054
+ "type": "uint256"
2055
+ },
2056
+ {
2057
+ "internalType": "uint256",
2058
+ "name": "validBefore_",
2059
+ "type": "uint256"
2060
+ },
2061
+ {
2062
+ "internalType": "bytes32",
2063
+ "name": "nonce_",
2064
+ "type": "bytes32"
2065
+ },
2066
+ {
2067
+ "internalType": "uint8",
2068
+ "name": "v_",
2069
+ "type": "uint8"
2070
+ },
2071
+ {
2072
+ "internalType": "bytes32",
2073
+ "name": "r_",
2074
+ "type": "bytes32"
2075
+ },
2076
+ {
2077
+ "internalType": "bytes32",
2078
+ "name": "s_",
2079
+ "type": "bytes32"
2080
+ }
2081
+ ],
2082
+ "name": "receiveWithAuthorization",
2083
+ "outputs": [],
2084
+ "stateMutability": "nonpayable",
2085
+ "type": "function"
2086
+ },
2087
+ {
2088
+ "inputs": [
2089
+ {
2090
+ "internalType": "address",
2091
+ "name": "account",
2092
+ "type": "address"
2093
+ }
2094
+ ],
2095
+ "name": "removeFromWhitelist",
2096
+ "outputs": [],
2097
+ "stateMutability": "nonpayable",
2098
+ "type": "function"
2099
+ },
2100
+ {
2101
+ "inputs": [
2102
+ {
2103
+ "internalType": "bytes32",
2104
+ "name": "role",
2105
+ "type": "bytes32"
2106
+ },
2107
+ {
2108
+ "internalType": "address",
2109
+ "name": "callerConfirmation",
2110
+ "type": "address"
2111
+ }
2112
+ ],
2113
+ "name": "renounceRole",
2114
+ "outputs": [],
2115
+ "stateMutability": "nonpayable",
2116
+ "type": "function"
2117
+ },
2118
+ {
2119
+ "inputs": [
2120
+ {
2121
+ "internalType": "address",
2122
+ "name": "asset",
2123
+ "type": "address"
2124
+ },
2125
+ {
2126
+ "internalType": "address",
2127
+ "name": "recipient",
2128
+ "type": "address"
2129
+ },
2130
+ {
2131
+ "internalType": "uint256",
2132
+ "name": "amount",
2133
+ "type": "uint256"
2134
+ }
2135
+ ],
2136
+ "name": "replaceAssetWithM",
2137
+ "outputs": [],
2138
+ "stateMutability": "nonpayable",
2139
+ "type": "function"
2140
+ },
2141
+ {
2142
+ "inputs": [
2143
+ {
2144
+ "internalType": "bytes32",
2145
+ "name": "role",
2146
+ "type": "bytes32"
2147
+ },
2148
+ {
2149
+ "internalType": "address",
2150
+ "name": "account",
2151
+ "type": "address"
2152
+ }
2153
+ ],
2154
+ "name": "revokeRole",
2155
+ "outputs": [],
2156
+ "stateMutability": "nonpayable",
2157
+ "type": "function"
2158
+ },
2159
+ {
2160
+ "inputs": [
2161
+ {
2162
+ "internalType": "address",
2163
+ "name": "asset",
2164
+ "type": "address"
2165
+ },
2166
+ {
2167
+ "internalType": "uint256",
2168
+ "name": "cap",
2169
+ "type": "uint256"
2170
+ }
2171
+ ],
2172
+ "name": "setAssetCap",
2173
+ "outputs": [],
2174
+ "stateMutability": "nonpayable",
2175
+ "type": "function"
2176
+ },
2177
+ {
2178
+ "inputs": [
2179
+ {
2180
+ "internalType": "address",
2181
+ "name": "account",
2182
+ "type": "address"
2183
+ }
2184
+ ],
2185
+ "name": "setYieldRecipient",
2186
+ "outputs": [],
2187
+ "stateMutability": "nonpayable",
2188
+ "type": "function"
2189
+ },
2190
+ {
2191
+ "inputs": [
2192
+ {
2193
+ "internalType": "bytes4",
2194
+ "name": "interfaceId",
2195
+ "type": "bytes4"
2196
+ }
2197
+ ],
2198
+ "name": "supportsInterface",
2199
+ "outputs": [
2200
+ {
2201
+ "internalType": "bool",
2202
+ "name": "",
2203
+ "type": "bool"
2204
+ }
2205
+ ],
2206
+ "stateMutability": "view",
2207
+ "type": "function"
2208
+ },
2209
+ {
2210
+ "inputs": [],
2211
+ "name": "swapFacility",
2212
+ "outputs": [
2213
+ {
2214
+ "internalType": "address",
2215
+ "name": "",
2216
+ "type": "address"
2217
+ }
2218
+ ],
2219
+ "stateMutability": "view",
2220
+ "type": "function"
2221
+ },
2222
+ {
2223
+ "inputs": [],
2224
+ "name": "symbol",
2225
+ "outputs": [
2226
+ {
2227
+ "internalType": "string",
2228
+ "name": "",
2229
+ "type": "string"
2230
+ }
2231
+ ],
2232
+ "stateMutability": "view",
2233
+ "type": "function"
2234
+ },
2235
+ {
2236
+ "inputs": [],
2237
+ "name": "totalAssets",
2238
+ "outputs": [
2239
+ {
2240
+ "internalType": "uint256",
2241
+ "name": "",
2242
+ "type": "uint256"
2243
+ }
2244
+ ],
2245
+ "stateMutability": "view",
2246
+ "type": "function"
2247
+ },
2248
+ {
2249
+ "inputs": [],
2250
+ "name": "totalSupply",
2251
+ "outputs": [
2252
+ {
2253
+ "internalType": "uint256",
2254
+ "name": "",
2255
+ "type": "uint256"
2256
+ }
2257
+ ],
2258
+ "stateMutability": "view",
2259
+ "type": "function"
2260
+ },
2261
+ {
2262
+ "inputs": [
2263
+ {
2264
+ "internalType": "address",
2265
+ "name": "recipient_",
2266
+ "type": "address"
2267
+ },
2268
+ {
2269
+ "internalType": "uint256",
2270
+ "name": "amount_",
2271
+ "type": "uint256"
2272
+ }
2273
+ ],
2274
+ "name": "transfer",
2275
+ "outputs": [
2276
+ {
2277
+ "internalType": "bool",
2278
+ "name": "",
2279
+ "type": "bool"
2280
+ }
2281
+ ],
2282
+ "stateMutability": "nonpayable",
2283
+ "type": "function"
2284
+ },
2285
+ {
2286
+ "inputs": [
2287
+ {
2288
+ "internalType": "address",
2289
+ "name": "sender_",
2290
+ "type": "address"
2291
+ },
2292
+ {
2293
+ "internalType": "address",
2294
+ "name": "recipient_",
2295
+ "type": "address"
2296
+ },
2297
+ {
2298
+ "internalType": "uint256",
2299
+ "name": "amount_",
2300
+ "type": "uint256"
2301
+ }
2302
+ ],
2303
+ "name": "transferFrom",
2304
+ "outputs": [
2305
+ {
2306
+ "internalType": "bool",
2307
+ "name": "",
2308
+ "type": "bool"
2309
+ }
2310
+ ],
2311
+ "stateMutability": "nonpayable",
2312
+ "type": "function"
2313
+ },
2314
+ {
2315
+ "inputs": [
2316
+ {
2317
+ "internalType": "address",
2318
+ "name": "from_",
2319
+ "type": "address"
2320
+ },
2321
+ {
2322
+ "internalType": "address",
2323
+ "name": "to_",
2324
+ "type": "address"
2325
+ },
2326
+ {
2327
+ "internalType": "uint256",
2328
+ "name": "value_",
2329
+ "type": "uint256"
2330
+ },
2331
+ {
2332
+ "internalType": "uint256",
2333
+ "name": "validAfter_",
2334
+ "type": "uint256"
2335
+ },
2336
+ {
2337
+ "internalType": "uint256",
2338
+ "name": "validBefore_",
2339
+ "type": "uint256"
2340
+ },
2341
+ {
2342
+ "internalType": "bytes32",
2343
+ "name": "nonce_",
2344
+ "type": "bytes32"
2345
+ },
2346
+ {
2347
+ "internalType": "bytes32",
2348
+ "name": "r_",
2349
+ "type": "bytes32"
2350
+ },
2351
+ {
2352
+ "internalType": "bytes32",
2353
+ "name": "vs_",
2354
+ "type": "bytes32"
2355
+ }
2356
+ ],
2357
+ "name": "transferWithAuthorization",
2358
+ "outputs": [],
2359
+ "stateMutability": "nonpayable",
2360
+ "type": "function"
2361
+ },
2362
+ {
2363
+ "inputs": [
2364
+ {
2365
+ "internalType": "address",
2366
+ "name": "from_",
2367
+ "type": "address"
2368
+ },
2369
+ {
2370
+ "internalType": "address",
2371
+ "name": "to_",
2372
+ "type": "address"
2373
+ },
2374
+ {
2375
+ "internalType": "uint256",
2376
+ "name": "value_",
2377
+ "type": "uint256"
2378
+ },
2379
+ {
2380
+ "internalType": "uint256",
2381
+ "name": "validAfter_",
2382
+ "type": "uint256"
2383
+ },
2384
+ {
2385
+ "internalType": "uint256",
2386
+ "name": "validBefore_",
2387
+ "type": "uint256"
2388
+ },
2389
+ {
2390
+ "internalType": "bytes32",
2391
+ "name": "nonce_",
2392
+ "type": "bytes32"
2393
+ },
2394
+ {
2395
+ "internalType": "bytes",
2396
+ "name": "signature_",
2397
+ "type": "bytes"
2398
+ }
2399
+ ],
2400
+ "name": "transferWithAuthorization",
2401
+ "outputs": [],
2402
+ "stateMutability": "nonpayable",
2403
+ "type": "function"
2404
+ },
2405
+ {
2406
+ "inputs": [
2407
+ {
2408
+ "internalType": "address",
2409
+ "name": "from_",
2410
+ "type": "address"
2411
+ },
2412
+ {
2413
+ "internalType": "address",
2414
+ "name": "to_",
2415
+ "type": "address"
2416
+ },
2417
+ {
2418
+ "internalType": "uint256",
2419
+ "name": "value_",
2420
+ "type": "uint256"
2421
+ },
2422
+ {
2423
+ "internalType": "uint256",
2424
+ "name": "validAfter_",
2425
+ "type": "uint256"
2426
+ },
2427
+ {
2428
+ "internalType": "uint256",
2429
+ "name": "validBefore_",
2430
+ "type": "uint256"
2431
+ },
2432
+ {
2433
+ "internalType": "bytes32",
2434
+ "name": "nonce_",
2435
+ "type": "bytes32"
2436
+ },
2437
+ {
2438
+ "internalType": "uint8",
2439
+ "name": "v_",
2440
+ "type": "uint8"
2441
+ },
2442
+ {
2443
+ "internalType": "bytes32",
2444
+ "name": "r_",
2445
+ "type": "bytes32"
2446
+ },
2447
+ {
2448
+ "internalType": "bytes32",
2449
+ "name": "s_",
2450
+ "type": "bytes32"
2451
+ }
2452
+ ],
2453
+ "name": "transferWithAuthorization",
2454
+ "outputs": [],
2455
+ "stateMutability": "nonpayable",
2456
+ "type": "function"
2457
+ },
2458
+ {
2459
+ "inputs": [
2460
+ {
2461
+ "internalType": "address",
2462
+ "name": "account",
2463
+ "type": "address"
2464
+ }
2465
+ ],
2466
+ "name": "unfreeze",
2467
+ "outputs": [],
2468
+ "stateMutability": "nonpayable",
2469
+ "type": "function"
2470
+ },
2471
+ {
2472
+ "inputs": [
2473
+ {
2474
+ "internalType": "address[]",
2475
+ "name": "accounts",
2476
+ "type": "address[]"
2477
+ }
2478
+ ],
2479
+ "name": "unfreezeAccounts",
2480
+ "outputs": [],
2481
+ "stateMutability": "nonpayable",
2482
+ "type": "function"
2483
+ },
2484
+ {
2485
+ "inputs": [],
2486
+ "name": "unpause",
2487
+ "outputs": [],
2488
+ "stateMutability": "nonpayable",
2489
+ "type": "function"
2490
+ },
2491
+ {
2492
+ "inputs": [
2493
+ {
2494
+ "internalType": "address",
2495
+ "name": "",
2496
+ "type": "address"
2497
+ },
2498
+ {
2499
+ "internalType": "uint256",
2500
+ "name": "amount",
2501
+ "type": "uint256"
2502
+ }
2503
+ ],
2504
+ "name": "unwrap",
2505
+ "outputs": [],
2506
+ "stateMutability": "nonpayable",
2507
+ "type": "function"
2508
+ },
2509
+ {
2510
+ "inputs": [
2511
+ {
2512
+ "internalType": "address",
2513
+ "name": "account",
2514
+ "type": "address"
2515
+ }
2516
+ ],
2517
+ "name": "whitelist",
2518
+ "outputs": [],
2519
+ "stateMutability": "nonpayable",
2520
+ "type": "function"
2521
+ },
2522
+ {
2523
+ "inputs": [
2524
+ {
2525
+ "internalType": "address",
2526
+ "name": "asset",
2527
+ "type": "address"
2528
+ },
2529
+ {
2530
+ "internalType": "address",
2531
+ "name": "recipient",
2532
+ "type": "address"
2533
+ },
2534
+ {
2535
+ "internalType": "uint256",
2536
+ "name": "amount",
2537
+ "type": "uint256"
2538
+ }
2539
+ ],
2540
+ "name": "wrap",
2541
+ "outputs": [],
2542
+ "stateMutability": "nonpayable",
2543
+ "type": "function"
2544
+ },
2545
+ {
2546
+ "inputs": [
2547
+ {
2548
+ "internalType": "address",
2549
+ "name": "recipient",
2550
+ "type": "address"
2551
+ },
2552
+ {
2553
+ "internalType": "uint256",
2554
+ "name": "amount",
2555
+ "type": "uint256"
2556
+ }
2557
+ ],
2558
+ "name": "wrap",
2559
+ "outputs": [],
2560
+ "stateMutability": "nonpayable",
2561
+ "type": "function"
2562
+ },
2563
+ {
2564
+ "inputs": [],
2565
+ "name": "yield",
2566
+ "outputs": [
2567
+ {
2568
+ "internalType": "uint256",
2569
+ "name": "",
2570
+ "type": "uint256"
2571
+ }
2572
+ ],
2573
+ "stateMutability": "view",
2574
+ "type": "function"
2575
+ },
2576
+ {
2577
+ "inputs": [],
2578
+ "name": "yieldRecipient",
2579
+ "outputs": [
2580
+ {
2581
+ "internalType": "address",
2582
+ "name": "",
2583
+ "type": "address"
2584
+ }
2585
+ ],
2586
+ "stateMutability": "view",
2587
+ "type": "function"
2588
+ }
2589
+ ] as const satisfies Abi;
2590
+
2591
+ /**
2592
+ * Type-safe ABI for USDat
2593
+ */
2594
+ export type USDatAbi = typeof USDatAbi;
2595
+
2596
+ /**
2597
+ * Contract instance type for USDat
2598
+ */
2599
+ // Use any for contract type to avoid complex viem type issues
2600
+ // The runtime behavior is type-safe through viem's ABI typing
2601
+ export type USDatContract = any;
2602
+
2603
+ /**
2604
+ * USDat Contract Class
2605
+ *
2606
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
2607
+ *
2608
+ * @example
2609
+ * ```typescript
2610
+ * import { createPublicClient, createWalletClient, http } from 'viem';
2611
+ * import { mainnet } from 'viem/chains';
2612
+ * import { USDat } from 'USDat';
2613
+ *
2614
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
2615
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
2616
+ *
2617
+ * const contract = new USDat('0x...', { publicClient, walletClient });
2618
+ *
2619
+ * // Read functions
2620
+ * const result = await contract.balanceOf('0x...');
2621
+ *
2622
+ * // Write functions
2623
+ * const hash = await contract.transfer('0x...', 1000n);
2624
+ *
2625
+ * // Simulate transactions (dry-run)
2626
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
2627
+ * console.log('Gas estimate:', simulation.request.gas);
2628
+ *
2629
+ * // Watch events
2630
+ * const unwatch = contract.watch.Transfer((event) => {
2631
+ * console.log('Transfer event:', event);
2632
+ * });
2633
+ * ```
2634
+ */
2635
+ export class USDat {
2636
+ private contract: USDatContract;
2637
+ private contractAddress: Address;
2638
+ private publicClient: PublicClient;
2639
+
2640
+ constructor(
2641
+ address: Address,
2642
+ clients: {
2643
+ publicClient: PublicClient;
2644
+ walletClient?: WalletClient;
2645
+ }
2646
+ ) {
2647
+ this.contractAddress = address;
2648
+ this.publicClient = clients.publicClient;
2649
+ this.contract = getContract({
2650
+ address,
2651
+ abi: USDatAbi,
2652
+ client: {
2653
+ public: clients.publicClient,
2654
+ wallet: clients.walletClient,
2655
+ },
2656
+ });
2657
+ }
2658
+
2659
+ /**
2660
+ * Get the contract address
2661
+ */
2662
+ get address(): Address {
2663
+ return this.contractAddress;
2664
+ }
2665
+
2666
+ /**
2667
+ * Get the underlying viem contract instance.
2668
+ */
2669
+ getContract(): USDatContract {
2670
+ return this.contract;
2671
+ }
2672
+
2673
+ /**
2674
+ * ASSET_CAP_MANAGER_ROLE
2675
+ * view
2676
+ */
2677
+ async ASSET_CAP_MANAGER_ROLE(): Promise<`0x${string}`> {
2678
+ return this.contract.read.ASSET_CAP_MANAGER_ROLE() as Promise<`0x${string}`>;
2679
+ }
2680
+
2681
+ /**
2682
+ * CANCEL_AUTHORIZATION_TYPEHASH
2683
+ * view
2684
+ */
2685
+ async CANCEL_AUTHORIZATION_TYPEHASH(): Promise<`0x${string}`> {
2686
+ return this.contract.read.CANCEL_AUTHORIZATION_TYPEHASH() as Promise<`0x${string}`>;
2687
+ }
2688
+
2689
+ /**
2690
+ * DEFAULT_ADMIN_ROLE
2691
+ * view
2692
+ */
2693
+ async DEFAULT_ADMIN_ROLE(): Promise<`0x${string}`> {
2694
+ return this.contract.read.DEFAULT_ADMIN_ROLE() as Promise<`0x${string}`>;
2695
+ }
2696
+
2697
+ /**
2698
+ * DOMAIN_SEPARATOR
2699
+ * view
2700
+ */
2701
+ async DOMAIN_SEPARATOR(): Promise<`0x${string}`> {
2702
+ return this.contract.read.DOMAIN_SEPARATOR() as Promise<`0x${string}`>;
2703
+ }
2704
+
2705
+ /**
2706
+ * FORCED_TRANSFER_MANAGER_ROLE
2707
+ * view
2708
+ */
2709
+ async FORCED_TRANSFER_MANAGER_ROLE(): Promise<`0x${string}`> {
2710
+ return this.contract.read.FORCED_TRANSFER_MANAGER_ROLE() as Promise<`0x${string}`>;
2711
+ }
2712
+
2713
+ /**
2714
+ * FREEZE_MANAGER_ROLE
2715
+ * view
2716
+ */
2717
+ async FREEZE_MANAGER_ROLE(): Promise<`0x${string}`> {
2718
+ return this.contract.read.FREEZE_MANAGER_ROLE() as Promise<`0x${string}`>;
2719
+ }
2720
+
2721
+ /**
2722
+ * M_DECIMALS
2723
+ * view
2724
+ */
2725
+ async M_DECIMALS(): Promise<bigint> {
2726
+ return this.contract.read.M_DECIMALS() as Promise<bigint>;
2727
+ }
2728
+
2729
+ /**
2730
+ * PAUSER_ROLE
2731
+ * view
2732
+ */
2733
+ async PAUSER_ROLE(): Promise<`0x${string}`> {
2734
+ return this.contract.read.PAUSER_ROLE() as Promise<`0x${string}`>;
2735
+ }
2736
+
2737
+ /**
2738
+ * PERMIT_TYPEHASH
2739
+ * view
2740
+ */
2741
+ async PERMIT_TYPEHASH(): Promise<`0x${string}`> {
2742
+ return this.contract.read.PERMIT_TYPEHASH() as Promise<`0x${string}`>;
2743
+ }
2744
+
2745
+ /**
2746
+ * RECEIVE_WITH_AUTHORIZATION_TYPEHASH
2747
+ * view
2748
+ */
2749
+ async RECEIVE_WITH_AUTHORIZATION_TYPEHASH(): Promise<`0x${string}`> {
2750
+ return this.contract.read.RECEIVE_WITH_AUTHORIZATION_TYPEHASH() as Promise<`0x${string}`>;
2751
+ }
2752
+
2753
+ /**
2754
+ * TRANSFER_WITH_AUTHORIZATION_TYPEHASH
2755
+ * view
2756
+ */
2757
+ async TRANSFER_WITH_AUTHORIZATION_TYPEHASH(): Promise<`0x${string}`> {
2758
+ return this.contract.read.TRANSFER_WITH_AUTHORIZATION_TYPEHASH() as Promise<`0x${string}`>;
2759
+ }
2760
+
2761
+ /**
2762
+ * WHITELIST_MANAGER_ROLE
2763
+ * view
2764
+ */
2765
+ async WHITELIST_MANAGER_ROLE(): Promise<`0x${string}`> {
2766
+ return this.contract.read.WHITELIST_MANAGER_ROLE() as Promise<`0x${string}`>;
2767
+ }
2768
+
2769
+ /**
2770
+ * YIELD_RECIPIENT_MANAGER_ROLE
2771
+ * view
2772
+ */
2773
+ async YIELD_RECIPIENT_MANAGER_ROLE(): Promise<`0x${string}`> {
2774
+ return this.contract.read.YIELD_RECIPIENT_MANAGER_ROLE() as Promise<`0x${string}`>;
2775
+ }
2776
+
2777
+ /**
2778
+ * allowance
2779
+ * view
2780
+ */
2781
+ async allowance(account: `0x${string}`, spender: `0x${string}`): Promise<bigint> {
2782
+ return this.contract.read.allowance([account, spender] as const) as Promise<bigint>;
2783
+ }
2784
+
2785
+ /**
2786
+ * assetBalanceOf
2787
+ * view
2788
+ */
2789
+ async assetBalanceOf(asset: `0x${string}`): Promise<bigint> {
2790
+ return this.contract.read.assetBalanceOf([asset] as const) as Promise<bigint>;
2791
+ }
2792
+
2793
+ /**
2794
+ * assetCap
2795
+ * view
2796
+ */
2797
+ async assetCap(asset: `0x${string}`): Promise<bigint> {
2798
+ return this.contract.read.assetCap([asset] as const) as Promise<bigint>;
2799
+ }
2800
+
2801
+ /**
2802
+ * assetDecimals
2803
+ * view
2804
+ */
2805
+ async assetDecimals(asset: `0x${string}`): Promise<bigint> {
2806
+ return this.contract.read.assetDecimals([asset] as const) as Promise<bigint>;
2807
+ }
2808
+
2809
+ /**
2810
+ * authorizationState
2811
+ * view
2812
+ */
2813
+ async authorizationState(authorizer: `0x${string}`, nonce: `0x${string}`): Promise<boolean> {
2814
+ return this.contract.read.authorizationState([authorizer, nonce] as const) as Promise<boolean>;
2815
+ }
2816
+
2817
+ /**
2818
+ * balanceOf
2819
+ * view
2820
+ */
2821
+ async balanceOf(account: `0x${string}`): Promise<bigint> {
2822
+ return this.contract.read.balanceOf([account] as const) as Promise<bigint>;
2823
+ }
2824
+
2825
+ /**
2826
+ * currentIndex
2827
+ * view
2828
+ */
2829
+ async currentIndex(): Promise<bigint> {
2830
+ return this.contract.read.currentIndex() as Promise<bigint>;
2831
+ }
2832
+
2833
+ /**
2834
+ * decimals
2835
+ * view
2836
+ */
2837
+ async decimals(): Promise<bigint> {
2838
+ return this.contract.read.decimals() as Promise<bigint>;
2839
+ }
2840
+
2841
+ /**
2842
+ * eip712Domain
2843
+ * view
2844
+ */
2845
+ async eip712Domain(): Promise<[`0x${string}`, string, string, bigint, `0x${string}`, `0x${string}`, bigint[]]> {
2846
+ return this.contract.read.eip712Domain() as Promise<[`0x${string}`, string, string, bigint, `0x${string}`, `0x${string}`, bigint[]]>;
2847
+ }
2848
+
2849
+ /**
2850
+ * getRoleAdmin
2851
+ * view
2852
+ */
2853
+ async getRoleAdmin(role: `0x${string}`): Promise<`0x${string}`> {
2854
+ return this.contract.read.getRoleAdmin([role] as const) as Promise<`0x${string}`>;
2855
+ }
2856
+
2857
+ /**
2858
+ * hasRole
2859
+ * view
2860
+ */
2861
+ async hasRole(role: `0x${string}`, account: `0x${string}`): Promise<boolean> {
2862
+ return this.contract.read.hasRole([role, account] as const) as Promise<boolean>;
2863
+ }
2864
+
2865
+ /**
2866
+ * isAllowedAsset
2867
+ * view
2868
+ */
2869
+ async isAllowedAsset(asset: `0x${string}`): Promise<boolean> {
2870
+ return this.contract.read.isAllowedAsset([asset] as const) as Promise<boolean>;
2871
+ }
2872
+
2873
+ /**
2874
+ * isAllowedToReplaceAssetWithM
2875
+ * view
2876
+ */
2877
+ async isAllowedToReplaceAssetWithM(asset: `0x${string}`, amount: bigint): Promise<boolean> {
2878
+ return this.contract.read.isAllowedToReplaceAssetWithM([asset, amount] as const) as Promise<boolean>;
2879
+ }
2880
+
2881
+ /**
2882
+ * isAllowedToUnwrap
2883
+ * view
2884
+ */
2885
+ async isAllowedToUnwrap(amount: bigint): Promise<boolean> {
2886
+ return this.contract.read.isAllowedToUnwrap([amount] as const) as Promise<boolean>;
2887
+ }
2888
+
2889
+ /**
2890
+ * isAllowedToWrap
2891
+ * view
2892
+ */
2893
+ async isAllowedToWrap(asset: `0x${string}`, amount: bigint): Promise<boolean> {
2894
+ return this.contract.read.isAllowedToWrap([asset, amount] as const) as Promise<boolean>;
2895
+ }
2896
+
2897
+ /**
2898
+ * isEarningEnabled
2899
+ * view
2900
+ */
2901
+ async isEarningEnabled(): Promise<boolean> {
2902
+ return this.contract.read.isEarningEnabled() as Promise<boolean>;
2903
+ }
2904
+
2905
+ /**
2906
+ * isFrozen
2907
+ * view
2908
+ */
2909
+ async isFrozen(account: `0x${string}`): Promise<boolean> {
2910
+ return this.contract.read.isFrozen([account] as const) as Promise<boolean>;
2911
+ }
2912
+
2913
+ /**
2914
+ * isWhitelistEnabled
2915
+ * view
2916
+ */
2917
+ async isWhitelistEnabled(): Promise<boolean> {
2918
+ return this.contract.read.isWhitelistEnabled() as Promise<boolean>;
2919
+ }
2920
+
2921
+ /**
2922
+ * isWhitelisted
2923
+ * view
2924
+ */
2925
+ async isWhitelisted(account: `0x${string}`): Promise<boolean> {
2926
+ return this.contract.read.isWhitelisted([account] as const) as Promise<boolean>;
2927
+ }
2928
+
2929
+ /**
2930
+ * mToken
2931
+ * view
2932
+ */
2933
+ async mToken(): Promise<`0x${string}`> {
2934
+ return this.contract.read.mToken() as Promise<`0x${string}`>;
2935
+ }
2936
+
2937
+ /**
2938
+ * name
2939
+ * view
2940
+ */
2941
+ async name(): Promise<string> {
2942
+ return this.contract.read.name() as Promise<string>;
2943
+ }
2944
+
2945
+ /**
2946
+ * nonces
2947
+ * view
2948
+ */
2949
+ async nonces(account: `0x${string}`): Promise<bigint> {
2950
+ return this.contract.read.nonces([account] as const) as Promise<bigint>;
2951
+ }
2952
+
2953
+ /**
2954
+ * paused
2955
+ * view
2956
+ */
2957
+ async paused(): Promise<boolean> {
2958
+ return this.contract.read.paused() as Promise<boolean>;
2959
+ }
2960
+
2961
+ /**
2962
+ * supportsInterface
2963
+ * view
2964
+ */
2965
+ async supportsInterface(interfaceId: `0x${string}`): Promise<boolean> {
2966
+ return this.contract.read.supportsInterface([interfaceId] as const) as Promise<boolean>;
2967
+ }
2968
+
2969
+ /**
2970
+ * swapFacility
2971
+ * view
2972
+ */
2973
+ async swapFacility(): Promise<`0x${string}`> {
2974
+ return this.contract.read.swapFacility() as Promise<`0x${string}`>;
2975
+ }
2976
+
2977
+ /**
2978
+ * symbol
2979
+ * view
2980
+ */
2981
+ async symbol(): Promise<string> {
2982
+ return this.contract.read.symbol() as Promise<string>;
2983
+ }
2984
+
2985
+ /**
2986
+ * totalAssets
2987
+ * view
2988
+ */
2989
+ async totalAssets(): Promise<bigint> {
2990
+ return this.contract.read.totalAssets() as Promise<bigint>;
2991
+ }
2992
+
2993
+ /**
2994
+ * totalSupply
2995
+ * view
2996
+ */
2997
+ async totalSupply(): Promise<bigint> {
2998
+ return this.contract.read.totalSupply() as Promise<bigint>;
2999
+ }
3000
+
3001
+ /**
3002
+ * yield
3003
+ * view
3004
+ */
3005
+ async yield(): Promise<bigint> {
3006
+ return this.contract.read.yield() as Promise<bigint>;
3007
+ }
3008
+
3009
+ /**
3010
+ * yieldRecipient
3011
+ * view
3012
+ */
3013
+ async yieldRecipient(): Promise<`0x${string}`> {
3014
+ return this.contract.read.yieldRecipient() as Promise<`0x${string}`>;
3015
+ }
3016
+
3017
+ /**
3018
+ * approve
3019
+ * nonpayable
3020
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3021
+ */
3022
+ async approve(spender_: `0x${string}`, amount_: bigint, options?: {
3023
+ accessList?: import('viem').AccessList;
3024
+ authorizationList?: import('viem').AuthorizationList;
3025
+ chain?: import('viem').Chain | null;
3026
+ dataSuffix?: `0x${string}`;
3027
+ gas?: bigint;
3028
+ gasPrice?: bigint;
3029
+ maxFeePerGas?: bigint;
3030
+ maxPriorityFeePerGas?: bigint;
3031
+ nonce?: number;
3032
+ value?: bigint;
3033
+ }): Promise<`0x${string}`> {
3034
+ if (!this.contract.write) {
3035
+ throw new Error('Wallet client is required for write operations');
3036
+ }
3037
+ return this.contract.write.approve([spender_, amount_] as const, options) as Promise<`0x${string}`>;
3038
+ }
3039
+
3040
+ async cancelAuthorization(authorizer_: `0x${string}`, nonce_: `0x${string}`, r_: `0x${string}`, vs_: `0x${string}`, options?: {
3041
+ accessList?: import('viem').AccessList;
3042
+ authorizationList?: import('viem').AuthorizationList;
3043
+ chain?: import('viem').Chain | null;
3044
+ dataSuffix?: `0x${string}`;
3045
+ gas?: bigint;
3046
+ gasPrice?: bigint;
3047
+ maxFeePerGas?: bigint;
3048
+ maxPriorityFeePerGas?: bigint;
3049
+ nonce?: number;
3050
+ value?: bigint;
3051
+ }): Promise<`0x${string}`>;
3052
+ async cancelAuthorization(authorizer_: `0x${string}`, nonce_: `0x${string}`, v_: bigint, r_: `0x${string}`, s_: `0x${string}`, options?: {
3053
+ accessList?: import('viem').AccessList;
3054
+ authorizationList?: import('viem').AuthorizationList;
3055
+ chain?: import('viem').Chain | null;
3056
+ dataSuffix?: `0x${string}`;
3057
+ gas?: bigint;
3058
+ gasPrice?: bigint;
3059
+ maxFeePerGas?: bigint;
3060
+ maxPriorityFeePerGas?: bigint;
3061
+ nonce?: number;
3062
+ value?: bigint;
3063
+ }): Promise<`0x${string}`>;
3064
+ async cancelAuthorization(authorizer_: `0x${string}`, nonce_: `0x${string}`, signature_: `0x${string}`, options?: {
3065
+ accessList?: import('viem').AccessList;
3066
+ authorizationList?: import('viem').AuthorizationList;
3067
+ chain?: import('viem').Chain | null;
3068
+ dataSuffix?: `0x${string}`;
3069
+ gas?: bigint;
3070
+ gasPrice?: bigint;
3071
+ maxFeePerGas?: bigint;
3072
+ maxPriorityFeePerGas?: bigint;
3073
+ nonce?: number;
3074
+ value?: bigint;
3075
+ }): Promise<`0x${string}`>;
3076
+ async cancelAuthorization(...args: any[]): Promise<`0x${string}`> {
3077
+ if (!this.contract.write) {
3078
+ throw new Error('Wallet client is required for write operations');
3079
+ }
3080
+ return this.contract.write.cancelAuthorization(args as any) as Promise<`0x${string}`>;
3081
+ }
3082
+
3083
+ /**
3084
+ * claimYield
3085
+ * nonpayable
3086
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3087
+ */
3088
+ async claimYield(options?: {
3089
+ accessList?: import('viem').AccessList;
3090
+ authorizationList?: import('viem').AuthorizationList;
3091
+ chain?: import('viem').Chain | null;
3092
+ dataSuffix?: `0x${string}`;
3093
+ gas?: bigint;
3094
+ gasPrice?: bigint;
3095
+ maxFeePerGas?: bigint;
3096
+ maxPriorityFeePerGas?: bigint;
3097
+ nonce?: number;
3098
+ value?: bigint;
3099
+ }): Promise<`0x${string}`> {
3100
+ if (!this.contract.write) {
3101
+ throw new Error('Wallet client is required for write operations');
3102
+ }
3103
+ return this.contract.write.claimYield(options) as Promise<`0x${string}`>;
3104
+ }
3105
+
3106
+ /**
3107
+ * disableEarning
3108
+ * nonpayable
3109
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3110
+ */
3111
+ async disableEarning(options?: {
3112
+ accessList?: import('viem').AccessList;
3113
+ authorizationList?: import('viem').AuthorizationList;
3114
+ chain?: import('viem').Chain | null;
3115
+ dataSuffix?: `0x${string}`;
3116
+ gas?: bigint;
3117
+ gasPrice?: bigint;
3118
+ maxFeePerGas?: bigint;
3119
+ maxPriorityFeePerGas?: bigint;
3120
+ nonce?: number;
3121
+ value?: bigint;
3122
+ }): Promise<`0x${string}`> {
3123
+ if (!this.contract.write) {
3124
+ throw new Error('Wallet client is required for write operations');
3125
+ }
3126
+ return this.contract.write.disableEarning(options) as Promise<`0x${string}`>;
3127
+ }
3128
+
3129
+ /**
3130
+ * disableWhitelist
3131
+ * nonpayable
3132
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3133
+ */
3134
+ async disableWhitelist(options?: {
3135
+ accessList?: import('viem').AccessList;
3136
+ authorizationList?: import('viem').AuthorizationList;
3137
+ chain?: import('viem').Chain | null;
3138
+ dataSuffix?: `0x${string}`;
3139
+ gas?: bigint;
3140
+ gasPrice?: bigint;
3141
+ maxFeePerGas?: bigint;
3142
+ maxPriorityFeePerGas?: bigint;
3143
+ nonce?: number;
3144
+ value?: bigint;
3145
+ }): Promise<`0x${string}`> {
3146
+ if (!this.contract.write) {
3147
+ throw new Error('Wallet client is required for write operations');
3148
+ }
3149
+ return this.contract.write.disableWhitelist(options) as Promise<`0x${string}`>;
3150
+ }
3151
+
3152
+ /**
3153
+ * enableEarning
3154
+ * nonpayable
3155
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3156
+ */
3157
+ async enableEarning(options?: {
3158
+ accessList?: import('viem').AccessList;
3159
+ authorizationList?: import('viem').AuthorizationList;
3160
+ chain?: import('viem').Chain | null;
3161
+ dataSuffix?: `0x${string}`;
3162
+ gas?: bigint;
3163
+ gasPrice?: bigint;
3164
+ maxFeePerGas?: bigint;
3165
+ maxPriorityFeePerGas?: bigint;
3166
+ nonce?: number;
3167
+ value?: bigint;
3168
+ }): Promise<`0x${string}`> {
3169
+ if (!this.contract.write) {
3170
+ throw new Error('Wallet client is required for write operations');
3171
+ }
3172
+ return this.contract.write.enableEarning(options) as Promise<`0x${string}`>;
3173
+ }
3174
+
3175
+ /**
3176
+ * enableWhitelist
3177
+ * nonpayable
3178
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3179
+ */
3180
+ async enableWhitelist(options?: {
3181
+ accessList?: import('viem').AccessList;
3182
+ authorizationList?: import('viem').AuthorizationList;
3183
+ chain?: import('viem').Chain | null;
3184
+ dataSuffix?: `0x${string}`;
3185
+ gas?: bigint;
3186
+ gasPrice?: bigint;
3187
+ maxFeePerGas?: bigint;
3188
+ maxPriorityFeePerGas?: bigint;
3189
+ nonce?: number;
3190
+ value?: bigint;
3191
+ }): Promise<`0x${string}`> {
3192
+ if (!this.contract.write) {
3193
+ throw new Error('Wallet client is required for write operations');
3194
+ }
3195
+ return this.contract.write.enableWhitelist(options) as Promise<`0x${string}`>;
3196
+ }
3197
+
3198
+ /**
3199
+ * forceTransfer
3200
+ * nonpayable
3201
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3202
+ */
3203
+ async forceTransfer(frozenAccount: `0x${string}`, recipient: `0x${string}`, amount: bigint, options?: {
3204
+ accessList?: import('viem').AccessList;
3205
+ authorizationList?: import('viem').AuthorizationList;
3206
+ chain?: import('viem').Chain | null;
3207
+ dataSuffix?: `0x${string}`;
3208
+ gas?: bigint;
3209
+ gasPrice?: bigint;
3210
+ maxFeePerGas?: bigint;
3211
+ maxPriorityFeePerGas?: bigint;
3212
+ nonce?: number;
3213
+ value?: bigint;
3214
+ }): Promise<`0x${string}`> {
3215
+ if (!this.contract.write) {
3216
+ throw new Error('Wallet client is required for write operations');
3217
+ }
3218
+ return this.contract.write.forceTransfer([frozenAccount, recipient, amount] as const, options) as Promise<`0x${string}`>;
3219
+ }
3220
+
3221
+ /**
3222
+ * forceTransfers
3223
+ * nonpayable
3224
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3225
+ */
3226
+ async forceTransfers(frozenAccounts: `0x${string}`[], recipients: `0x${string}`[], amounts: bigint[], options?: {
3227
+ accessList?: import('viem').AccessList;
3228
+ authorizationList?: import('viem').AuthorizationList;
3229
+ chain?: import('viem').Chain | null;
3230
+ dataSuffix?: `0x${string}`;
3231
+ gas?: bigint;
3232
+ gasPrice?: bigint;
3233
+ maxFeePerGas?: bigint;
3234
+ maxPriorityFeePerGas?: bigint;
3235
+ nonce?: number;
3236
+ value?: bigint;
3237
+ }): Promise<`0x${string}`> {
3238
+ if (!this.contract.write) {
3239
+ throw new Error('Wallet client is required for write operations');
3240
+ }
3241
+ return this.contract.write.forceTransfers([frozenAccounts, recipients, amounts] as const, options) as Promise<`0x${string}`>;
3242
+ }
3243
+
3244
+ /**
3245
+ * freeze
3246
+ * nonpayable
3247
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3248
+ */
3249
+ async freeze(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<`0x${string}`> {
3261
+ if (!this.contract.write) {
3262
+ throw new Error('Wallet client is required for write operations');
3263
+ }
3264
+ return this.contract.write.freeze([account] as const, options) as Promise<`0x${string}`>;
3265
+ }
3266
+
3267
+ /**
3268
+ * freezeAccounts
3269
+ * nonpayable
3270
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3271
+ */
3272
+ async freezeAccounts(accounts: `0x${string}`[], options?: {
3273
+ accessList?: import('viem').AccessList;
3274
+ authorizationList?: import('viem').AuthorizationList;
3275
+ chain?: import('viem').Chain | null;
3276
+ dataSuffix?: `0x${string}`;
3277
+ gas?: bigint;
3278
+ gasPrice?: bigint;
3279
+ maxFeePerGas?: bigint;
3280
+ maxPriorityFeePerGas?: bigint;
3281
+ nonce?: number;
3282
+ value?: bigint;
3283
+ }): Promise<`0x${string}`> {
3284
+ if (!this.contract.write) {
3285
+ throw new Error('Wallet client is required for write operations');
3286
+ }
3287
+ return this.contract.write.freezeAccounts([accounts] as const, options) as Promise<`0x${string}`>;
3288
+ }
3289
+
3290
+ /**
3291
+ * grantRole
3292
+ * nonpayable
3293
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3294
+ */
3295
+ async grantRole(role: `0x${string}`, account: `0x${string}`, options?: {
3296
+ accessList?: import('viem').AccessList;
3297
+ authorizationList?: import('viem').AuthorizationList;
3298
+ chain?: import('viem').Chain | null;
3299
+ dataSuffix?: `0x${string}`;
3300
+ gas?: bigint;
3301
+ gasPrice?: bigint;
3302
+ maxFeePerGas?: bigint;
3303
+ maxPriorityFeePerGas?: bigint;
3304
+ nonce?: number;
3305
+ value?: bigint;
3306
+ }): Promise<`0x${string}`> {
3307
+ if (!this.contract.write) {
3308
+ throw new Error('Wallet client is required for write operations');
3309
+ }
3310
+ return this.contract.write.grantRole([role, account] as const, options) as Promise<`0x${string}`>;
3311
+ }
3312
+
3313
+ async initialize(name: string, symbol: string, yieldRecipient: `0x${string}`, admin: `0x${string}`, assetCapManager: `0x${string}`, freezeManager: `0x${string}`, pauser: `0x${string}`, yieldRecipientManager: `0x${string}`, options?: {
3314
+ accessList?: import('viem').AccessList;
3315
+ authorizationList?: import('viem').AuthorizationList;
3316
+ chain?: import('viem').Chain | null;
3317
+ dataSuffix?: `0x${string}`;
3318
+ gas?: bigint;
3319
+ gasPrice?: bigint;
3320
+ maxFeePerGas?: bigint;
3321
+ maxPriorityFeePerGas?: bigint;
3322
+ nonce?: number;
3323
+ value?: bigint;
3324
+ }): Promise<`0x${string}`>;
3325
+ async initialize(name: string, symbol: string, yieldRecipient_: `0x${string}`, admin: `0x${string}`, freezeManager: `0x${string}`, yieldRecipientManager: `0x${string}`, pauser: `0x${string}`, options?: {
3326
+ accessList?: import('viem').AccessList;
3327
+ authorizationList?: import('viem').AuthorizationList;
3328
+ chain?: import('viem').Chain | null;
3329
+ dataSuffix?: `0x${string}`;
3330
+ gas?: bigint;
3331
+ gasPrice?: bigint;
3332
+ maxFeePerGas?: bigint;
3333
+ maxPriorityFeePerGas?: bigint;
3334
+ nonce?: number;
3335
+ value?: bigint;
3336
+ }): Promise<`0x${string}`>;
3337
+ async initialize(yieldRecipient: `0x${string}`, admin: `0x${string}`, compliance: `0x${string}`, processor: `0x${string}`, options?: {
3338
+ accessList?: import('viem').AccessList;
3339
+ authorizationList?: import('viem').AuthorizationList;
3340
+ chain?: import('viem').Chain | null;
3341
+ dataSuffix?: `0x${string}`;
3342
+ gas?: bigint;
3343
+ gasPrice?: bigint;
3344
+ maxFeePerGas?: bigint;
3345
+ maxPriorityFeePerGas?: bigint;
3346
+ nonce?: number;
3347
+ value?: bigint;
3348
+ }): Promise<`0x${string}`>;
3349
+ async initialize(...args: any[]): Promise<`0x${string}`> {
3350
+ if (!this.contract.write) {
3351
+ throw new Error('Wallet client is required for write operations');
3352
+ }
3353
+ return this.contract.write.initialize(args as any) as Promise<`0x${string}`>;
3354
+ }
3355
+
3356
+ /**
3357
+ * pause
3358
+ * nonpayable
3359
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3360
+ */
3361
+ async pause(options?: {
3362
+ accessList?: import('viem').AccessList;
3363
+ authorizationList?: import('viem').AuthorizationList;
3364
+ chain?: import('viem').Chain | null;
3365
+ dataSuffix?: `0x${string}`;
3366
+ gas?: bigint;
3367
+ gasPrice?: bigint;
3368
+ maxFeePerGas?: bigint;
3369
+ maxPriorityFeePerGas?: bigint;
3370
+ nonce?: number;
3371
+ value?: bigint;
3372
+ }): Promise<`0x${string}`> {
3373
+ if (!this.contract.write) {
3374
+ throw new Error('Wallet client is required for write operations');
3375
+ }
3376
+ return this.contract.write.pause(options) as Promise<`0x${string}`>;
3377
+ }
3378
+
3379
+ async permit(owner_: `0x${string}`, spender_: `0x${string}`, value_: bigint, deadline_: bigint, signature_: `0x${string}`, options?: {
3380
+ accessList?: import('viem').AccessList;
3381
+ authorizationList?: import('viem').AuthorizationList;
3382
+ chain?: import('viem').Chain | null;
3383
+ dataSuffix?: `0x${string}`;
3384
+ gas?: bigint;
3385
+ gasPrice?: bigint;
3386
+ maxFeePerGas?: bigint;
3387
+ maxPriorityFeePerGas?: bigint;
3388
+ nonce?: number;
3389
+ value?: bigint;
3390
+ }): Promise<`0x${string}`>;
3391
+ async permit(owner_: `0x${string}`, spender_: `0x${string}`, value_: bigint, deadline_: bigint, v_: bigint, r_: `0x${string}`, s_: `0x${string}`, 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<`0x${string}`>;
3403
+ async permit(...args: any[]): Promise<`0x${string}`> {
3404
+ if (!this.contract.write) {
3405
+ throw new Error('Wallet client is required for write operations');
3406
+ }
3407
+ return this.contract.write.permit(args as any) as Promise<`0x${string}`>;
3408
+ }
3409
+
3410
+ async receiveWithAuthorization(from_: `0x${string}`, to_: `0x${string}`, value_: bigint, validAfter_: bigint, validBefore_: bigint, nonce_: `0x${string}`, signature_: `0x${string}`, options?: {
3411
+ accessList?: import('viem').AccessList;
3412
+ authorizationList?: import('viem').AuthorizationList;
3413
+ chain?: import('viem').Chain | null;
3414
+ dataSuffix?: `0x${string}`;
3415
+ gas?: bigint;
3416
+ gasPrice?: bigint;
3417
+ maxFeePerGas?: bigint;
3418
+ maxPriorityFeePerGas?: bigint;
3419
+ nonce?: number;
3420
+ value?: bigint;
3421
+ }): Promise<`0x${string}`>;
3422
+ async receiveWithAuthorization(from_: `0x${string}`, to_: `0x${string}`, value_: bigint, validAfter_: bigint, validBefore_: bigint, nonce_: `0x${string}`, r_: `0x${string}`, vs_: `0x${string}`, options?: {
3423
+ accessList?: import('viem').AccessList;
3424
+ authorizationList?: import('viem').AuthorizationList;
3425
+ chain?: import('viem').Chain | null;
3426
+ dataSuffix?: `0x${string}`;
3427
+ gas?: bigint;
3428
+ gasPrice?: bigint;
3429
+ maxFeePerGas?: bigint;
3430
+ maxPriorityFeePerGas?: bigint;
3431
+ nonce?: number;
3432
+ value?: bigint;
3433
+ }): Promise<`0x${string}`>;
3434
+ 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?: {
3435
+ accessList?: import('viem').AccessList;
3436
+ authorizationList?: import('viem').AuthorizationList;
3437
+ chain?: import('viem').Chain | null;
3438
+ dataSuffix?: `0x${string}`;
3439
+ gas?: bigint;
3440
+ gasPrice?: bigint;
3441
+ maxFeePerGas?: bigint;
3442
+ maxPriorityFeePerGas?: bigint;
3443
+ nonce?: number;
3444
+ value?: bigint;
3445
+ }): Promise<`0x${string}`>;
3446
+ async receiveWithAuthorization(...args: any[]): Promise<`0x${string}`> {
3447
+ if (!this.contract.write) {
3448
+ throw new Error('Wallet client is required for write operations');
3449
+ }
3450
+ return this.contract.write.receiveWithAuthorization(args as any) as Promise<`0x${string}`>;
3451
+ }
3452
+
3453
+ /**
3454
+ * removeFromWhitelist
3455
+ * nonpayable
3456
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3457
+ */
3458
+ async removeFromWhitelist(account: `0x${string}`, options?: {
3459
+ accessList?: import('viem').AccessList;
3460
+ authorizationList?: import('viem').AuthorizationList;
3461
+ chain?: import('viem').Chain | null;
3462
+ dataSuffix?: `0x${string}`;
3463
+ gas?: bigint;
3464
+ gasPrice?: bigint;
3465
+ maxFeePerGas?: bigint;
3466
+ maxPriorityFeePerGas?: bigint;
3467
+ nonce?: number;
3468
+ value?: bigint;
3469
+ }): Promise<`0x${string}`> {
3470
+ if (!this.contract.write) {
3471
+ throw new Error('Wallet client is required for write operations');
3472
+ }
3473
+ return this.contract.write.removeFromWhitelist([account] as const, options) as Promise<`0x${string}`>;
3474
+ }
3475
+
3476
+ /**
3477
+ * renounceRole
3478
+ * nonpayable
3479
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3480
+ */
3481
+ async renounceRole(role: `0x${string}`, callerConfirmation: `0x${string}`, options?: {
3482
+ accessList?: import('viem').AccessList;
3483
+ authorizationList?: import('viem').AuthorizationList;
3484
+ chain?: import('viem').Chain | null;
3485
+ dataSuffix?: `0x${string}`;
3486
+ gas?: bigint;
3487
+ gasPrice?: bigint;
3488
+ maxFeePerGas?: bigint;
3489
+ maxPriorityFeePerGas?: bigint;
3490
+ nonce?: number;
3491
+ value?: bigint;
3492
+ }): Promise<`0x${string}`> {
3493
+ if (!this.contract.write) {
3494
+ throw new Error('Wallet client is required for write operations');
3495
+ }
3496
+ return this.contract.write.renounceRole([role, callerConfirmation] as const, options) as Promise<`0x${string}`>;
3497
+ }
3498
+
3499
+ /**
3500
+ * replaceAssetWithM
3501
+ * nonpayable
3502
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3503
+ */
3504
+ async replaceAssetWithM(asset: `0x${string}`, recipient: `0x${string}`, amount: bigint, options?: {
3505
+ accessList?: import('viem').AccessList;
3506
+ authorizationList?: import('viem').AuthorizationList;
3507
+ chain?: import('viem').Chain | null;
3508
+ dataSuffix?: `0x${string}`;
3509
+ gas?: bigint;
3510
+ gasPrice?: bigint;
3511
+ maxFeePerGas?: bigint;
3512
+ maxPriorityFeePerGas?: bigint;
3513
+ nonce?: number;
3514
+ value?: bigint;
3515
+ }): Promise<`0x${string}`> {
3516
+ if (!this.contract.write) {
3517
+ throw new Error('Wallet client is required for write operations');
3518
+ }
3519
+ return this.contract.write.replaceAssetWithM([asset, recipient, amount] as const, options) as Promise<`0x${string}`>;
3520
+ }
3521
+
3522
+ /**
3523
+ * revokeRole
3524
+ * nonpayable
3525
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3526
+ */
3527
+ async revokeRole(role: `0x${string}`, account: `0x${string}`, options?: {
3528
+ accessList?: import('viem').AccessList;
3529
+ authorizationList?: import('viem').AuthorizationList;
3530
+ chain?: import('viem').Chain | null;
3531
+ dataSuffix?: `0x${string}`;
3532
+ gas?: bigint;
3533
+ gasPrice?: bigint;
3534
+ maxFeePerGas?: bigint;
3535
+ maxPriorityFeePerGas?: bigint;
3536
+ nonce?: number;
3537
+ value?: bigint;
3538
+ }): Promise<`0x${string}`> {
3539
+ if (!this.contract.write) {
3540
+ throw new Error('Wallet client is required for write operations');
3541
+ }
3542
+ return this.contract.write.revokeRole([role, account] as const, options) as Promise<`0x${string}`>;
3543
+ }
3544
+
3545
+ /**
3546
+ * setAssetCap
3547
+ * nonpayable
3548
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3549
+ */
3550
+ async setAssetCap(asset: `0x${string}`, cap: bigint, options?: {
3551
+ accessList?: import('viem').AccessList;
3552
+ authorizationList?: import('viem').AuthorizationList;
3553
+ chain?: import('viem').Chain | null;
3554
+ dataSuffix?: `0x${string}`;
3555
+ gas?: bigint;
3556
+ gasPrice?: bigint;
3557
+ maxFeePerGas?: bigint;
3558
+ maxPriorityFeePerGas?: bigint;
3559
+ nonce?: number;
3560
+ value?: bigint;
3561
+ }): Promise<`0x${string}`> {
3562
+ if (!this.contract.write) {
3563
+ throw new Error('Wallet client is required for write operations');
3564
+ }
3565
+ return this.contract.write.setAssetCap([asset, cap] as const, options) as Promise<`0x${string}`>;
3566
+ }
3567
+
3568
+ /**
3569
+ * setYieldRecipient
3570
+ * nonpayable
3571
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3572
+ */
3573
+ async setYieldRecipient(account: `0x${string}`, options?: {
3574
+ accessList?: import('viem').AccessList;
3575
+ authorizationList?: import('viem').AuthorizationList;
3576
+ chain?: import('viem').Chain | null;
3577
+ dataSuffix?: `0x${string}`;
3578
+ gas?: bigint;
3579
+ gasPrice?: bigint;
3580
+ maxFeePerGas?: bigint;
3581
+ maxPriorityFeePerGas?: bigint;
3582
+ nonce?: number;
3583
+ value?: bigint;
3584
+ }): Promise<`0x${string}`> {
3585
+ if (!this.contract.write) {
3586
+ throw new Error('Wallet client is required for write operations');
3587
+ }
3588
+ return this.contract.write.setYieldRecipient([account] as const, options) as Promise<`0x${string}`>;
3589
+ }
3590
+
3591
+ /**
3592
+ * transfer
3593
+ * nonpayable
3594
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3595
+ */
3596
+ async transfer(recipient_: `0x${string}`, amount_: bigint, options?: {
3597
+ accessList?: import('viem').AccessList;
3598
+ authorizationList?: import('viem').AuthorizationList;
3599
+ chain?: import('viem').Chain | null;
3600
+ dataSuffix?: `0x${string}`;
3601
+ gas?: bigint;
3602
+ gasPrice?: bigint;
3603
+ maxFeePerGas?: bigint;
3604
+ maxPriorityFeePerGas?: bigint;
3605
+ nonce?: number;
3606
+ value?: bigint;
3607
+ }): Promise<`0x${string}`> {
3608
+ if (!this.contract.write) {
3609
+ throw new Error('Wallet client is required for write operations');
3610
+ }
3611
+ return this.contract.write.transfer([recipient_, amount_] as const, options) as Promise<`0x${string}`>;
3612
+ }
3613
+
3614
+ /**
3615
+ * transferFrom
3616
+ * nonpayable
3617
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3618
+ */
3619
+ async transferFrom(sender_: `0x${string}`, recipient_: `0x${string}`, amount_: bigint, options?: {
3620
+ accessList?: import('viem').AccessList;
3621
+ authorizationList?: import('viem').AuthorizationList;
3622
+ chain?: import('viem').Chain | null;
3623
+ dataSuffix?: `0x${string}`;
3624
+ gas?: bigint;
3625
+ gasPrice?: bigint;
3626
+ maxFeePerGas?: bigint;
3627
+ maxPriorityFeePerGas?: bigint;
3628
+ nonce?: number;
3629
+ value?: bigint;
3630
+ }): Promise<`0x${string}`> {
3631
+ if (!this.contract.write) {
3632
+ throw new Error('Wallet client is required for write operations');
3633
+ }
3634
+ return this.contract.write.transferFrom([sender_, recipient_, amount_] as const, options) as Promise<`0x${string}`>;
3635
+ }
3636
+
3637
+ async transferWithAuthorization(from_: `0x${string}`, to_: `0x${string}`, value_: bigint, validAfter_: bigint, validBefore_: bigint, nonce_: `0x${string}`, r_: `0x${string}`, vs_: `0x${string}`, options?: {
3638
+ accessList?: import('viem').AccessList;
3639
+ authorizationList?: import('viem').AuthorizationList;
3640
+ chain?: import('viem').Chain | null;
3641
+ dataSuffix?: `0x${string}`;
3642
+ gas?: bigint;
3643
+ gasPrice?: bigint;
3644
+ maxFeePerGas?: bigint;
3645
+ maxPriorityFeePerGas?: bigint;
3646
+ nonce?: number;
3647
+ value?: bigint;
3648
+ }): Promise<`0x${string}`>;
3649
+ async transferWithAuthorization(from_: `0x${string}`, to_: `0x${string}`, value_: bigint, validAfter_: bigint, validBefore_: bigint, nonce_: `0x${string}`, signature_: `0x${string}`, options?: {
3650
+ accessList?: import('viem').AccessList;
3651
+ authorizationList?: import('viem').AuthorizationList;
3652
+ chain?: import('viem').Chain | null;
3653
+ dataSuffix?: `0x${string}`;
3654
+ gas?: bigint;
3655
+ gasPrice?: bigint;
3656
+ maxFeePerGas?: bigint;
3657
+ maxPriorityFeePerGas?: bigint;
3658
+ nonce?: number;
3659
+ value?: bigint;
3660
+ }): Promise<`0x${string}`>;
3661
+ 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?: {
3662
+ accessList?: import('viem').AccessList;
3663
+ authorizationList?: import('viem').AuthorizationList;
3664
+ chain?: import('viem').Chain | null;
3665
+ dataSuffix?: `0x${string}`;
3666
+ gas?: bigint;
3667
+ gasPrice?: bigint;
3668
+ maxFeePerGas?: bigint;
3669
+ maxPriorityFeePerGas?: bigint;
3670
+ nonce?: number;
3671
+ value?: bigint;
3672
+ }): Promise<`0x${string}`>;
3673
+ async transferWithAuthorization(...args: any[]): Promise<`0x${string}`> {
3674
+ if (!this.contract.write) {
3675
+ throw new Error('Wallet client is required for write operations');
3676
+ }
3677
+ return this.contract.write.transferWithAuthorization(args as any) as Promise<`0x${string}`>;
3678
+ }
3679
+
3680
+ /**
3681
+ * unfreeze
3682
+ * nonpayable
3683
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3684
+ */
3685
+ async unfreeze(account: `0x${string}`, options?: {
3686
+ accessList?: import('viem').AccessList;
3687
+ authorizationList?: import('viem').AuthorizationList;
3688
+ chain?: import('viem').Chain | null;
3689
+ dataSuffix?: `0x${string}`;
3690
+ gas?: bigint;
3691
+ gasPrice?: bigint;
3692
+ maxFeePerGas?: bigint;
3693
+ maxPriorityFeePerGas?: bigint;
3694
+ nonce?: number;
3695
+ value?: bigint;
3696
+ }): Promise<`0x${string}`> {
3697
+ if (!this.contract.write) {
3698
+ throw new Error('Wallet client is required for write operations');
3699
+ }
3700
+ return this.contract.write.unfreeze([account] as const, options) as Promise<`0x${string}`>;
3701
+ }
3702
+
3703
+ /**
3704
+ * unfreezeAccounts
3705
+ * nonpayable
3706
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3707
+ */
3708
+ async unfreezeAccounts(accounts: `0x${string}`[], options?: {
3709
+ accessList?: import('viem').AccessList;
3710
+ authorizationList?: import('viem').AuthorizationList;
3711
+ chain?: import('viem').Chain | null;
3712
+ dataSuffix?: `0x${string}`;
3713
+ gas?: bigint;
3714
+ gasPrice?: bigint;
3715
+ maxFeePerGas?: bigint;
3716
+ maxPriorityFeePerGas?: bigint;
3717
+ nonce?: number;
3718
+ value?: bigint;
3719
+ }): Promise<`0x${string}`> {
3720
+ if (!this.contract.write) {
3721
+ throw new Error('Wallet client is required for write operations');
3722
+ }
3723
+ return this.contract.write.unfreezeAccounts([accounts] as const, options) as Promise<`0x${string}`>;
3724
+ }
3725
+
3726
+ /**
3727
+ * unpause
3728
+ * nonpayable
3729
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3730
+ */
3731
+ async unpause(options?: {
3732
+ accessList?: import('viem').AccessList;
3733
+ authorizationList?: import('viem').AuthorizationList;
3734
+ chain?: import('viem').Chain | null;
3735
+ dataSuffix?: `0x${string}`;
3736
+ gas?: bigint;
3737
+ gasPrice?: bigint;
3738
+ maxFeePerGas?: bigint;
3739
+ maxPriorityFeePerGas?: bigint;
3740
+ nonce?: number;
3741
+ value?: bigint;
3742
+ }): Promise<`0x${string}`> {
3743
+ if (!this.contract.write) {
3744
+ throw new Error('Wallet client is required for write operations');
3745
+ }
3746
+ return this.contract.write.unpause(options) as Promise<`0x${string}`>;
3747
+ }
3748
+
3749
+ /**
3750
+ * unwrap
3751
+ * nonpayable
3752
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3753
+ */
3754
+ async unwrap(arg0: `0x${string}`, amount: bigint, options?: {
3755
+ accessList?: import('viem').AccessList;
3756
+ authorizationList?: import('viem').AuthorizationList;
3757
+ chain?: import('viem').Chain | null;
3758
+ dataSuffix?: `0x${string}`;
3759
+ gas?: bigint;
3760
+ gasPrice?: bigint;
3761
+ maxFeePerGas?: bigint;
3762
+ maxPriorityFeePerGas?: bigint;
3763
+ nonce?: number;
3764
+ value?: bigint;
3765
+ }): Promise<`0x${string}`> {
3766
+ if (!this.contract.write) {
3767
+ throw new Error('Wallet client is required for write operations');
3768
+ }
3769
+ return this.contract.write.unwrap([arg0, amount] as const, options) as Promise<`0x${string}`>;
3770
+ }
3771
+
3772
+ /**
3773
+ * whitelist
3774
+ * nonpayable
3775
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3776
+ */
3777
+ async whitelist(account: `0x${string}`, options?: {
3778
+ accessList?: import('viem').AccessList;
3779
+ authorizationList?: import('viem').AuthorizationList;
3780
+ chain?: import('viem').Chain | null;
3781
+ dataSuffix?: `0x${string}`;
3782
+ gas?: bigint;
3783
+ gasPrice?: bigint;
3784
+ maxFeePerGas?: bigint;
3785
+ maxPriorityFeePerGas?: bigint;
3786
+ nonce?: number;
3787
+ value?: bigint;
3788
+ }): Promise<`0x${string}`> {
3789
+ if (!this.contract.write) {
3790
+ throw new Error('Wallet client is required for write operations');
3791
+ }
3792
+ return this.contract.write.whitelist([account] as const, options) as Promise<`0x${string}`>;
3793
+ }
3794
+
3795
+ async wrap(asset: `0x${string}`, recipient: `0x${string}`, amount: bigint, options?: {
3796
+ accessList?: import('viem').AccessList;
3797
+ authorizationList?: import('viem').AuthorizationList;
3798
+ chain?: import('viem').Chain | null;
3799
+ dataSuffix?: `0x${string}`;
3800
+ gas?: bigint;
3801
+ gasPrice?: bigint;
3802
+ maxFeePerGas?: bigint;
3803
+ maxPriorityFeePerGas?: bigint;
3804
+ nonce?: number;
3805
+ value?: bigint;
3806
+ }): Promise<`0x${string}`>;
3807
+ async wrap(recipient: `0x${string}`, amount: bigint, options?: {
3808
+ accessList?: import('viem').AccessList;
3809
+ authorizationList?: import('viem').AuthorizationList;
3810
+ chain?: import('viem').Chain | null;
3811
+ dataSuffix?: `0x${string}`;
3812
+ gas?: bigint;
3813
+ gasPrice?: bigint;
3814
+ maxFeePerGas?: bigint;
3815
+ maxPriorityFeePerGas?: bigint;
3816
+ nonce?: number;
3817
+ value?: bigint;
3818
+ }): Promise<`0x${string}`>;
3819
+ async wrap(...args: any[]): Promise<`0x${string}`> {
3820
+ if (!this.contract.write) {
3821
+ throw new Error('Wallet client is required for write operations');
3822
+ }
3823
+ return this.contract.write.wrap(args as any) as Promise<`0x${string}`>;
3824
+ }
3825
+
3826
+
3827
+
3828
+ /**
3829
+ * Simulate contract write operations (dry-run without sending transaction)
3830
+ *
3831
+ * @example
3832
+ * const result = await contract.simulate.transfer('0x...', 1000n);
3833
+ * console.log('Gas estimate:', result.request.gas);
3834
+ * console.log('Would succeed:', result.result);
3835
+ */
3836
+ get simulate() {
3837
+ const contract = this.contract;
3838
+ if (!contract.simulate) {
3839
+ throw new Error('Public client is required for simulation');
3840
+ }
3841
+ return {
3842
+ /**
3843
+ * Simulate approve
3844
+ * Returns gas estimate and result without sending transaction
3845
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3846
+ */
3847
+ async approve(spender_: `0x${string}`, amount_: bigint, options?: {
3848
+ accessList?: import('viem').AccessList;
3849
+ authorizationList?: import('viem').AuthorizationList;
3850
+ chain?: import('viem').Chain | null;
3851
+ dataSuffix?: `0x${string}`;
3852
+ gas?: bigint;
3853
+ gasPrice?: bigint;
3854
+ maxFeePerGas?: bigint;
3855
+ maxPriorityFeePerGas?: bigint;
3856
+ nonce?: number;
3857
+ value?: bigint;
3858
+ }): Promise<boolean> {
3859
+ return contract.simulate.approve([spender_, amount_] as const, options) as Promise<boolean>;
3860
+ },
3861
+ /**
3862
+ * Simulate cancelAuthorization
3863
+ * Returns gas estimate and result without sending transaction
3864
+ * Supports multiple overloads: (address, bytes32, bytes32, bytes32), (address, bytes32, uint8, bytes32, bytes32), (address, bytes32, bytes)
3865
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3866
+ */
3867
+ async cancelAuthorization(...args: any[]): Promise<any> {
3868
+ return contract.simulate.cancelAuthorization(args as any) as Promise<any>;
3869
+ },
3870
+ /**
3871
+ * Simulate claimYield
3872
+ * Returns gas estimate and result without sending transaction
3873
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3874
+ */
3875
+ async claimYield(options?: {
3876
+ accessList?: import('viem').AccessList;
3877
+ authorizationList?: import('viem').AuthorizationList;
3878
+ chain?: import('viem').Chain | null;
3879
+ dataSuffix?: `0x${string}`;
3880
+ gas?: bigint;
3881
+ gasPrice?: bigint;
3882
+ maxFeePerGas?: bigint;
3883
+ maxPriorityFeePerGas?: bigint;
3884
+ nonce?: number;
3885
+ value?: bigint;
3886
+ }): Promise<bigint> {
3887
+ return contract.simulate.claimYield(options) as Promise<bigint>;
3888
+ },
3889
+ /**
3890
+ * Simulate disableEarning
3891
+ * Returns gas estimate and result without sending transaction
3892
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3893
+ */
3894
+ async disableEarning(options?: {
3895
+ accessList?: import('viem').AccessList;
3896
+ authorizationList?: import('viem').AuthorizationList;
3897
+ chain?: import('viem').Chain | null;
3898
+ dataSuffix?: `0x${string}`;
3899
+ gas?: bigint;
3900
+ gasPrice?: bigint;
3901
+ maxFeePerGas?: bigint;
3902
+ maxPriorityFeePerGas?: bigint;
3903
+ nonce?: number;
3904
+ value?: bigint;
3905
+ }): Promise<void> {
3906
+ return contract.simulate.disableEarning(options) as Promise<void>;
3907
+ },
3908
+ /**
3909
+ * Simulate disableWhitelist
3910
+ * Returns gas estimate and result without sending transaction
3911
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3912
+ */
3913
+ async disableWhitelist(options?: {
3914
+ accessList?: import('viem').AccessList;
3915
+ authorizationList?: import('viem').AuthorizationList;
3916
+ chain?: import('viem').Chain | null;
3917
+ dataSuffix?: `0x${string}`;
3918
+ gas?: bigint;
3919
+ gasPrice?: bigint;
3920
+ maxFeePerGas?: bigint;
3921
+ maxPriorityFeePerGas?: bigint;
3922
+ nonce?: number;
3923
+ value?: bigint;
3924
+ }): Promise<void> {
3925
+ return contract.simulate.disableWhitelist(options) as Promise<void>;
3926
+ },
3927
+ /**
3928
+ * Simulate enableEarning
3929
+ * Returns gas estimate and result without sending transaction
3930
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3931
+ */
3932
+ async enableEarning(options?: {
3933
+ accessList?: import('viem').AccessList;
3934
+ authorizationList?: import('viem').AuthorizationList;
3935
+ chain?: import('viem').Chain | null;
3936
+ dataSuffix?: `0x${string}`;
3937
+ gas?: bigint;
3938
+ gasPrice?: bigint;
3939
+ maxFeePerGas?: bigint;
3940
+ maxPriorityFeePerGas?: bigint;
3941
+ nonce?: number;
3942
+ value?: bigint;
3943
+ }): Promise<void> {
3944
+ return contract.simulate.enableEarning(options) as Promise<void>;
3945
+ },
3946
+ /**
3947
+ * Simulate enableWhitelist
3948
+ * Returns gas estimate and result without sending transaction
3949
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3950
+ */
3951
+ async enableWhitelist(options?: {
3952
+ accessList?: import('viem').AccessList;
3953
+ authorizationList?: import('viem').AuthorizationList;
3954
+ chain?: import('viem').Chain | null;
3955
+ dataSuffix?: `0x${string}`;
3956
+ gas?: bigint;
3957
+ gasPrice?: bigint;
3958
+ maxFeePerGas?: bigint;
3959
+ maxPriorityFeePerGas?: bigint;
3960
+ nonce?: number;
3961
+ value?: bigint;
3962
+ }): Promise<void> {
3963
+ return contract.simulate.enableWhitelist(options) as Promise<void>;
3964
+ },
3965
+ /**
3966
+ * Simulate forceTransfer
3967
+ * Returns gas estimate and result without sending transaction
3968
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3969
+ */
3970
+ async forceTransfer(frozenAccount: `0x${string}`, recipient: `0x${string}`, amount: bigint, options?: {
3971
+ accessList?: import('viem').AccessList;
3972
+ authorizationList?: import('viem').AuthorizationList;
3973
+ chain?: import('viem').Chain | null;
3974
+ dataSuffix?: `0x${string}`;
3975
+ gas?: bigint;
3976
+ gasPrice?: bigint;
3977
+ maxFeePerGas?: bigint;
3978
+ maxPriorityFeePerGas?: bigint;
3979
+ nonce?: number;
3980
+ value?: bigint;
3981
+ }): Promise<void> {
3982
+ return contract.simulate.forceTransfer([frozenAccount, recipient, amount] as const, options) as Promise<void>;
3983
+ },
3984
+ /**
3985
+ * Simulate forceTransfers
3986
+ * Returns gas estimate and result without sending transaction
3987
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
3988
+ */
3989
+ async forceTransfers(frozenAccounts: `0x${string}`[], recipients: `0x${string}`[], amounts: bigint[], options?: {
3990
+ accessList?: import('viem').AccessList;
3991
+ authorizationList?: import('viem').AuthorizationList;
3992
+ chain?: import('viem').Chain | null;
3993
+ dataSuffix?: `0x${string}`;
3994
+ gas?: bigint;
3995
+ gasPrice?: bigint;
3996
+ maxFeePerGas?: bigint;
3997
+ maxPriorityFeePerGas?: bigint;
3998
+ nonce?: number;
3999
+ value?: bigint;
4000
+ }): Promise<void> {
4001
+ return contract.simulate.forceTransfers([frozenAccounts, recipients, amounts] as const, options) as Promise<void>;
4002
+ },
4003
+ /**
4004
+ * Simulate freeze
4005
+ * Returns gas estimate and result without sending transaction
4006
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4007
+ */
4008
+ async freeze(account: `0x${string}`, options?: {
4009
+ accessList?: import('viem').AccessList;
4010
+ authorizationList?: import('viem').AuthorizationList;
4011
+ chain?: import('viem').Chain | null;
4012
+ dataSuffix?: `0x${string}`;
4013
+ gas?: bigint;
4014
+ gasPrice?: bigint;
4015
+ maxFeePerGas?: bigint;
4016
+ maxPriorityFeePerGas?: bigint;
4017
+ nonce?: number;
4018
+ value?: bigint;
4019
+ }): Promise<void> {
4020
+ return contract.simulate.freeze([account] as const, options) as Promise<void>;
4021
+ },
4022
+ /**
4023
+ * Simulate freezeAccounts
4024
+ * Returns gas estimate and result without sending transaction
4025
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4026
+ */
4027
+ async freezeAccounts(accounts: `0x${string}`[], options?: {
4028
+ accessList?: import('viem').AccessList;
4029
+ authorizationList?: import('viem').AuthorizationList;
4030
+ chain?: import('viem').Chain | null;
4031
+ dataSuffix?: `0x${string}`;
4032
+ gas?: bigint;
4033
+ gasPrice?: bigint;
4034
+ maxFeePerGas?: bigint;
4035
+ maxPriorityFeePerGas?: bigint;
4036
+ nonce?: number;
4037
+ value?: bigint;
4038
+ }): Promise<void> {
4039
+ return contract.simulate.freezeAccounts([accounts] as const, options) as Promise<void>;
4040
+ },
4041
+ /**
4042
+ * Simulate grantRole
4043
+ * Returns gas estimate and result without sending transaction
4044
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4045
+ */
4046
+ async grantRole(role: `0x${string}`, account: `0x${string}`, options?: {
4047
+ accessList?: import('viem').AccessList;
4048
+ authorizationList?: import('viem').AuthorizationList;
4049
+ chain?: import('viem').Chain | null;
4050
+ dataSuffix?: `0x${string}`;
4051
+ gas?: bigint;
4052
+ gasPrice?: bigint;
4053
+ maxFeePerGas?: bigint;
4054
+ maxPriorityFeePerGas?: bigint;
4055
+ nonce?: number;
4056
+ value?: bigint;
4057
+ }): Promise<void> {
4058
+ return contract.simulate.grantRole([role, account] as const, options) as Promise<void>;
4059
+ },
4060
+ /**
4061
+ * Simulate initialize
4062
+ * Returns gas estimate and result without sending transaction
4063
+ * Supports multiple overloads: (string, string, address, address, address, address, address, address), (string, string, address, address, address, address, address), (address, address, address, address)
4064
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4065
+ */
4066
+ async initialize(...args: any[]): Promise<any> {
4067
+ return contract.simulate.initialize(args as any) as Promise<any>;
4068
+ },
4069
+ /**
4070
+ * Simulate pause
4071
+ * Returns gas estimate and result without sending transaction
4072
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4073
+ */
4074
+ async pause(options?: {
4075
+ accessList?: import('viem').AccessList;
4076
+ authorizationList?: import('viem').AuthorizationList;
4077
+ chain?: import('viem').Chain | null;
4078
+ dataSuffix?: `0x${string}`;
4079
+ gas?: bigint;
4080
+ gasPrice?: bigint;
4081
+ maxFeePerGas?: bigint;
4082
+ maxPriorityFeePerGas?: bigint;
4083
+ nonce?: number;
4084
+ value?: bigint;
4085
+ }): Promise<void> {
4086
+ return contract.simulate.pause(options) as Promise<void>;
4087
+ },
4088
+ /**
4089
+ * Simulate permit
4090
+ * Returns gas estimate and result without sending transaction
4091
+ * Supports multiple overloads: (address, address, uint256, uint256, bytes), (address, address, uint256, uint256, uint8, bytes32, bytes32)
4092
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4093
+ */
4094
+ async permit(...args: any[]): Promise<any> {
4095
+ return contract.simulate.permit(args as any) as Promise<any>;
4096
+ },
4097
+ /**
4098
+ * Simulate receiveWithAuthorization
4099
+ * Returns gas estimate and result without sending transaction
4100
+ * 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)
4101
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4102
+ */
4103
+ async receiveWithAuthorization(...args: any[]): Promise<any> {
4104
+ return contract.simulate.receiveWithAuthorization(args as any) as Promise<any>;
4105
+ },
4106
+ /**
4107
+ * Simulate removeFromWhitelist
4108
+ * Returns gas estimate and result without sending transaction
4109
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4110
+ */
4111
+ async removeFromWhitelist(account: `0x${string}`, options?: {
4112
+ accessList?: import('viem').AccessList;
4113
+ authorizationList?: import('viem').AuthorizationList;
4114
+ chain?: import('viem').Chain | null;
4115
+ dataSuffix?: `0x${string}`;
4116
+ gas?: bigint;
4117
+ gasPrice?: bigint;
4118
+ maxFeePerGas?: bigint;
4119
+ maxPriorityFeePerGas?: bigint;
4120
+ nonce?: number;
4121
+ value?: bigint;
4122
+ }): Promise<void> {
4123
+ return contract.simulate.removeFromWhitelist([account] as const, options) as Promise<void>;
4124
+ },
4125
+ /**
4126
+ * Simulate renounceRole
4127
+ * Returns gas estimate and result without sending transaction
4128
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4129
+ */
4130
+ async renounceRole(role: `0x${string}`, callerConfirmation: `0x${string}`, options?: {
4131
+ accessList?: import('viem').AccessList;
4132
+ authorizationList?: import('viem').AuthorizationList;
4133
+ chain?: import('viem').Chain | null;
4134
+ dataSuffix?: `0x${string}`;
4135
+ gas?: bigint;
4136
+ gasPrice?: bigint;
4137
+ maxFeePerGas?: bigint;
4138
+ maxPriorityFeePerGas?: bigint;
4139
+ nonce?: number;
4140
+ value?: bigint;
4141
+ }): Promise<void> {
4142
+ return contract.simulate.renounceRole([role, callerConfirmation] as const, options) as Promise<void>;
4143
+ },
4144
+ /**
4145
+ * Simulate replaceAssetWithM
4146
+ * Returns gas estimate and result without sending transaction
4147
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4148
+ */
4149
+ async replaceAssetWithM(asset: `0x${string}`, recipient: `0x${string}`, amount: bigint, options?: {
4150
+ accessList?: import('viem').AccessList;
4151
+ authorizationList?: import('viem').AuthorizationList;
4152
+ chain?: import('viem').Chain | null;
4153
+ dataSuffix?: `0x${string}`;
4154
+ gas?: bigint;
4155
+ gasPrice?: bigint;
4156
+ maxFeePerGas?: bigint;
4157
+ maxPriorityFeePerGas?: bigint;
4158
+ nonce?: number;
4159
+ value?: bigint;
4160
+ }): Promise<void> {
4161
+ return contract.simulate.replaceAssetWithM([asset, recipient, amount] as const, options) as Promise<void>;
4162
+ },
4163
+ /**
4164
+ * Simulate revokeRole
4165
+ * Returns gas estimate and result without sending transaction
4166
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4167
+ */
4168
+ async revokeRole(role: `0x${string}`, account: `0x${string}`, options?: {
4169
+ accessList?: import('viem').AccessList;
4170
+ authorizationList?: import('viem').AuthorizationList;
4171
+ chain?: import('viem').Chain | null;
4172
+ dataSuffix?: `0x${string}`;
4173
+ gas?: bigint;
4174
+ gasPrice?: bigint;
4175
+ maxFeePerGas?: bigint;
4176
+ maxPriorityFeePerGas?: bigint;
4177
+ nonce?: number;
4178
+ value?: bigint;
4179
+ }): Promise<void> {
4180
+ return contract.simulate.revokeRole([role, account] as const, options) as Promise<void>;
4181
+ },
4182
+ /**
4183
+ * Simulate setAssetCap
4184
+ * Returns gas estimate and result without sending transaction
4185
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4186
+ */
4187
+ async setAssetCap(asset: `0x${string}`, cap: bigint, options?: {
4188
+ accessList?: import('viem').AccessList;
4189
+ authorizationList?: import('viem').AuthorizationList;
4190
+ chain?: import('viem').Chain | null;
4191
+ dataSuffix?: `0x${string}`;
4192
+ gas?: bigint;
4193
+ gasPrice?: bigint;
4194
+ maxFeePerGas?: bigint;
4195
+ maxPriorityFeePerGas?: bigint;
4196
+ nonce?: number;
4197
+ value?: bigint;
4198
+ }): Promise<void> {
4199
+ return contract.simulate.setAssetCap([asset, cap] as const, options) as Promise<void>;
4200
+ },
4201
+ /**
4202
+ * Simulate setYieldRecipient
4203
+ * Returns gas estimate and result without sending transaction
4204
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4205
+ */
4206
+ async setYieldRecipient(account: `0x${string}`, options?: {
4207
+ accessList?: import('viem').AccessList;
4208
+ authorizationList?: import('viem').AuthorizationList;
4209
+ chain?: import('viem').Chain | null;
4210
+ dataSuffix?: `0x${string}`;
4211
+ gas?: bigint;
4212
+ gasPrice?: bigint;
4213
+ maxFeePerGas?: bigint;
4214
+ maxPriorityFeePerGas?: bigint;
4215
+ nonce?: number;
4216
+ value?: bigint;
4217
+ }): Promise<void> {
4218
+ return contract.simulate.setYieldRecipient([account] as const, options) as Promise<void>;
4219
+ },
4220
+ /**
4221
+ * Simulate transfer
4222
+ * Returns gas estimate and result without sending transaction
4223
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4224
+ */
4225
+ async transfer(recipient_: `0x${string}`, amount_: bigint, options?: {
4226
+ accessList?: import('viem').AccessList;
4227
+ authorizationList?: import('viem').AuthorizationList;
4228
+ chain?: import('viem').Chain | null;
4229
+ dataSuffix?: `0x${string}`;
4230
+ gas?: bigint;
4231
+ gasPrice?: bigint;
4232
+ maxFeePerGas?: bigint;
4233
+ maxPriorityFeePerGas?: bigint;
4234
+ nonce?: number;
4235
+ value?: bigint;
4236
+ }): Promise<boolean> {
4237
+ return contract.simulate.transfer([recipient_, amount_] as const, options) as Promise<boolean>;
4238
+ },
4239
+ /**
4240
+ * Simulate transferFrom
4241
+ * Returns gas estimate and result without sending transaction
4242
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4243
+ */
4244
+ async transferFrom(sender_: `0x${string}`, recipient_: `0x${string}`, amount_: bigint, options?: {
4245
+ accessList?: import('viem').AccessList;
4246
+ authorizationList?: import('viem').AuthorizationList;
4247
+ chain?: import('viem').Chain | null;
4248
+ dataSuffix?: `0x${string}`;
4249
+ gas?: bigint;
4250
+ gasPrice?: bigint;
4251
+ maxFeePerGas?: bigint;
4252
+ maxPriorityFeePerGas?: bigint;
4253
+ nonce?: number;
4254
+ value?: bigint;
4255
+ }): Promise<boolean> {
4256
+ return contract.simulate.transferFrom([sender_, recipient_, amount_] as const, options) as Promise<boolean>;
4257
+ },
4258
+ /**
4259
+ * Simulate transferWithAuthorization
4260
+ * Returns gas estimate and result without sending transaction
4261
+ * 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)
4262
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4263
+ */
4264
+ async transferWithAuthorization(...args: any[]): Promise<any> {
4265
+ return contract.simulate.transferWithAuthorization(args as any) as Promise<any>;
4266
+ },
4267
+ /**
4268
+ * Simulate unfreeze
4269
+ * Returns gas estimate and result without sending transaction
4270
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4271
+ */
4272
+ async unfreeze(account: `0x${string}`, options?: {
4273
+ accessList?: import('viem').AccessList;
4274
+ authorizationList?: import('viem').AuthorizationList;
4275
+ chain?: import('viem').Chain | null;
4276
+ dataSuffix?: `0x${string}`;
4277
+ gas?: bigint;
4278
+ gasPrice?: bigint;
4279
+ maxFeePerGas?: bigint;
4280
+ maxPriorityFeePerGas?: bigint;
4281
+ nonce?: number;
4282
+ value?: bigint;
4283
+ }): Promise<void> {
4284
+ return contract.simulate.unfreeze([account] as const, options) as Promise<void>;
4285
+ },
4286
+ /**
4287
+ * Simulate unfreezeAccounts
4288
+ * Returns gas estimate and result without sending transaction
4289
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4290
+ */
4291
+ async unfreezeAccounts(accounts: `0x${string}`[], options?: {
4292
+ accessList?: import('viem').AccessList;
4293
+ authorizationList?: import('viem').AuthorizationList;
4294
+ chain?: import('viem').Chain | null;
4295
+ dataSuffix?: `0x${string}`;
4296
+ gas?: bigint;
4297
+ gasPrice?: bigint;
4298
+ maxFeePerGas?: bigint;
4299
+ maxPriorityFeePerGas?: bigint;
4300
+ nonce?: number;
4301
+ value?: bigint;
4302
+ }): Promise<void> {
4303
+ return contract.simulate.unfreezeAccounts([accounts] as const, options) as Promise<void>;
4304
+ },
4305
+ /**
4306
+ * Simulate unpause
4307
+ * Returns gas estimate and result without sending transaction
4308
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4309
+ */
4310
+ async unpause(options?: {
4311
+ accessList?: import('viem').AccessList;
4312
+ authorizationList?: import('viem').AuthorizationList;
4313
+ chain?: import('viem').Chain | null;
4314
+ dataSuffix?: `0x${string}`;
4315
+ gas?: bigint;
4316
+ gasPrice?: bigint;
4317
+ maxFeePerGas?: bigint;
4318
+ maxPriorityFeePerGas?: bigint;
4319
+ nonce?: number;
4320
+ value?: bigint;
4321
+ }): Promise<void> {
4322
+ return contract.simulate.unpause(options) as Promise<void>;
4323
+ },
4324
+ /**
4325
+ * Simulate unwrap
4326
+ * Returns gas estimate and result without sending transaction
4327
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4328
+ */
4329
+ async unwrap(arg0: `0x${string}`, amount: bigint, options?: {
4330
+ accessList?: import('viem').AccessList;
4331
+ authorizationList?: import('viem').AuthorizationList;
4332
+ chain?: import('viem').Chain | null;
4333
+ dataSuffix?: `0x${string}`;
4334
+ gas?: bigint;
4335
+ gasPrice?: bigint;
4336
+ maxFeePerGas?: bigint;
4337
+ maxPriorityFeePerGas?: bigint;
4338
+ nonce?: number;
4339
+ value?: bigint;
4340
+ }): Promise<void> {
4341
+ return contract.simulate.unwrap([arg0, amount] as const, options) as Promise<void>;
4342
+ },
4343
+ /**
4344
+ * Simulate whitelist
4345
+ * Returns gas estimate and result without sending transaction
4346
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4347
+ */
4348
+ async whitelist(account: `0x${string}`, options?: {
4349
+ accessList?: import('viem').AccessList;
4350
+ authorizationList?: import('viem').AuthorizationList;
4351
+ chain?: import('viem').Chain | null;
4352
+ dataSuffix?: `0x${string}`;
4353
+ gas?: bigint;
4354
+ gasPrice?: bigint;
4355
+ maxFeePerGas?: bigint;
4356
+ maxPriorityFeePerGas?: bigint;
4357
+ nonce?: number;
4358
+ value?: bigint;
4359
+ }): Promise<void> {
4360
+ return contract.simulate.whitelist([account] as const, options) as Promise<void>;
4361
+ },
4362
+ /**
4363
+ * Simulate wrap
4364
+ * Returns gas estimate and result without sending transaction
4365
+ * Supports multiple overloads: (address, address, uint256), (address, uint256)
4366
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
4367
+ */
4368
+ async wrap(...args: any[]): Promise<any> {
4369
+ return contract.simulate.wrap(args as any) as Promise<any>;
4370
+ }
4371
+ };
4372
+ }
4373
+
4374
+ /**
4375
+ * Watch contract events
4376
+ *
4377
+ * @example
4378
+ * // Watch all Transfer events
4379
+ * const unwatch = contract.watch.Transfer((event) => {
4380
+ * console.log('Transfer:', event);
4381
+ * });
4382
+ *
4383
+ * // Stop watching
4384
+ * unwatch();
4385
+ */
4386
+ get watch() {
4387
+ return {
4388
+ /**
4389
+ * Watch Approval events
4390
+ * @param callback Function to call when event is emitted
4391
+ * @param filter Optional filter for indexed parameters
4392
+ * @returns Unwatch function to stop listening
4393
+ */
4394
+ 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 }) => {
4395
+ return this.publicClient.watchContractEvent({
4396
+ address: this.contractAddress,
4397
+ abi: USDatAbi,
4398
+ eventName: 'Approval',
4399
+ args: filter as any,
4400
+ onLogs: (logs: any[]) => {
4401
+ logs.forEach((log: any) => {
4402
+ callback(log.args as any);
4403
+ });
4404
+ },
4405
+ }) as () => void;
4406
+ },
4407
+ /**
4408
+ * Watch AssetCapSet events
4409
+ * @param callback Function to call when event is emitted
4410
+ * @param filter Optional filter for indexed parameters
4411
+ * @returns Unwatch function to stop listening
4412
+ */
4413
+ AssetCapSet: (callback: (event: { asset: `0x${string}`; cap: bigint }) => void, filter?: { asset?: `0x${string}` | `0x${string}`[] | null }) => {
4414
+ return this.publicClient.watchContractEvent({
4415
+ address: this.contractAddress,
4416
+ abi: USDatAbi,
4417
+ eventName: 'AssetCapSet',
4418
+ args: filter as any,
4419
+ onLogs: (logs: any[]) => {
4420
+ logs.forEach((log: any) => {
4421
+ callback(log.args as any);
4422
+ });
4423
+ },
4424
+ }) as () => void;
4425
+ },
4426
+ /**
4427
+ * Watch AssetReplacedWithM events
4428
+ * @param callback Function to call when event is emitted
4429
+ * @param filter Optional filter for indexed parameters
4430
+ * @returns Unwatch function to stop listening
4431
+ */
4432
+ AssetReplacedWithM: (callback: (event: { asset: `0x${string}`; assetAmount: bigint; recipient: `0x${string}`; mAmount: bigint }) => void, filter?: { asset?: `0x${string}` | `0x${string}`[] | null; recipient?: `0x${string}` | `0x${string}`[] | null }) => {
4433
+ return this.publicClient.watchContractEvent({
4434
+ address: this.contractAddress,
4435
+ abi: USDatAbi,
4436
+ eventName: 'AssetReplacedWithM',
4437
+ args: filter as any,
4438
+ onLogs: (logs: any[]) => {
4439
+ logs.forEach((log: any) => {
4440
+ callback(log.args as any);
4441
+ });
4442
+ },
4443
+ }) as () => void;
4444
+ },
4445
+ /**
4446
+ * Watch AuthorizationCanceled events
4447
+ * @param callback Function to call when event is emitted
4448
+ * @param filter Optional filter for indexed parameters
4449
+ * @returns Unwatch function to stop listening
4450
+ */
4451
+ AuthorizationCanceled: (callback: (event: { authorizer: `0x${string}`; nonce: `0x${string}` }) => void, filter?: { authorizer?: `0x${string}` | `0x${string}`[] | null; nonce?: `0x${string}` | `0x${string}`[] | null }) => {
4452
+ return this.publicClient.watchContractEvent({
4453
+ address: this.contractAddress,
4454
+ abi: USDatAbi,
4455
+ eventName: 'AuthorizationCanceled',
4456
+ args: filter as any,
4457
+ onLogs: (logs: any[]) => {
4458
+ logs.forEach((log: any) => {
4459
+ callback(log.args as any);
4460
+ });
4461
+ },
4462
+ }) as () => void;
4463
+ },
4464
+ /**
4465
+ * Watch AuthorizationUsed events
4466
+ * @param callback Function to call when event is emitted
4467
+ * @param filter Optional filter for indexed parameters
4468
+ * @returns Unwatch function to stop listening
4469
+ */
4470
+ AuthorizationUsed: (callback: (event: { authorizer: `0x${string}`; nonce: `0x${string}` }) => void, filter?: { authorizer?: `0x${string}` | `0x${string}`[] | null; nonce?: `0x${string}` | `0x${string}`[] | null }) => {
4471
+ return this.publicClient.watchContractEvent({
4472
+ address: this.contractAddress,
4473
+ abi: USDatAbi,
4474
+ eventName: 'AuthorizationUsed',
4475
+ args: filter as any,
4476
+ onLogs: (logs: any[]) => {
4477
+ logs.forEach((log: any) => {
4478
+ callback(log.args as any);
4479
+ });
4480
+ },
4481
+ }) as () => void;
4482
+ },
4483
+ /**
4484
+ * Watch EIP712DomainChanged events
4485
+ * @param callback Function to call when event is emitted
4486
+ * @param filter Optional filter for indexed parameters
4487
+ * @returns Unwatch function to stop listening
4488
+ */
4489
+ EIP712DomainChanged: (callback: (event: { }) => void) => {
4490
+ return this.publicClient.watchContractEvent({
4491
+ address: this.contractAddress,
4492
+ abi: USDatAbi,
4493
+ eventName: 'EIP712DomainChanged',
4494
+
4495
+ onLogs: (logs: any[]) => {
4496
+ logs.forEach((log: any) => {
4497
+ callback(log.args as any);
4498
+ });
4499
+ },
4500
+ }) as () => void;
4501
+ },
4502
+ /**
4503
+ * Watch EarningDisabled events
4504
+ * @param callback Function to call when event is emitted
4505
+ * @param filter Optional filter for indexed parameters
4506
+ * @returns Unwatch function to stop listening
4507
+ */
4508
+ EarningDisabled: (callback: (event: { index: bigint }) => void) => {
4509
+ return this.publicClient.watchContractEvent({
4510
+ address: this.contractAddress,
4511
+ abi: USDatAbi,
4512
+ eventName: 'EarningDisabled',
4513
+
4514
+ onLogs: (logs: any[]) => {
4515
+ logs.forEach((log: any) => {
4516
+ callback(log.args as any);
4517
+ });
4518
+ },
4519
+ }) as () => void;
4520
+ },
4521
+ /**
4522
+ * Watch EarningEnabled events
4523
+ * @param callback Function to call when event is emitted
4524
+ * @param filter Optional filter for indexed parameters
4525
+ * @returns Unwatch function to stop listening
4526
+ */
4527
+ EarningEnabled: (callback: (event: { index: bigint }) => void) => {
4528
+ return this.publicClient.watchContractEvent({
4529
+ address: this.contractAddress,
4530
+ abi: USDatAbi,
4531
+ eventName: 'EarningEnabled',
4532
+
4533
+ onLogs: (logs: any[]) => {
4534
+ logs.forEach((log: any) => {
4535
+ callback(log.args as any);
4536
+ });
4537
+ },
4538
+ }) as () => void;
4539
+ },
4540
+ /**
4541
+ * Watch ForcedTransfer events
4542
+ * @param callback Function to call when event is emitted
4543
+ * @param filter Optional filter for indexed parameters
4544
+ * @returns Unwatch function to stop listening
4545
+ */
4546
+ 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 }) => {
4547
+ return this.publicClient.watchContractEvent({
4548
+ address: this.contractAddress,
4549
+ abi: USDatAbi,
4550
+ eventName: 'ForcedTransfer',
4551
+ args: filter as any,
4552
+ onLogs: (logs: any[]) => {
4553
+ logs.forEach((log: any) => {
4554
+ callback(log.args as any);
4555
+ });
4556
+ },
4557
+ }) as () => void;
4558
+ },
4559
+ /**
4560
+ * Watch Frozen events
4561
+ * @param callback Function to call when event is emitted
4562
+ * @param filter Optional filter for indexed parameters
4563
+ * @returns Unwatch function to stop listening
4564
+ */
4565
+ Frozen: (callback: (event: { account: `0x${string}`; timestamp: bigint }) => void, filter?: { account?: `0x${string}` | `0x${string}`[] | null }) => {
4566
+ return this.publicClient.watchContractEvent({
4567
+ address: this.contractAddress,
4568
+ abi: USDatAbi,
4569
+ eventName: 'Frozen',
4570
+ args: filter as any,
4571
+ onLogs: (logs: any[]) => {
4572
+ logs.forEach((log: any) => {
4573
+ callback(log.args as any);
4574
+ });
4575
+ },
4576
+ }) as () => void;
4577
+ },
4578
+ /**
4579
+ * Watch Initialized events
4580
+ * @param callback Function to call when event is emitted
4581
+ * @param filter Optional filter for indexed parameters
4582
+ * @returns Unwatch function to stop listening
4583
+ */
4584
+ Initialized: (callback: (event: { version: bigint }) => void) => {
4585
+ return this.publicClient.watchContractEvent({
4586
+ address: this.contractAddress,
4587
+ abi: USDatAbi,
4588
+ eventName: 'Initialized',
4589
+
4590
+ onLogs: (logs: any[]) => {
4591
+ logs.forEach((log: any) => {
4592
+ callback(log.args as any);
4593
+ });
4594
+ },
4595
+ }) as () => void;
4596
+ },
4597
+ /**
4598
+ * Watch Paused events
4599
+ * @param callback Function to call when event is emitted
4600
+ * @param filter Optional filter for indexed parameters
4601
+ * @returns Unwatch function to stop listening
4602
+ */
4603
+ Paused: (callback: (event: { account: `0x${string}` }) => void) => {
4604
+ return this.publicClient.watchContractEvent({
4605
+ address: this.contractAddress,
4606
+ abi: USDatAbi,
4607
+ eventName: 'Paused',
4608
+
4609
+ onLogs: (logs: any[]) => {
4610
+ logs.forEach((log: any) => {
4611
+ callback(log.args as any);
4612
+ });
4613
+ },
4614
+ }) as () => void;
4615
+ },
4616
+ /**
4617
+ * Watch RemovedFromWhitelist events
4618
+ * @param callback Function to call when event is emitted
4619
+ * @param filter Optional filter for indexed parameters
4620
+ * @returns Unwatch function to stop listening
4621
+ */
4622
+ RemovedFromWhitelist: (callback: (event: { account: `0x${string}`; timestamp: bigint }) => void, filter?: { account?: `0x${string}` | `0x${string}`[] | null }) => {
4623
+ return this.publicClient.watchContractEvent({
4624
+ address: this.contractAddress,
4625
+ abi: USDatAbi,
4626
+ eventName: 'RemovedFromWhitelist',
4627
+ args: filter as any,
4628
+ onLogs: (logs: any[]) => {
4629
+ logs.forEach((log: any) => {
4630
+ callback(log.args as any);
4631
+ });
4632
+ },
4633
+ }) as () => void;
4634
+ },
4635
+ /**
4636
+ * Watch RoleAdminChanged events
4637
+ * @param callback Function to call when event is emitted
4638
+ * @param filter Optional filter for indexed parameters
4639
+ * @returns Unwatch function to stop listening
4640
+ */
4641
+ 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 }) => {
4642
+ return this.publicClient.watchContractEvent({
4643
+ address: this.contractAddress,
4644
+ abi: USDatAbi,
4645
+ eventName: 'RoleAdminChanged',
4646
+ args: filter as any,
4647
+ onLogs: (logs: any[]) => {
4648
+ logs.forEach((log: any) => {
4649
+ callback(log.args as any);
4650
+ });
4651
+ },
4652
+ }) as () => void;
4653
+ },
4654
+ /**
4655
+ * Watch RoleGranted events
4656
+ * @param callback Function to call when event is emitted
4657
+ * @param filter Optional filter for indexed parameters
4658
+ * @returns Unwatch function to stop listening
4659
+ */
4660
+ 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 }) => {
4661
+ return this.publicClient.watchContractEvent({
4662
+ address: this.contractAddress,
4663
+ abi: USDatAbi,
4664
+ eventName: 'RoleGranted',
4665
+ args: filter as any,
4666
+ onLogs: (logs: any[]) => {
4667
+ logs.forEach((log: any) => {
4668
+ callback(log.args as any);
4669
+ });
4670
+ },
4671
+ }) as () => void;
4672
+ },
4673
+ /**
4674
+ * Watch RoleRevoked events
4675
+ * @param callback Function to call when event is emitted
4676
+ * @param filter Optional filter for indexed parameters
4677
+ * @returns Unwatch function to stop listening
4678
+ */
4679
+ 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 }) => {
4680
+ return this.publicClient.watchContractEvent({
4681
+ address: this.contractAddress,
4682
+ abi: USDatAbi,
4683
+ eventName: 'RoleRevoked',
4684
+ args: filter as any,
4685
+ onLogs: (logs: any[]) => {
4686
+ logs.forEach((log: any) => {
4687
+ callback(log.args as any);
4688
+ });
4689
+ },
4690
+ }) as () => void;
4691
+ },
4692
+ /**
4693
+ * Watch Transfer events
4694
+ * @param callback Function to call when event is emitted
4695
+ * @param filter Optional filter for indexed parameters
4696
+ * @returns Unwatch function to stop listening
4697
+ */
4698
+ 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 }) => {
4699
+ return this.publicClient.watchContractEvent({
4700
+ address: this.contractAddress,
4701
+ abi: USDatAbi,
4702
+ eventName: 'Transfer',
4703
+ args: filter as any,
4704
+ onLogs: (logs: any[]) => {
4705
+ logs.forEach((log: any) => {
4706
+ callback(log.args as any);
4707
+ });
4708
+ },
4709
+ }) as () => void;
4710
+ },
4711
+ /**
4712
+ * Watch Unfrozen events
4713
+ * @param callback Function to call when event is emitted
4714
+ * @param filter Optional filter for indexed parameters
4715
+ * @returns Unwatch function to stop listening
4716
+ */
4717
+ Unfrozen: (callback: (event: { account: `0x${string}`; timestamp: bigint }) => void, filter?: { account?: `0x${string}` | `0x${string}`[] | null }) => {
4718
+ return this.publicClient.watchContractEvent({
4719
+ address: this.contractAddress,
4720
+ abi: USDatAbi,
4721
+ eventName: 'Unfrozen',
4722
+ args: filter as any,
4723
+ onLogs: (logs: any[]) => {
4724
+ logs.forEach((log: any) => {
4725
+ callback(log.args as any);
4726
+ });
4727
+ },
4728
+ }) as () => void;
4729
+ },
4730
+ /**
4731
+ * Watch Unpaused events
4732
+ * @param callback Function to call when event is emitted
4733
+ * @param filter Optional filter for indexed parameters
4734
+ * @returns Unwatch function to stop listening
4735
+ */
4736
+ Unpaused: (callback: (event: { account: `0x${string}` }) => void) => {
4737
+ return this.publicClient.watchContractEvent({
4738
+ address: this.contractAddress,
4739
+ abi: USDatAbi,
4740
+ eventName: 'Unpaused',
4741
+
4742
+ onLogs: (logs: any[]) => {
4743
+ logs.forEach((log: any) => {
4744
+ callback(log.args as any);
4745
+ });
4746
+ },
4747
+ }) as () => void;
4748
+ },
4749
+ /**
4750
+ * Watch WhitelistDisabled events
4751
+ * @param callback Function to call when event is emitted
4752
+ * @param filter Optional filter for indexed parameters
4753
+ * @returns Unwatch function to stop listening
4754
+ */
4755
+ WhitelistDisabled: (callback: (event: { timestamp: bigint }) => void) => {
4756
+ return this.publicClient.watchContractEvent({
4757
+ address: this.contractAddress,
4758
+ abi: USDatAbi,
4759
+ eventName: 'WhitelistDisabled',
4760
+
4761
+ onLogs: (logs: any[]) => {
4762
+ logs.forEach((log: any) => {
4763
+ callback(log.args as any);
4764
+ });
4765
+ },
4766
+ }) as () => void;
4767
+ },
4768
+ /**
4769
+ * Watch WhitelistEnabled events
4770
+ * @param callback Function to call when event is emitted
4771
+ * @param filter Optional filter for indexed parameters
4772
+ * @returns Unwatch function to stop listening
4773
+ */
4774
+ WhitelistEnabled: (callback: (event: { timestamp: bigint }) => void) => {
4775
+ return this.publicClient.watchContractEvent({
4776
+ address: this.contractAddress,
4777
+ abi: USDatAbi,
4778
+ eventName: 'WhitelistEnabled',
4779
+
4780
+ onLogs: (logs: any[]) => {
4781
+ logs.forEach((log: any) => {
4782
+ callback(log.args as any);
4783
+ });
4784
+ },
4785
+ }) as () => void;
4786
+ },
4787
+ /**
4788
+ * Watch Whitelisted events
4789
+ * @param callback Function to call when event is emitted
4790
+ * @param filter Optional filter for indexed parameters
4791
+ * @returns Unwatch function to stop listening
4792
+ */
4793
+ Whitelisted: (callback: (event: { account: `0x${string}`; timestamp: bigint }) => void, filter?: { account?: `0x${string}` | `0x${string}`[] | null }) => {
4794
+ return this.publicClient.watchContractEvent({
4795
+ address: this.contractAddress,
4796
+ abi: USDatAbi,
4797
+ eventName: 'Whitelisted',
4798
+ args: filter as any,
4799
+ onLogs: (logs: any[]) => {
4800
+ logs.forEach((log: any) => {
4801
+ callback(log.args as any);
4802
+ });
4803
+ },
4804
+ }) as () => void;
4805
+ },
4806
+ /**
4807
+ * Watch YieldClaimed events
4808
+ * @param callback Function to call when event is emitted
4809
+ * @param filter Optional filter for indexed parameters
4810
+ * @returns Unwatch function to stop listening
4811
+ */
4812
+ YieldClaimed: (callback: (event: { yield: bigint }) => void) => {
4813
+ return this.publicClient.watchContractEvent({
4814
+ address: this.contractAddress,
4815
+ abi: USDatAbi,
4816
+ eventName: 'YieldClaimed',
4817
+
4818
+ onLogs: (logs: any[]) => {
4819
+ logs.forEach((log: any) => {
4820
+ callback(log.args as any);
4821
+ });
4822
+ },
4823
+ }) as () => void;
4824
+ },
4825
+ /**
4826
+ * Watch YieldRecipientSet events
4827
+ * @param callback Function to call when event is emitted
4828
+ * @param filter Optional filter for indexed parameters
4829
+ * @returns Unwatch function to stop listening
4830
+ */
4831
+ YieldRecipientSet: (callback: (event: { yieldRecipient: `0x${string}` }) => void, filter?: { yieldRecipient?: `0x${string}` | `0x${string}`[] | null }) => {
4832
+ return this.publicClient.watchContractEvent({
4833
+ address: this.contractAddress,
4834
+ abi: USDatAbi,
4835
+ eventName: 'YieldRecipientSet',
4836
+ args: filter as any,
4837
+ onLogs: (logs: any[]) => {
4838
+ logs.forEach((log: any) => {
4839
+ callback(log.args as any);
4840
+ });
4841
+ },
4842
+ }) as () => void;
4843
+ }
4844
+ };
4845
+ }
4846
+ }