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