@gitmyabi/sena 1.0.0

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