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