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