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