@gitmyabi/sibo 1.0.1

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