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