@gitmyabi/cc 1.0.1 → 1.0.2

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,2294 @@
1
+ import type { Abi, Address, PublicClient, WalletClient, GetContractReturnType } from 'viem';
2
+ import { getContract } from 'viem';
3
+
4
+
5
+ /**
6
+ * IERC721AUpgradeable.TokenOwnership struct type
7
+ */
8
+ export type IERC721AUpgradeable_TokenOwnership = {
9
+ addr: `0x${string}`;
10
+ startTimestamp: bigint;
11
+ burned: boolean;
12
+ extraData: bigint;
13
+ };
14
+ /**
15
+ * EmblemVault721AUpgradeable_json ABI
16
+ *
17
+ * This ABI is typed using viem's type system for full type safety.
18
+ */
19
+ export const EmblemVault721AUpgradeable_jsonAbi = [
20
+ {
21
+ "inputs": [],
22
+ "name": "ApprovalCallerNotOwnerNorApproved",
23
+ "type": "error"
24
+ },
25
+ {
26
+ "inputs": [],
27
+ "name": "ApprovalQueryForNonexistentToken",
28
+ "type": "error"
29
+ },
30
+ {
31
+ "inputs": [],
32
+ "name": "BalanceQueryForZeroAddress",
33
+ "type": "error"
34
+ },
35
+ {
36
+ "inputs": [],
37
+ "name": "InvalidQueryRange",
38
+ "type": "error"
39
+ },
40
+ {
41
+ "inputs": [],
42
+ "name": "MintERC2309QuantityExceedsLimit",
43
+ "type": "error"
44
+ },
45
+ {
46
+ "inputs": [],
47
+ "name": "MintToZeroAddress",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [],
52
+ "name": "MintZeroQuantity",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "operator",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "OperatorNotAllowed",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "OwnerQueryForNonexistentToken",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [],
73
+ "name": "OwnershipNotInitializedForExtraData",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "TransferCallerNotOwnerNorApproved",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "TransferFromIncorrectOwner",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "TransferToNonERC721ReceiverImplementer",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "TransferToZeroAddress",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "URIQueryForNonexistentToken",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "anonymous": false,
103
+ "inputs": [
104
+ {
105
+ "indexed": true,
106
+ "internalType": "address",
107
+ "name": "owner",
108
+ "type": "address"
109
+ },
110
+ {
111
+ "indexed": true,
112
+ "internalType": "address",
113
+ "name": "approved",
114
+ "type": "address"
115
+ },
116
+ {
117
+ "indexed": true,
118
+ "internalType": "uint256",
119
+ "name": "tokenId",
120
+ "type": "uint256"
121
+ }
122
+ ],
123
+ "name": "Approval",
124
+ "type": "event"
125
+ },
126
+ {
127
+ "anonymous": false,
128
+ "inputs": [
129
+ {
130
+ "indexed": true,
131
+ "internalType": "address",
132
+ "name": "owner",
133
+ "type": "address"
134
+ },
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "operator",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "bool",
144
+ "name": "approved",
145
+ "type": "bool"
146
+ }
147
+ ],
148
+ "name": "ApprovalForAll",
149
+ "type": "event"
150
+ },
151
+ {
152
+ "anonymous": false,
153
+ "inputs": [
154
+ {
155
+ "indexed": true,
156
+ "internalType": "uint256",
157
+ "name": "fromTokenId",
158
+ "type": "uint256"
159
+ },
160
+ {
161
+ "indexed": false,
162
+ "internalType": "uint256",
163
+ "name": "toTokenId",
164
+ "type": "uint256"
165
+ },
166
+ {
167
+ "indexed": true,
168
+ "internalType": "address",
169
+ "name": "from",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "indexed": true,
174
+ "internalType": "address",
175
+ "name": "to",
176
+ "type": "address"
177
+ }
178
+ ],
179
+ "name": "ConsecutiveTransfer",
180
+ "type": "event"
181
+ },
182
+ {
183
+ "anonymous": false,
184
+ "inputs": [
185
+ {
186
+ "indexed": false,
187
+ "internalType": "uint8",
188
+ "name": "version",
189
+ "type": "uint8"
190
+ }
191
+ ],
192
+ "name": "Initialized",
193
+ "type": "event"
194
+ },
195
+ {
196
+ "anonymous": false,
197
+ "inputs": [
198
+ {
199
+ "indexed": true,
200
+ "internalType": "address",
201
+ "name": "previousOwner",
202
+ "type": "address"
203
+ },
204
+ {
205
+ "indexed": true,
206
+ "internalType": "address",
207
+ "name": "newOwner",
208
+ "type": "address"
209
+ }
210
+ ],
211
+ "name": "OwnershipTransferred",
212
+ "type": "event"
213
+ },
214
+ {
215
+ "anonymous": false,
216
+ "inputs": [
217
+ {
218
+ "indexed": true,
219
+ "internalType": "address",
220
+ "name": "from",
221
+ "type": "address"
222
+ },
223
+ {
224
+ "indexed": true,
225
+ "internalType": "address",
226
+ "name": "to",
227
+ "type": "address"
228
+ },
229
+ {
230
+ "indexed": true,
231
+ "internalType": "uint256",
232
+ "name": "tokenId",
233
+ "type": "uint256"
234
+ }
235
+ ],
236
+ "name": "Transfer",
237
+ "type": "event"
238
+ },
239
+ {
240
+ "inputs": [
241
+ {
242
+ "internalType": "address",
243
+ "name": "who",
244
+ "type": "address"
245
+ },
246
+ {
247
+ "internalType": "bytes4",
248
+ "name": "functionSig",
249
+ "type": "bytes4"
250
+ },
251
+ {
252
+ "internalType": "uint256",
253
+ "name": "id",
254
+ "type": "uint256"
255
+ }
256
+ ],
257
+ "name": "addBypassRule",
258
+ "outputs": [],
259
+ "stateMutability": "nonpayable",
260
+ "type": "function"
261
+ },
262
+ {
263
+ "inputs": [
264
+ {
265
+ "internalType": "address",
266
+ "name": "operator",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "internalType": "uint256",
271
+ "name": "tokenId",
272
+ "type": "uint256"
273
+ }
274
+ ],
275
+ "name": "approve",
276
+ "outputs": [],
277
+ "stateMutability": "payable",
278
+ "type": "function"
279
+ },
280
+ {
281
+ "inputs": [
282
+ {
283
+ "internalType": "address",
284
+ "name": "owner",
285
+ "type": "address"
286
+ }
287
+ ],
288
+ "name": "balanceOf",
289
+ "outputs": [
290
+ {
291
+ "internalType": "uint256",
292
+ "name": "",
293
+ "type": "uint256"
294
+ }
295
+ ],
296
+ "stateMutability": "view",
297
+ "type": "function"
298
+ },
299
+ {
300
+ "inputs": [
301
+ {
302
+ "internalType": "uint256",
303
+ "name": "tokenId",
304
+ "type": "uint256"
305
+ }
306
+ ],
307
+ "name": "burn",
308
+ "outputs": [],
309
+ "stateMutability": "nonpayable",
310
+ "type": "function"
311
+ },
312
+ {
313
+ "inputs": [],
314
+ "name": "byPassable",
315
+ "outputs": [
316
+ {
317
+ "internalType": "bool",
318
+ "name": "",
319
+ "type": "bool"
320
+ }
321
+ ],
322
+ "stateMutability": "view",
323
+ "type": "function"
324
+ },
325
+ {
326
+ "inputs": [
327
+ {
328
+ "internalType": "address",
329
+ "name": "",
330
+ "type": "address"
331
+ },
332
+ {
333
+ "internalType": "bytes4",
334
+ "name": "",
335
+ "type": "bytes4"
336
+ }
337
+ ],
338
+ "name": "byPassableFunction",
339
+ "outputs": [
340
+ {
341
+ "internalType": "bool",
342
+ "name": "",
343
+ "type": "bool"
344
+ }
345
+ ],
346
+ "stateMutability": "view",
347
+ "type": "function"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "uint256",
353
+ "name": "tokenId",
354
+ "type": "uint256"
355
+ }
356
+ ],
357
+ "name": "explicitOwnershipOf",
358
+ "outputs": [
359
+ {
360
+ "components": [
361
+ {
362
+ "internalType": "address",
363
+ "name": "addr",
364
+ "type": "address"
365
+ },
366
+ {
367
+ "internalType": "uint64",
368
+ "name": "startTimestamp",
369
+ "type": "uint64"
370
+ },
371
+ {
372
+ "internalType": "bool",
373
+ "name": "burned",
374
+ "type": "bool"
375
+ },
376
+ {
377
+ "internalType": "uint24",
378
+ "name": "extraData",
379
+ "type": "uint24"
380
+ }
381
+ ],
382
+ "internalType": "struct IERC721AUpgradeable.TokenOwnership",
383
+ "name": "ownership",
384
+ "type": "tuple"
385
+ }
386
+ ],
387
+ "stateMutability": "view",
388
+ "type": "function"
389
+ },
390
+ {
391
+ "inputs": [
392
+ {
393
+ "internalType": "uint256[]",
394
+ "name": "tokenIds",
395
+ "type": "uint256[]"
396
+ }
397
+ ],
398
+ "name": "explicitOwnershipsOf",
399
+ "outputs": [
400
+ {
401
+ "components": [
402
+ {
403
+ "internalType": "address",
404
+ "name": "addr",
405
+ "type": "address"
406
+ },
407
+ {
408
+ "internalType": "uint64",
409
+ "name": "startTimestamp",
410
+ "type": "uint64"
411
+ },
412
+ {
413
+ "internalType": "bool",
414
+ "name": "burned",
415
+ "type": "bool"
416
+ },
417
+ {
418
+ "internalType": "uint24",
419
+ "name": "extraData",
420
+ "type": "uint24"
421
+ }
422
+ ],
423
+ "internalType": "struct IERC721AUpgradeable.TokenOwnership[]",
424
+ "name": "",
425
+ "type": "tuple[]"
426
+ }
427
+ ],
428
+ "stateMutability": "view",
429
+ "type": "function"
430
+ },
431
+ {
432
+ "inputs": [
433
+ {
434
+ "internalType": "uint256",
435
+ "name": "_type",
436
+ "type": "uint256"
437
+ }
438
+ ],
439
+ "name": "getAllRegisteredContractsOfType",
440
+ "outputs": [
441
+ {
442
+ "internalType": "address[]",
443
+ "name": "",
444
+ "type": "address[]"
445
+ }
446
+ ],
447
+ "stateMutability": "view",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [
452
+ {
453
+ "internalType": "uint256",
454
+ "name": "tokenId",
455
+ "type": "uint256"
456
+ }
457
+ ],
458
+ "name": "getApproved",
459
+ "outputs": [
460
+ {
461
+ "internalType": "address",
462
+ "name": "",
463
+ "type": "address"
464
+ }
465
+ ],
466
+ "stateMutability": "view",
467
+ "type": "function"
468
+ },
469
+ {
470
+ "inputs": [
471
+ {
472
+ "internalType": "uint256",
473
+ "name": "tokenId",
474
+ "type": "uint256"
475
+ }
476
+ ],
477
+ "name": "getInternalTokenId",
478
+ "outputs": [
479
+ {
480
+ "internalType": "uint256",
481
+ "name": "",
482
+ "type": "uint256"
483
+ }
484
+ ],
485
+ "stateMutability": "view",
486
+ "type": "function"
487
+ },
488
+ {
489
+ "inputs": [
490
+ {
491
+ "internalType": "string",
492
+ "name": "name_",
493
+ "type": "string"
494
+ },
495
+ {
496
+ "internalType": "string",
497
+ "name": "symbol_",
498
+ "type": "string"
499
+ }
500
+ ],
501
+ "name": "initialize",
502
+ "outputs": [],
503
+ "stateMutability": "nonpayable",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [],
508
+ "name": "interfaceId",
509
+ "outputs": [
510
+ {
511
+ "internalType": "bytes4",
512
+ "name": "",
513
+ "type": "bytes4"
514
+ }
515
+ ],
516
+ "stateMutability": "pure",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [
521
+ {
522
+ "internalType": "address",
523
+ "name": "owner",
524
+ "type": "address"
525
+ },
526
+ {
527
+ "internalType": "address",
528
+ "name": "operator",
529
+ "type": "address"
530
+ }
531
+ ],
532
+ "name": "isApprovedForAll",
533
+ "outputs": [
534
+ {
535
+ "internalType": "bool",
536
+ "name": "",
537
+ "type": "bool"
538
+ }
539
+ ],
540
+ "stateMutability": "view",
541
+ "type": "function"
542
+ },
543
+ {
544
+ "inputs": [],
545
+ "name": "isClaimable",
546
+ "outputs": [
547
+ {
548
+ "internalType": "bool",
549
+ "name": "",
550
+ "type": "bool"
551
+ }
552
+ ],
553
+ "stateMutability": "view",
554
+ "type": "function"
555
+ },
556
+ {
557
+ "inputs": [
558
+ {
559
+ "internalType": "address",
560
+ "name": "_contract",
561
+ "type": "address"
562
+ },
563
+ {
564
+ "internalType": "uint256",
565
+ "name": "_type",
566
+ "type": "uint256"
567
+ }
568
+ ],
569
+ "name": "isRegistered",
570
+ "outputs": [
571
+ {
572
+ "internalType": "bool",
573
+ "name": "",
574
+ "type": "bool"
575
+ }
576
+ ],
577
+ "stateMutability": "view",
578
+ "type": "function"
579
+ },
580
+ {
581
+ "inputs": [
582
+ {
583
+ "internalType": "address",
584
+ "name": "to",
585
+ "type": "address"
586
+ },
587
+ {
588
+ "internalType": "uint256",
589
+ "name": "externalTokenId",
590
+ "type": "uint256"
591
+ }
592
+ ],
593
+ "name": "mint",
594
+ "outputs": [],
595
+ "stateMutability": "nonpayable",
596
+ "type": "function"
597
+ },
598
+ {
599
+ "inputs": [
600
+ {
601
+ "internalType": "address[]",
602
+ "name": "to",
603
+ "type": "address[]"
604
+ },
605
+ {
606
+ "internalType": "uint256[]",
607
+ "name": "externalTokenId",
608
+ "type": "uint256[]"
609
+ }
610
+ ],
611
+ "name": "mintMany",
612
+ "outputs": [],
613
+ "stateMutability": "nonpayable",
614
+ "type": "function"
615
+ },
616
+ {
617
+ "inputs": [],
618
+ "name": "name",
619
+ "outputs": [
620
+ {
621
+ "internalType": "string",
622
+ "name": "",
623
+ "type": "string"
624
+ }
625
+ ],
626
+ "stateMutability": "view",
627
+ "type": "function"
628
+ },
629
+ {
630
+ "inputs": [],
631
+ "name": "owner",
632
+ "outputs": [
633
+ {
634
+ "internalType": "address",
635
+ "name": "",
636
+ "type": "address"
637
+ }
638
+ ],
639
+ "stateMutability": "view",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [
644
+ {
645
+ "internalType": "uint256",
646
+ "name": "tokenId",
647
+ "type": "uint256"
648
+ }
649
+ ],
650
+ "name": "ownerOf",
651
+ "outputs": [
652
+ {
653
+ "internalType": "address",
654
+ "name": "",
655
+ "type": "address"
656
+ }
657
+ ],
658
+ "stateMutability": "view",
659
+ "type": "function"
660
+ },
661
+ {
662
+ "inputs": [
663
+ {
664
+ "internalType": "address",
665
+ "name": "_contract",
666
+ "type": "address"
667
+ },
668
+ {
669
+ "internalType": "uint256",
670
+ "name": "_type",
671
+ "type": "uint256"
672
+ }
673
+ ],
674
+ "name": "registerContract",
675
+ "outputs": [],
676
+ "stateMutability": "nonpayable",
677
+ "type": "function"
678
+ },
679
+ {
680
+ "inputs": [
681
+ {
682
+ "internalType": "address",
683
+ "name": "",
684
+ "type": "address"
685
+ }
686
+ ],
687
+ "name": "registeredContracts",
688
+ "outputs": [
689
+ {
690
+ "internalType": "uint256",
691
+ "name": "",
692
+ "type": "uint256"
693
+ }
694
+ ],
695
+ "stateMutability": "view",
696
+ "type": "function"
697
+ },
698
+ {
699
+ "inputs": [
700
+ {
701
+ "internalType": "address",
702
+ "name": "who",
703
+ "type": "address"
704
+ },
705
+ {
706
+ "internalType": "bytes4",
707
+ "name": "functionSig",
708
+ "type": "bytes4"
709
+ },
710
+ {
711
+ "internalType": "uint256",
712
+ "name": "id",
713
+ "type": "uint256"
714
+ }
715
+ ],
716
+ "name": "removeBypassRule",
717
+ "outputs": [],
718
+ "stateMutability": "nonpayable",
719
+ "type": "function"
720
+ },
721
+ {
722
+ "inputs": [],
723
+ "name": "renounceOwnership",
724
+ "outputs": [],
725
+ "stateMutability": "nonpayable",
726
+ "type": "function"
727
+ },
728
+ {
729
+ "inputs": [
730
+ {
731
+ "internalType": "uint256",
732
+ "name": "tokenId",
733
+ "type": "uint256"
734
+ },
735
+ {
736
+ "internalType": "uint256",
737
+ "name": "value",
738
+ "type": "uint256"
739
+ }
740
+ ],
741
+ "name": "royaltyInfo",
742
+ "outputs": [
743
+ {
744
+ "internalType": "address",
745
+ "name": "receiver",
746
+ "type": "address"
747
+ },
748
+ {
749
+ "internalType": "uint256",
750
+ "name": "royaltyAmount",
751
+ "type": "uint256"
752
+ }
753
+ ],
754
+ "stateMutability": "view",
755
+ "type": "function"
756
+ },
757
+ {
758
+ "inputs": [
759
+ {
760
+ "internalType": "address",
761
+ "name": "from",
762
+ "type": "address"
763
+ },
764
+ {
765
+ "internalType": "address",
766
+ "name": "to",
767
+ "type": "address"
768
+ },
769
+ {
770
+ "internalType": "uint256",
771
+ "name": "tokenId",
772
+ "type": "uint256"
773
+ }
774
+ ],
775
+ "name": "safeTransferFrom",
776
+ "outputs": [],
777
+ "stateMutability": "payable",
778
+ "type": "function"
779
+ },
780
+ {
781
+ "inputs": [
782
+ {
783
+ "internalType": "address",
784
+ "name": "from",
785
+ "type": "address"
786
+ },
787
+ {
788
+ "internalType": "address",
789
+ "name": "to",
790
+ "type": "address"
791
+ },
792
+ {
793
+ "internalType": "uint256",
794
+ "name": "tokenId",
795
+ "type": "uint256"
796
+ },
797
+ {
798
+ "internalType": "bytes",
799
+ "name": "data",
800
+ "type": "bytes"
801
+ }
802
+ ],
803
+ "name": "safeTransferFrom",
804
+ "outputs": [],
805
+ "stateMutability": "payable",
806
+ "type": "function"
807
+ },
808
+ {
809
+ "inputs": [
810
+ {
811
+ "internalType": "address",
812
+ "name": "operator",
813
+ "type": "address"
814
+ },
815
+ {
816
+ "internalType": "bool",
817
+ "name": "approved",
818
+ "type": "bool"
819
+ }
820
+ ],
821
+ "name": "setApprovalForAll",
822
+ "outputs": [],
823
+ "stateMutability": "nonpayable",
824
+ "type": "function"
825
+ },
826
+ {
827
+ "inputs": [
828
+ {
829
+ "internalType": "string",
830
+ "name": "baseURI",
831
+ "type": "string"
832
+ }
833
+ ],
834
+ "name": "setBaseURI",
835
+ "outputs": [],
836
+ "stateMutability": "nonpayable",
837
+ "type": "function"
838
+ },
839
+ {
840
+ "inputs": [
841
+ {
842
+ "internalType": "string",
843
+ "name": "name_",
844
+ "type": "string"
845
+ },
846
+ {
847
+ "internalType": "string",
848
+ "name": "symbol_",
849
+ "type": "string"
850
+ }
851
+ ],
852
+ "name": "setDetails",
853
+ "outputs": [],
854
+ "stateMutability": "nonpayable",
855
+ "type": "function"
856
+ },
857
+ {
858
+ "inputs": [
859
+ {
860
+ "internalType": "uint256",
861
+ "name": "tokenId",
862
+ "type": "uint256"
863
+ },
864
+ {
865
+ "internalType": "address",
866
+ "name": "recipient",
867
+ "type": "address"
868
+ },
869
+ {
870
+ "internalType": "uint256",
871
+ "name": "value",
872
+ "type": "uint256"
873
+ }
874
+ ],
875
+ "name": "setTokenRoyalty",
876
+ "outputs": [],
877
+ "stateMutability": "nonpayable",
878
+ "type": "function"
879
+ },
880
+ {
881
+ "inputs": [
882
+ {
883
+ "internalType": "bytes4",
884
+ "name": "_interfaceId",
885
+ "type": "bytes4"
886
+ }
887
+ ],
888
+ "name": "supportsInterface",
889
+ "outputs": [
890
+ {
891
+ "internalType": "bool",
892
+ "name": "",
893
+ "type": "bool"
894
+ }
895
+ ],
896
+ "stateMutability": "view",
897
+ "type": "function"
898
+ },
899
+ {
900
+ "inputs": [],
901
+ "name": "symbol",
902
+ "outputs": [
903
+ {
904
+ "internalType": "string",
905
+ "name": "",
906
+ "type": "string"
907
+ }
908
+ ],
909
+ "stateMutability": "view",
910
+ "type": "function"
911
+ },
912
+ {
913
+ "inputs": [],
914
+ "name": "toggleBypassability",
915
+ "outputs": [],
916
+ "stateMutability": "nonpayable",
917
+ "type": "function"
918
+ },
919
+ {
920
+ "inputs": [],
921
+ "name": "toggleClaimable",
922
+ "outputs": [],
923
+ "stateMutability": "nonpayable",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [
928
+ {
929
+ "internalType": "uint256",
930
+ "name": "tokenId",
931
+ "type": "uint256"
932
+ }
933
+ ],
934
+ "name": "tokenURI",
935
+ "outputs": [
936
+ {
937
+ "internalType": "string",
938
+ "name": "",
939
+ "type": "string"
940
+ }
941
+ ],
942
+ "stateMutability": "view",
943
+ "type": "function"
944
+ },
945
+ {
946
+ "inputs": [
947
+ {
948
+ "internalType": "address",
949
+ "name": "owner",
950
+ "type": "address"
951
+ }
952
+ ],
953
+ "name": "tokensOfOwner",
954
+ "outputs": [
955
+ {
956
+ "internalType": "uint256[]",
957
+ "name": "",
958
+ "type": "uint256[]"
959
+ }
960
+ ],
961
+ "stateMutability": "view",
962
+ "type": "function"
963
+ },
964
+ {
965
+ "inputs": [
966
+ {
967
+ "internalType": "address",
968
+ "name": "owner",
969
+ "type": "address"
970
+ },
971
+ {
972
+ "internalType": "uint256",
973
+ "name": "start",
974
+ "type": "uint256"
975
+ },
976
+ {
977
+ "internalType": "uint256",
978
+ "name": "stop",
979
+ "type": "uint256"
980
+ }
981
+ ],
982
+ "name": "tokensOfOwnerIn",
983
+ "outputs": [
984
+ {
985
+ "internalType": "uint256[]",
986
+ "name": "",
987
+ "type": "uint256[]"
988
+ }
989
+ ],
990
+ "stateMutability": "view",
991
+ "type": "function"
992
+ },
993
+ {
994
+ "inputs": [],
995
+ "name": "totalSupply",
996
+ "outputs": [
997
+ {
998
+ "internalType": "uint256",
999
+ "name": "",
1000
+ "type": "uint256"
1001
+ }
1002
+ ],
1003
+ "stateMutability": "view",
1004
+ "type": "function"
1005
+ },
1006
+ {
1007
+ "inputs": [
1008
+ {
1009
+ "internalType": "address",
1010
+ "name": "from",
1011
+ "type": "address"
1012
+ },
1013
+ {
1014
+ "internalType": "address",
1015
+ "name": "to",
1016
+ "type": "address"
1017
+ },
1018
+ {
1019
+ "internalType": "uint256",
1020
+ "name": "tokenId",
1021
+ "type": "uint256"
1022
+ }
1023
+ ],
1024
+ "name": "transferFrom",
1025
+ "outputs": [],
1026
+ "stateMutability": "payable",
1027
+ "type": "function"
1028
+ },
1029
+ {
1030
+ "inputs": [
1031
+ {
1032
+ "internalType": "address",
1033
+ "name": "newOwner",
1034
+ "type": "address"
1035
+ }
1036
+ ],
1037
+ "name": "transferOwnership",
1038
+ "outputs": [],
1039
+ "stateMutability": "nonpayable",
1040
+ "type": "function"
1041
+ },
1042
+ {
1043
+ "inputs": [
1044
+ {
1045
+ "internalType": "address",
1046
+ "name": "_contract",
1047
+ "type": "address"
1048
+ },
1049
+ {
1050
+ "internalType": "uint256",
1051
+ "name": "index",
1052
+ "type": "uint256"
1053
+ }
1054
+ ],
1055
+ "name": "unregisterContract",
1056
+ "outputs": [],
1057
+ "stateMutability": "nonpayable",
1058
+ "type": "function"
1059
+ },
1060
+ {
1061
+ "inputs": [],
1062
+ "name": "version",
1063
+ "outputs": [
1064
+ {
1065
+ "internalType": "string",
1066
+ "name": "",
1067
+ "type": "string"
1068
+ }
1069
+ ],
1070
+ "stateMutability": "pure",
1071
+ "type": "function"
1072
+ }
1073
+ ] as const satisfies Abi;
1074
+
1075
+ /**
1076
+ * Type-safe ABI for EmblemVault721AUpgradeable_json
1077
+ */
1078
+ export type EmblemVault721AUpgradeable_jsonAbi = typeof EmblemVault721AUpgradeable_jsonAbi;
1079
+
1080
+ /**
1081
+ * Contract instance type for EmblemVault721AUpgradeable_json
1082
+ */
1083
+ // Use any for contract type to avoid complex viem type issues
1084
+ // The runtime behavior is type-safe through viem's ABI typing
1085
+ export type EmblemVault721AUpgradeable_jsonContract = any;
1086
+
1087
+ /**
1088
+ * EmblemVault721AUpgradeable_json Contract Class
1089
+ *
1090
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
1091
+ *
1092
+ * @example
1093
+ * ```typescript
1094
+ * import { createPublicClient, createWalletClient, http } from 'viem';
1095
+ * import { mainnet } from 'viem/chains';
1096
+ * import { EmblemVault721AUpgradeable_json } from 'EmblemVault721AUpgradeable_json';
1097
+ *
1098
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
1099
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
1100
+ *
1101
+ * const contract = new EmblemVault721AUpgradeable_json('0x...', { publicClient, walletClient });
1102
+ *
1103
+ * // Read functions
1104
+ * const result = await contract.balanceOf('0x...');
1105
+ *
1106
+ * // Write functions
1107
+ * const hash = await contract.transfer('0x...', 1000n);
1108
+ *
1109
+ * // Simulate transactions (dry-run)
1110
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
1111
+ * console.log('Gas estimate:', simulation.request.gas);
1112
+ *
1113
+ * // Watch events
1114
+ * const unwatch = contract.watch.Transfer((event) => {
1115
+ * console.log('Transfer event:', event);
1116
+ * });
1117
+ * ```
1118
+ */
1119
+ export class EmblemVault721AUpgradeable_json {
1120
+ private contract: EmblemVault721AUpgradeable_jsonContract;
1121
+ private contractAddress: Address;
1122
+ private publicClient: PublicClient;
1123
+
1124
+ constructor(
1125
+ address: Address,
1126
+ clients: {
1127
+ publicClient: PublicClient;
1128
+ walletClient?: WalletClient;
1129
+ }
1130
+ ) {
1131
+ this.contractAddress = address;
1132
+ this.publicClient = clients.publicClient;
1133
+ this.contract = getContract({
1134
+ address,
1135
+ abi: EmblemVault721AUpgradeable_jsonAbi,
1136
+ client: {
1137
+ public: clients.publicClient,
1138
+ wallet: clients.walletClient,
1139
+ },
1140
+ });
1141
+ }
1142
+
1143
+ /**
1144
+ * Get the contract address
1145
+ */
1146
+ get address(): Address {
1147
+ return this.contractAddress;
1148
+ }
1149
+
1150
+ /**
1151
+ * Get the underlying viem contract instance
1152
+ */
1153
+ getContract(): EmblemVault721AUpgradeable_jsonContract {
1154
+ return this.contract;
1155
+ }
1156
+
1157
+ /**
1158
+ * balanceOf
1159
+ * view
1160
+ */
1161
+ async balanceOf(owner: `0x${string}`): Promise<bigint> {
1162
+ return this.contract.read.balanceOf([owner] as const) as Promise<bigint>;
1163
+ }
1164
+
1165
+ /**
1166
+ * byPassable
1167
+ * view
1168
+ */
1169
+ async byPassable(): Promise<boolean> {
1170
+ return this.contract.read.byPassable() as Promise<boolean>;
1171
+ }
1172
+
1173
+ /**
1174
+ * byPassableFunction
1175
+ * view
1176
+ */
1177
+ async byPassableFunction(arg0: `0x${string}`, arg1: `0x${string}`): Promise<boolean> {
1178
+ return this.contract.read.byPassableFunction([arg0, arg1] as const) as Promise<boolean>;
1179
+ }
1180
+
1181
+ /**
1182
+ * explicitOwnershipOf
1183
+ * view
1184
+ */
1185
+ async explicitOwnershipOf(tokenId: bigint): Promise<IERC721AUpgradeable_TokenOwnership> {
1186
+ return this.contract.read.explicitOwnershipOf([tokenId] as const) as Promise<IERC721AUpgradeable_TokenOwnership>;
1187
+ }
1188
+
1189
+ /**
1190
+ * explicitOwnershipsOf
1191
+ * view
1192
+ */
1193
+ async explicitOwnershipsOf(tokenIds: bigint[]): Promise<IERC721AUpgradeable_TokenOwnership[]> {
1194
+ return this.contract.read.explicitOwnershipsOf([tokenIds] as const) as Promise<IERC721AUpgradeable_TokenOwnership[]>;
1195
+ }
1196
+
1197
+ /**
1198
+ * getAllRegisteredContractsOfType
1199
+ * view
1200
+ */
1201
+ async getAllRegisteredContractsOfType(_type: bigint): Promise<`0x${string}`[]> {
1202
+ return this.contract.read.getAllRegisteredContractsOfType([_type] as const) as Promise<`0x${string}`[]>;
1203
+ }
1204
+
1205
+ /**
1206
+ * getApproved
1207
+ * view
1208
+ */
1209
+ async getApproved(tokenId: bigint): Promise<`0x${string}`> {
1210
+ return this.contract.read.getApproved([tokenId] as const) as Promise<`0x${string}`>;
1211
+ }
1212
+
1213
+ /**
1214
+ * getInternalTokenId
1215
+ * view
1216
+ */
1217
+ async getInternalTokenId(tokenId: bigint): Promise<bigint> {
1218
+ return this.contract.read.getInternalTokenId([tokenId] as const) as Promise<bigint>;
1219
+ }
1220
+
1221
+ /**
1222
+ * interfaceId
1223
+ * pure
1224
+ */
1225
+ async interfaceId(): Promise<`0x${string}`> {
1226
+ return this.contract.read.interfaceId() as Promise<`0x${string}`>;
1227
+ }
1228
+
1229
+ /**
1230
+ * isApprovedForAll
1231
+ * view
1232
+ */
1233
+ async isApprovedForAll(owner: `0x${string}`, operator: `0x${string}`): Promise<boolean> {
1234
+ return this.contract.read.isApprovedForAll([owner, operator] as const) as Promise<boolean>;
1235
+ }
1236
+
1237
+ /**
1238
+ * isClaimable
1239
+ * view
1240
+ */
1241
+ async isClaimable(): Promise<boolean> {
1242
+ return this.contract.read.isClaimable() as Promise<boolean>;
1243
+ }
1244
+
1245
+ /**
1246
+ * isRegistered
1247
+ * view
1248
+ */
1249
+ async isRegistered(_contract: `0x${string}`, _type: bigint): Promise<boolean> {
1250
+ return this.contract.read.isRegistered([_contract, _type] as const) as Promise<boolean>;
1251
+ }
1252
+
1253
+ /**
1254
+ * name
1255
+ * view
1256
+ */
1257
+ async name(): Promise<string> {
1258
+ return this.contract.read.name() as Promise<string>;
1259
+ }
1260
+
1261
+ /**
1262
+ * owner
1263
+ * view
1264
+ */
1265
+ async owner(): Promise<`0x${string}`> {
1266
+ return this.contract.read.owner() as Promise<`0x${string}`>;
1267
+ }
1268
+
1269
+ /**
1270
+ * ownerOf
1271
+ * view
1272
+ */
1273
+ async ownerOf(tokenId: bigint): Promise<`0x${string}`> {
1274
+ return this.contract.read.ownerOf([tokenId] as const) as Promise<`0x${string}`>;
1275
+ }
1276
+
1277
+ /**
1278
+ * registeredContracts
1279
+ * view
1280
+ */
1281
+ async registeredContracts(arg0: `0x${string}`): Promise<bigint> {
1282
+ return this.contract.read.registeredContracts([arg0] as const) as Promise<bigint>;
1283
+ }
1284
+
1285
+ /**
1286
+ * royaltyInfo
1287
+ * view
1288
+ */
1289
+ async royaltyInfo(tokenId: bigint, value: bigint): Promise<[`0x${string}`, bigint]> {
1290
+ return this.contract.read.royaltyInfo([tokenId, value] as const) as Promise<[`0x${string}`, bigint]>;
1291
+ }
1292
+
1293
+ /**
1294
+ * supportsInterface
1295
+ * view
1296
+ */
1297
+ async supportsInterface(_interfaceId: `0x${string}`): Promise<boolean> {
1298
+ return this.contract.read.supportsInterface([_interfaceId] as const) as Promise<boolean>;
1299
+ }
1300
+
1301
+ /**
1302
+ * symbol
1303
+ * view
1304
+ */
1305
+ async symbol(): Promise<string> {
1306
+ return this.contract.read.symbol() as Promise<string>;
1307
+ }
1308
+
1309
+ /**
1310
+ * tokenURI
1311
+ * view
1312
+ */
1313
+ async tokenURI(tokenId: bigint): Promise<string> {
1314
+ return this.contract.read.tokenURI([tokenId] as const) as Promise<string>;
1315
+ }
1316
+
1317
+ /**
1318
+ * tokensOfOwner
1319
+ * view
1320
+ */
1321
+ async tokensOfOwner(owner: `0x${string}`): Promise<bigint[]> {
1322
+ return this.contract.read.tokensOfOwner([owner] as const) as Promise<bigint[]>;
1323
+ }
1324
+
1325
+ /**
1326
+ * tokensOfOwnerIn
1327
+ * view
1328
+ */
1329
+ async tokensOfOwnerIn(owner: `0x${string}`, start: bigint, stop: bigint): Promise<bigint[]> {
1330
+ return this.contract.read.tokensOfOwnerIn([owner, start, stop] as const) as Promise<bigint[]>;
1331
+ }
1332
+
1333
+ /**
1334
+ * totalSupply
1335
+ * view
1336
+ */
1337
+ async totalSupply(): Promise<bigint> {
1338
+ return this.contract.read.totalSupply() as Promise<bigint>;
1339
+ }
1340
+
1341
+ /**
1342
+ * version
1343
+ * pure
1344
+ */
1345
+ async version(): Promise<string> {
1346
+ return this.contract.read.version() as Promise<string>;
1347
+ }
1348
+
1349
+ /**
1350
+ * addBypassRule
1351
+ * nonpayable
1352
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1353
+ */
1354
+ async addBypassRule(who: `0x${string}`, functionSig: `0x${string}`, id: bigint, options?: {
1355
+ accessList?: import('viem').AccessList;
1356
+ authorizationList?: import('viem').AuthorizationList;
1357
+ chain?: import('viem').Chain | null;
1358
+ dataSuffix?: `0x${string}`;
1359
+ gas?: bigint;
1360
+ gasPrice?: bigint;
1361
+ maxFeePerGas?: bigint;
1362
+ maxPriorityFeePerGas?: bigint;
1363
+ nonce?: number;
1364
+ value?: bigint;
1365
+ }): Promise<`0x${string}`> {
1366
+ if (!this.contract.write) {
1367
+ throw new Error('Wallet client is required for write operations');
1368
+ }
1369
+ return this.contract.write.addBypassRule([who, functionSig, id] as const, options) as Promise<`0x${string}`>;
1370
+ }
1371
+
1372
+ /**
1373
+ * approve
1374
+ * payable
1375
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1376
+ */
1377
+ async approve(operator: `0x${string}`, tokenId: bigint, options?: {
1378
+ accessList?: import('viem').AccessList;
1379
+ authorizationList?: import('viem').AuthorizationList;
1380
+ chain?: import('viem').Chain | null;
1381
+ dataSuffix?: `0x${string}`;
1382
+ gas?: bigint;
1383
+ gasPrice?: bigint;
1384
+ maxFeePerGas?: bigint;
1385
+ maxPriorityFeePerGas?: bigint;
1386
+ nonce?: number;
1387
+ value?: bigint;
1388
+ }): Promise<`0x${string}`> {
1389
+ if (!this.contract.write) {
1390
+ throw new Error('Wallet client is required for write operations');
1391
+ }
1392
+ return this.contract.write.approve([operator, tokenId] as const, options) as Promise<`0x${string}`>;
1393
+ }
1394
+
1395
+ /**
1396
+ * burn
1397
+ * nonpayable
1398
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1399
+ */
1400
+ async burn(tokenId: bigint, options?: {
1401
+ accessList?: import('viem').AccessList;
1402
+ authorizationList?: import('viem').AuthorizationList;
1403
+ chain?: import('viem').Chain | null;
1404
+ dataSuffix?: `0x${string}`;
1405
+ gas?: bigint;
1406
+ gasPrice?: bigint;
1407
+ maxFeePerGas?: bigint;
1408
+ maxPriorityFeePerGas?: bigint;
1409
+ nonce?: number;
1410
+ value?: bigint;
1411
+ }): Promise<`0x${string}`> {
1412
+ if (!this.contract.write) {
1413
+ throw new Error('Wallet client is required for write operations');
1414
+ }
1415
+ return this.contract.write.burn([tokenId] as const, options) as Promise<`0x${string}`>;
1416
+ }
1417
+
1418
+ /**
1419
+ * initialize
1420
+ * nonpayable
1421
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1422
+ */
1423
+ async initialize(name_: string, symbol_: string, options?: {
1424
+ accessList?: import('viem').AccessList;
1425
+ authorizationList?: import('viem').AuthorizationList;
1426
+ chain?: import('viem').Chain | null;
1427
+ dataSuffix?: `0x${string}`;
1428
+ gas?: bigint;
1429
+ gasPrice?: bigint;
1430
+ maxFeePerGas?: bigint;
1431
+ maxPriorityFeePerGas?: bigint;
1432
+ nonce?: number;
1433
+ value?: bigint;
1434
+ }): Promise<`0x${string}`> {
1435
+ if (!this.contract.write) {
1436
+ throw new Error('Wallet client is required for write operations');
1437
+ }
1438
+ return this.contract.write.initialize([name_, symbol_] as const, options) as Promise<`0x${string}`>;
1439
+ }
1440
+
1441
+ /**
1442
+ * mint
1443
+ * nonpayable
1444
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1445
+ */
1446
+ async mint(to: `0x${string}`, externalTokenId: bigint, options?: {
1447
+ accessList?: import('viem').AccessList;
1448
+ authorizationList?: import('viem').AuthorizationList;
1449
+ chain?: import('viem').Chain | null;
1450
+ dataSuffix?: `0x${string}`;
1451
+ gas?: bigint;
1452
+ gasPrice?: bigint;
1453
+ maxFeePerGas?: bigint;
1454
+ maxPriorityFeePerGas?: bigint;
1455
+ nonce?: number;
1456
+ value?: bigint;
1457
+ }): Promise<`0x${string}`> {
1458
+ if (!this.contract.write) {
1459
+ throw new Error('Wallet client is required for write operations');
1460
+ }
1461
+ return this.contract.write.mint([to, externalTokenId] as const, options) as Promise<`0x${string}`>;
1462
+ }
1463
+
1464
+ /**
1465
+ * mintMany
1466
+ * nonpayable
1467
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1468
+ */
1469
+ async mintMany(to: `0x${string}`[], externalTokenId: bigint[], options?: {
1470
+ accessList?: import('viem').AccessList;
1471
+ authorizationList?: import('viem').AuthorizationList;
1472
+ chain?: import('viem').Chain | null;
1473
+ dataSuffix?: `0x${string}`;
1474
+ gas?: bigint;
1475
+ gasPrice?: bigint;
1476
+ maxFeePerGas?: bigint;
1477
+ maxPriorityFeePerGas?: bigint;
1478
+ nonce?: number;
1479
+ value?: bigint;
1480
+ }): Promise<`0x${string}`> {
1481
+ if (!this.contract.write) {
1482
+ throw new Error('Wallet client is required for write operations');
1483
+ }
1484
+ return this.contract.write.mintMany([to, externalTokenId] as const, options) as Promise<`0x${string}`>;
1485
+ }
1486
+
1487
+ /**
1488
+ * registerContract
1489
+ * nonpayable
1490
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1491
+ */
1492
+ async registerContract(_contract: `0x${string}`, _type: bigint, options?: {
1493
+ accessList?: import('viem').AccessList;
1494
+ authorizationList?: import('viem').AuthorizationList;
1495
+ chain?: import('viem').Chain | null;
1496
+ dataSuffix?: `0x${string}`;
1497
+ gas?: bigint;
1498
+ gasPrice?: bigint;
1499
+ maxFeePerGas?: bigint;
1500
+ maxPriorityFeePerGas?: bigint;
1501
+ nonce?: number;
1502
+ value?: bigint;
1503
+ }): Promise<`0x${string}`> {
1504
+ if (!this.contract.write) {
1505
+ throw new Error('Wallet client is required for write operations');
1506
+ }
1507
+ return this.contract.write.registerContract([_contract, _type] as const, options) as Promise<`0x${string}`>;
1508
+ }
1509
+
1510
+ /**
1511
+ * removeBypassRule
1512
+ * nonpayable
1513
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1514
+ */
1515
+ async removeBypassRule(who: `0x${string}`, functionSig: `0x${string}`, id: bigint, options?: {
1516
+ accessList?: import('viem').AccessList;
1517
+ authorizationList?: import('viem').AuthorizationList;
1518
+ chain?: import('viem').Chain | null;
1519
+ dataSuffix?: `0x${string}`;
1520
+ gas?: bigint;
1521
+ gasPrice?: bigint;
1522
+ maxFeePerGas?: bigint;
1523
+ maxPriorityFeePerGas?: bigint;
1524
+ nonce?: number;
1525
+ value?: bigint;
1526
+ }): Promise<`0x${string}`> {
1527
+ if (!this.contract.write) {
1528
+ throw new Error('Wallet client is required for write operations');
1529
+ }
1530
+ return this.contract.write.removeBypassRule([who, functionSig, id] as const, options) as Promise<`0x${string}`>;
1531
+ }
1532
+
1533
+ /**
1534
+ * renounceOwnership
1535
+ * nonpayable
1536
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1537
+ */
1538
+ async renounceOwnership(options?: {
1539
+ accessList?: import('viem').AccessList;
1540
+ authorizationList?: import('viem').AuthorizationList;
1541
+ chain?: import('viem').Chain | null;
1542
+ dataSuffix?: `0x${string}`;
1543
+ gas?: bigint;
1544
+ gasPrice?: bigint;
1545
+ maxFeePerGas?: bigint;
1546
+ maxPriorityFeePerGas?: bigint;
1547
+ nonce?: number;
1548
+ value?: bigint;
1549
+ }): Promise<`0x${string}`> {
1550
+ if (!this.contract.write) {
1551
+ throw new Error('Wallet client is required for write operations');
1552
+ }
1553
+ return this.contract.write.renounceOwnership(options) as Promise<`0x${string}`>;
1554
+ }
1555
+
1556
+ async safeTransferFrom(from: `0x${string}`, to: `0x${string}`, tokenId: bigint, options?: {
1557
+ accessList?: import('viem').AccessList;
1558
+ authorizationList?: import('viem').AuthorizationList;
1559
+ chain?: import('viem').Chain | null;
1560
+ dataSuffix?: `0x${string}`;
1561
+ gas?: bigint;
1562
+ gasPrice?: bigint;
1563
+ maxFeePerGas?: bigint;
1564
+ maxPriorityFeePerGas?: bigint;
1565
+ nonce?: number;
1566
+ value?: bigint;
1567
+ }): Promise<`0x${string}`>;
1568
+ async safeTransferFrom(from: `0x${string}`, to: `0x${string}`, tokenId: bigint, data: `0x${string}`, options?: {
1569
+ accessList?: import('viem').AccessList;
1570
+ authorizationList?: import('viem').AuthorizationList;
1571
+ chain?: import('viem').Chain | null;
1572
+ dataSuffix?: `0x${string}`;
1573
+ gas?: bigint;
1574
+ gasPrice?: bigint;
1575
+ maxFeePerGas?: bigint;
1576
+ maxPriorityFeePerGas?: bigint;
1577
+ nonce?: number;
1578
+ value?: bigint;
1579
+ }): Promise<`0x${string}`>;
1580
+ async safeTransferFrom(...args: any[]): Promise<`0x${string}`> {
1581
+ if (!this.contract.write) {
1582
+ throw new Error('Wallet client is required for write operations');
1583
+ }
1584
+ return this.contract.write.safeTransferFrom(args as any) as Promise<`0x${string}`>;
1585
+ }
1586
+
1587
+ /**
1588
+ * setApprovalForAll
1589
+ * nonpayable
1590
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1591
+ */
1592
+ async setApprovalForAll(operator: `0x${string}`, approved: boolean, options?: {
1593
+ accessList?: import('viem').AccessList;
1594
+ authorizationList?: import('viem').AuthorizationList;
1595
+ chain?: import('viem').Chain | null;
1596
+ dataSuffix?: `0x${string}`;
1597
+ gas?: bigint;
1598
+ gasPrice?: bigint;
1599
+ maxFeePerGas?: bigint;
1600
+ maxPriorityFeePerGas?: bigint;
1601
+ nonce?: number;
1602
+ value?: bigint;
1603
+ }): Promise<`0x${string}`> {
1604
+ if (!this.contract.write) {
1605
+ throw new Error('Wallet client is required for write operations');
1606
+ }
1607
+ return this.contract.write.setApprovalForAll([operator, approved] as const, options) as Promise<`0x${string}`>;
1608
+ }
1609
+
1610
+ /**
1611
+ * setBaseURI
1612
+ * nonpayable
1613
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1614
+ */
1615
+ async setBaseURI(baseURI: string, options?: {
1616
+ accessList?: import('viem').AccessList;
1617
+ authorizationList?: import('viem').AuthorizationList;
1618
+ chain?: import('viem').Chain | null;
1619
+ dataSuffix?: `0x${string}`;
1620
+ gas?: bigint;
1621
+ gasPrice?: bigint;
1622
+ maxFeePerGas?: bigint;
1623
+ maxPriorityFeePerGas?: bigint;
1624
+ nonce?: number;
1625
+ value?: bigint;
1626
+ }): Promise<`0x${string}`> {
1627
+ if (!this.contract.write) {
1628
+ throw new Error('Wallet client is required for write operations');
1629
+ }
1630
+ return this.contract.write.setBaseURI([baseURI] as const, options) as Promise<`0x${string}`>;
1631
+ }
1632
+
1633
+ /**
1634
+ * setDetails
1635
+ * nonpayable
1636
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1637
+ */
1638
+ async setDetails(name_: string, symbol_: string, options?: {
1639
+ accessList?: import('viem').AccessList;
1640
+ authorizationList?: import('viem').AuthorizationList;
1641
+ chain?: import('viem').Chain | null;
1642
+ dataSuffix?: `0x${string}`;
1643
+ gas?: bigint;
1644
+ gasPrice?: bigint;
1645
+ maxFeePerGas?: bigint;
1646
+ maxPriorityFeePerGas?: bigint;
1647
+ nonce?: number;
1648
+ value?: bigint;
1649
+ }): Promise<`0x${string}`> {
1650
+ if (!this.contract.write) {
1651
+ throw new Error('Wallet client is required for write operations');
1652
+ }
1653
+ return this.contract.write.setDetails([name_, symbol_] as const, options) as Promise<`0x${string}`>;
1654
+ }
1655
+
1656
+ /**
1657
+ * setTokenRoyalty
1658
+ * nonpayable
1659
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1660
+ */
1661
+ async setTokenRoyalty(tokenId: bigint, recipient: `0x${string}`, value: bigint, options?: {
1662
+ accessList?: import('viem').AccessList;
1663
+ authorizationList?: import('viem').AuthorizationList;
1664
+ chain?: import('viem').Chain | null;
1665
+ dataSuffix?: `0x${string}`;
1666
+ gas?: bigint;
1667
+ gasPrice?: bigint;
1668
+ maxFeePerGas?: bigint;
1669
+ maxPriorityFeePerGas?: bigint;
1670
+ nonce?: number;
1671
+ value?: bigint;
1672
+ }): Promise<`0x${string}`> {
1673
+ if (!this.contract.write) {
1674
+ throw new Error('Wallet client is required for write operations');
1675
+ }
1676
+ return this.contract.write.setTokenRoyalty([tokenId, recipient, value] as const, options) as Promise<`0x${string}`>;
1677
+ }
1678
+
1679
+ /**
1680
+ * toggleBypassability
1681
+ * nonpayable
1682
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1683
+ */
1684
+ async toggleBypassability(options?: {
1685
+ accessList?: import('viem').AccessList;
1686
+ authorizationList?: import('viem').AuthorizationList;
1687
+ chain?: import('viem').Chain | null;
1688
+ dataSuffix?: `0x${string}`;
1689
+ gas?: bigint;
1690
+ gasPrice?: bigint;
1691
+ maxFeePerGas?: bigint;
1692
+ maxPriorityFeePerGas?: bigint;
1693
+ nonce?: number;
1694
+ value?: bigint;
1695
+ }): Promise<`0x${string}`> {
1696
+ if (!this.contract.write) {
1697
+ throw new Error('Wallet client is required for write operations');
1698
+ }
1699
+ return this.contract.write.toggleBypassability(options) as Promise<`0x${string}`>;
1700
+ }
1701
+
1702
+ /**
1703
+ * toggleClaimable
1704
+ * nonpayable
1705
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1706
+ */
1707
+ async toggleClaimable(options?: {
1708
+ accessList?: import('viem').AccessList;
1709
+ authorizationList?: import('viem').AuthorizationList;
1710
+ chain?: import('viem').Chain | null;
1711
+ dataSuffix?: `0x${string}`;
1712
+ gas?: bigint;
1713
+ gasPrice?: bigint;
1714
+ maxFeePerGas?: bigint;
1715
+ maxPriorityFeePerGas?: bigint;
1716
+ nonce?: number;
1717
+ value?: bigint;
1718
+ }): Promise<`0x${string}`> {
1719
+ if (!this.contract.write) {
1720
+ throw new Error('Wallet client is required for write operations');
1721
+ }
1722
+ return this.contract.write.toggleClaimable(options) as Promise<`0x${string}`>;
1723
+ }
1724
+
1725
+ /**
1726
+ * transferFrom
1727
+ * payable
1728
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1729
+ */
1730
+ async transferFrom(from: `0x${string}`, to: `0x${string}`, tokenId: bigint, options?: {
1731
+ accessList?: import('viem').AccessList;
1732
+ authorizationList?: import('viem').AuthorizationList;
1733
+ chain?: import('viem').Chain | null;
1734
+ dataSuffix?: `0x${string}`;
1735
+ gas?: bigint;
1736
+ gasPrice?: bigint;
1737
+ maxFeePerGas?: bigint;
1738
+ maxPriorityFeePerGas?: bigint;
1739
+ nonce?: number;
1740
+ value?: bigint;
1741
+ }): Promise<`0x${string}`> {
1742
+ if (!this.contract.write) {
1743
+ throw new Error('Wallet client is required for write operations');
1744
+ }
1745
+ return this.contract.write.transferFrom([from, to, tokenId] as const, options) as Promise<`0x${string}`>;
1746
+ }
1747
+
1748
+ /**
1749
+ * transferOwnership
1750
+ * nonpayable
1751
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1752
+ */
1753
+ async transferOwnership(newOwner: `0x${string}`, options?: {
1754
+ accessList?: import('viem').AccessList;
1755
+ authorizationList?: import('viem').AuthorizationList;
1756
+ chain?: import('viem').Chain | null;
1757
+ dataSuffix?: `0x${string}`;
1758
+ gas?: bigint;
1759
+ gasPrice?: bigint;
1760
+ maxFeePerGas?: bigint;
1761
+ maxPriorityFeePerGas?: bigint;
1762
+ nonce?: number;
1763
+ value?: bigint;
1764
+ }): Promise<`0x${string}`> {
1765
+ if (!this.contract.write) {
1766
+ throw new Error('Wallet client is required for write operations');
1767
+ }
1768
+ return this.contract.write.transferOwnership([newOwner] as const, options) as Promise<`0x${string}`>;
1769
+ }
1770
+
1771
+ /**
1772
+ * unregisterContract
1773
+ * nonpayable
1774
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1775
+ */
1776
+ async unregisterContract(_contract: `0x${string}`, index: bigint, options?: {
1777
+ accessList?: import('viem').AccessList;
1778
+ authorizationList?: import('viem').AuthorizationList;
1779
+ chain?: import('viem').Chain | null;
1780
+ dataSuffix?: `0x${string}`;
1781
+ gas?: bigint;
1782
+ gasPrice?: bigint;
1783
+ maxFeePerGas?: bigint;
1784
+ maxPriorityFeePerGas?: bigint;
1785
+ nonce?: number;
1786
+ value?: bigint;
1787
+ }): Promise<`0x${string}`> {
1788
+ if (!this.contract.write) {
1789
+ throw new Error('Wallet client is required for write operations');
1790
+ }
1791
+ return this.contract.write.unregisterContract([_contract, index] as const, options) as Promise<`0x${string}`>;
1792
+ }
1793
+
1794
+
1795
+
1796
+ /**
1797
+ * Simulate contract write operations (dry-run without sending transaction)
1798
+ *
1799
+ * @example
1800
+ * const result = await contract.simulate.transfer('0x...', 1000n);
1801
+ * console.log('Gas estimate:', result.request.gas);
1802
+ * console.log('Would succeed:', result.result);
1803
+ */
1804
+ get simulate() {
1805
+ const contract = this.contract;
1806
+ if (!contract.simulate) {
1807
+ throw new Error('Public client is required for simulation');
1808
+ }
1809
+ return {
1810
+ /**
1811
+ * Simulate addBypassRule
1812
+ * Returns gas estimate and result without sending transaction
1813
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1814
+ */
1815
+ async addBypassRule(who: `0x${string}`, functionSig: `0x${string}`, id: bigint, options?: {
1816
+ accessList?: import('viem').AccessList;
1817
+ authorizationList?: import('viem').AuthorizationList;
1818
+ chain?: import('viem').Chain | null;
1819
+ dataSuffix?: `0x${string}`;
1820
+ gas?: bigint;
1821
+ gasPrice?: bigint;
1822
+ maxFeePerGas?: bigint;
1823
+ maxPriorityFeePerGas?: bigint;
1824
+ nonce?: number;
1825
+ value?: bigint;
1826
+ }): Promise<void> {
1827
+ return contract.simulate.addBypassRule([who, functionSig, id] as const, options) as Promise<void>;
1828
+ },
1829
+ /**
1830
+ * Simulate approve
1831
+ * Returns gas estimate and result without sending transaction
1832
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1833
+ */
1834
+ async approve(operator: `0x${string}`, tokenId: bigint, options?: {
1835
+ accessList?: import('viem').AccessList;
1836
+ authorizationList?: import('viem').AuthorizationList;
1837
+ chain?: import('viem').Chain | null;
1838
+ dataSuffix?: `0x${string}`;
1839
+ gas?: bigint;
1840
+ gasPrice?: bigint;
1841
+ maxFeePerGas?: bigint;
1842
+ maxPriorityFeePerGas?: bigint;
1843
+ nonce?: number;
1844
+ value?: bigint;
1845
+ }): Promise<void> {
1846
+ return contract.simulate.approve([operator, tokenId] as const, options) as Promise<void>;
1847
+ },
1848
+ /**
1849
+ * Simulate burn
1850
+ * Returns gas estimate and result without sending transaction
1851
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1852
+ */
1853
+ async burn(tokenId: bigint, options?: {
1854
+ accessList?: import('viem').AccessList;
1855
+ authorizationList?: import('viem').AuthorizationList;
1856
+ chain?: import('viem').Chain | null;
1857
+ dataSuffix?: `0x${string}`;
1858
+ gas?: bigint;
1859
+ gasPrice?: bigint;
1860
+ maxFeePerGas?: bigint;
1861
+ maxPriorityFeePerGas?: bigint;
1862
+ nonce?: number;
1863
+ value?: bigint;
1864
+ }): Promise<void> {
1865
+ return contract.simulate.burn([tokenId] as const, options) as Promise<void>;
1866
+ },
1867
+ /**
1868
+ * Simulate initialize
1869
+ * Returns gas estimate and result without sending transaction
1870
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1871
+ */
1872
+ async initialize(name_: string, symbol_: string, options?: {
1873
+ accessList?: import('viem').AccessList;
1874
+ authorizationList?: import('viem').AuthorizationList;
1875
+ chain?: import('viem').Chain | null;
1876
+ dataSuffix?: `0x${string}`;
1877
+ gas?: bigint;
1878
+ gasPrice?: bigint;
1879
+ maxFeePerGas?: bigint;
1880
+ maxPriorityFeePerGas?: bigint;
1881
+ nonce?: number;
1882
+ value?: bigint;
1883
+ }): Promise<void> {
1884
+ return contract.simulate.initialize([name_, symbol_] as const, options) as Promise<void>;
1885
+ },
1886
+ /**
1887
+ * Simulate mint
1888
+ * Returns gas estimate and result without sending transaction
1889
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1890
+ */
1891
+ async mint(to: `0x${string}`, externalTokenId: bigint, options?: {
1892
+ accessList?: import('viem').AccessList;
1893
+ authorizationList?: import('viem').AuthorizationList;
1894
+ chain?: import('viem').Chain | null;
1895
+ dataSuffix?: `0x${string}`;
1896
+ gas?: bigint;
1897
+ gasPrice?: bigint;
1898
+ maxFeePerGas?: bigint;
1899
+ maxPriorityFeePerGas?: bigint;
1900
+ nonce?: number;
1901
+ value?: bigint;
1902
+ }): Promise<void> {
1903
+ return contract.simulate.mint([to, externalTokenId] as const, options) as Promise<void>;
1904
+ },
1905
+ /**
1906
+ * Simulate mintMany
1907
+ * Returns gas estimate and result without sending transaction
1908
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1909
+ */
1910
+ async mintMany(to: `0x${string}`[], externalTokenId: bigint[], options?: {
1911
+ accessList?: import('viem').AccessList;
1912
+ authorizationList?: import('viem').AuthorizationList;
1913
+ chain?: import('viem').Chain | null;
1914
+ dataSuffix?: `0x${string}`;
1915
+ gas?: bigint;
1916
+ gasPrice?: bigint;
1917
+ maxFeePerGas?: bigint;
1918
+ maxPriorityFeePerGas?: bigint;
1919
+ nonce?: number;
1920
+ value?: bigint;
1921
+ }): Promise<void> {
1922
+ return contract.simulate.mintMany([to, externalTokenId] as const, options) as Promise<void>;
1923
+ },
1924
+ /**
1925
+ * Simulate registerContract
1926
+ * Returns gas estimate and result without sending transaction
1927
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1928
+ */
1929
+ async registerContract(_contract: `0x${string}`, _type: bigint, options?: {
1930
+ accessList?: import('viem').AccessList;
1931
+ authorizationList?: import('viem').AuthorizationList;
1932
+ chain?: import('viem').Chain | null;
1933
+ dataSuffix?: `0x${string}`;
1934
+ gas?: bigint;
1935
+ gasPrice?: bigint;
1936
+ maxFeePerGas?: bigint;
1937
+ maxPriorityFeePerGas?: bigint;
1938
+ nonce?: number;
1939
+ value?: bigint;
1940
+ }): Promise<void> {
1941
+ return contract.simulate.registerContract([_contract, _type] as const, options) as Promise<void>;
1942
+ },
1943
+ /**
1944
+ * Simulate removeBypassRule
1945
+ * Returns gas estimate and result without sending transaction
1946
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1947
+ */
1948
+ async removeBypassRule(who: `0x${string}`, functionSig: `0x${string}`, id: bigint, options?: {
1949
+ accessList?: import('viem').AccessList;
1950
+ authorizationList?: import('viem').AuthorizationList;
1951
+ chain?: import('viem').Chain | null;
1952
+ dataSuffix?: `0x${string}`;
1953
+ gas?: bigint;
1954
+ gasPrice?: bigint;
1955
+ maxFeePerGas?: bigint;
1956
+ maxPriorityFeePerGas?: bigint;
1957
+ nonce?: number;
1958
+ value?: bigint;
1959
+ }): Promise<void> {
1960
+ return contract.simulate.removeBypassRule([who, functionSig, id] as const, options) as Promise<void>;
1961
+ },
1962
+ /**
1963
+ * Simulate renounceOwnership
1964
+ * Returns gas estimate and result without sending transaction
1965
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1966
+ */
1967
+ async renounceOwnership(options?: {
1968
+ accessList?: import('viem').AccessList;
1969
+ authorizationList?: import('viem').AuthorizationList;
1970
+ chain?: import('viem').Chain | null;
1971
+ dataSuffix?: `0x${string}`;
1972
+ gas?: bigint;
1973
+ gasPrice?: bigint;
1974
+ maxFeePerGas?: bigint;
1975
+ maxPriorityFeePerGas?: bigint;
1976
+ nonce?: number;
1977
+ value?: bigint;
1978
+ }): Promise<void> {
1979
+ return contract.simulate.renounceOwnership(options) as Promise<void>;
1980
+ },
1981
+ /**
1982
+ * Simulate safeTransferFrom
1983
+ * Returns gas estimate and result without sending transaction
1984
+ * Supports multiple overloads: (address, address, uint256), (address, address, uint256, bytes)
1985
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1986
+ */
1987
+ async safeTransferFrom(...args: any[]): Promise<any> {
1988
+ return contract.simulate.safeTransferFrom(args as any) as Promise<any>;
1989
+ },
1990
+ /**
1991
+ * Simulate setApprovalForAll
1992
+ * Returns gas estimate and result without sending transaction
1993
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1994
+ */
1995
+ async setApprovalForAll(operator: `0x${string}`, approved: boolean, options?: {
1996
+ accessList?: import('viem').AccessList;
1997
+ authorizationList?: import('viem').AuthorizationList;
1998
+ chain?: import('viem').Chain | null;
1999
+ dataSuffix?: `0x${string}`;
2000
+ gas?: bigint;
2001
+ gasPrice?: bigint;
2002
+ maxFeePerGas?: bigint;
2003
+ maxPriorityFeePerGas?: bigint;
2004
+ nonce?: number;
2005
+ value?: bigint;
2006
+ }): Promise<void> {
2007
+ return contract.simulate.setApprovalForAll([operator, approved] as const, options) as Promise<void>;
2008
+ },
2009
+ /**
2010
+ * Simulate setBaseURI
2011
+ * Returns gas estimate and result without sending transaction
2012
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2013
+ */
2014
+ async setBaseURI(baseURI: string, options?: {
2015
+ accessList?: import('viem').AccessList;
2016
+ authorizationList?: import('viem').AuthorizationList;
2017
+ chain?: import('viem').Chain | null;
2018
+ dataSuffix?: `0x${string}`;
2019
+ gas?: bigint;
2020
+ gasPrice?: bigint;
2021
+ maxFeePerGas?: bigint;
2022
+ maxPriorityFeePerGas?: bigint;
2023
+ nonce?: number;
2024
+ value?: bigint;
2025
+ }): Promise<void> {
2026
+ return contract.simulate.setBaseURI([baseURI] as const, options) as Promise<void>;
2027
+ },
2028
+ /**
2029
+ * Simulate setDetails
2030
+ * Returns gas estimate and result without sending transaction
2031
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2032
+ */
2033
+ async setDetails(name_: string, symbol_: string, options?: {
2034
+ accessList?: import('viem').AccessList;
2035
+ authorizationList?: import('viem').AuthorizationList;
2036
+ chain?: import('viem').Chain | null;
2037
+ dataSuffix?: `0x${string}`;
2038
+ gas?: bigint;
2039
+ gasPrice?: bigint;
2040
+ maxFeePerGas?: bigint;
2041
+ maxPriorityFeePerGas?: bigint;
2042
+ nonce?: number;
2043
+ value?: bigint;
2044
+ }): Promise<void> {
2045
+ return contract.simulate.setDetails([name_, symbol_] as const, options) as Promise<void>;
2046
+ },
2047
+ /**
2048
+ * Simulate setTokenRoyalty
2049
+ * Returns gas estimate and result without sending transaction
2050
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2051
+ */
2052
+ async setTokenRoyalty(tokenId: bigint, recipient: `0x${string}`, value: bigint, options?: {
2053
+ accessList?: import('viem').AccessList;
2054
+ authorizationList?: import('viem').AuthorizationList;
2055
+ chain?: import('viem').Chain | null;
2056
+ dataSuffix?: `0x${string}`;
2057
+ gas?: bigint;
2058
+ gasPrice?: bigint;
2059
+ maxFeePerGas?: bigint;
2060
+ maxPriorityFeePerGas?: bigint;
2061
+ nonce?: number;
2062
+ value?: bigint;
2063
+ }): Promise<void> {
2064
+ return contract.simulate.setTokenRoyalty([tokenId, recipient, value] as const, options) as Promise<void>;
2065
+ },
2066
+ /**
2067
+ * Simulate toggleBypassability
2068
+ * Returns gas estimate and result without sending transaction
2069
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2070
+ */
2071
+ async toggleBypassability(options?: {
2072
+ accessList?: import('viem').AccessList;
2073
+ authorizationList?: import('viem').AuthorizationList;
2074
+ chain?: import('viem').Chain | null;
2075
+ dataSuffix?: `0x${string}`;
2076
+ gas?: bigint;
2077
+ gasPrice?: bigint;
2078
+ maxFeePerGas?: bigint;
2079
+ maxPriorityFeePerGas?: bigint;
2080
+ nonce?: number;
2081
+ value?: bigint;
2082
+ }): Promise<void> {
2083
+ return contract.simulate.toggleBypassability(options) as Promise<void>;
2084
+ },
2085
+ /**
2086
+ * Simulate toggleClaimable
2087
+ * Returns gas estimate and result without sending transaction
2088
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2089
+ */
2090
+ async toggleClaimable(options?: {
2091
+ accessList?: import('viem').AccessList;
2092
+ authorizationList?: import('viem').AuthorizationList;
2093
+ chain?: import('viem').Chain | null;
2094
+ dataSuffix?: `0x${string}`;
2095
+ gas?: bigint;
2096
+ gasPrice?: bigint;
2097
+ maxFeePerGas?: bigint;
2098
+ maxPriorityFeePerGas?: bigint;
2099
+ nonce?: number;
2100
+ value?: bigint;
2101
+ }): Promise<void> {
2102
+ return contract.simulate.toggleClaimable(options) as Promise<void>;
2103
+ },
2104
+ /**
2105
+ * Simulate transferFrom
2106
+ * Returns gas estimate and result without sending transaction
2107
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2108
+ */
2109
+ async transferFrom(from: `0x${string}`, to: `0x${string}`, tokenId: bigint, options?: {
2110
+ accessList?: import('viem').AccessList;
2111
+ authorizationList?: import('viem').AuthorizationList;
2112
+ chain?: import('viem').Chain | null;
2113
+ dataSuffix?: `0x${string}`;
2114
+ gas?: bigint;
2115
+ gasPrice?: bigint;
2116
+ maxFeePerGas?: bigint;
2117
+ maxPriorityFeePerGas?: bigint;
2118
+ nonce?: number;
2119
+ value?: bigint;
2120
+ }): Promise<void> {
2121
+ return contract.simulate.transferFrom([from, to, tokenId] as const, options) as Promise<void>;
2122
+ },
2123
+ /**
2124
+ * Simulate transferOwnership
2125
+ * Returns gas estimate and result without sending transaction
2126
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2127
+ */
2128
+ async transferOwnership(newOwner: `0x${string}`, options?: {
2129
+ accessList?: import('viem').AccessList;
2130
+ authorizationList?: import('viem').AuthorizationList;
2131
+ chain?: import('viem').Chain | null;
2132
+ dataSuffix?: `0x${string}`;
2133
+ gas?: bigint;
2134
+ gasPrice?: bigint;
2135
+ maxFeePerGas?: bigint;
2136
+ maxPriorityFeePerGas?: bigint;
2137
+ nonce?: number;
2138
+ value?: bigint;
2139
+ }): Promise<void> {
2140
+ return contract.simulate.transferOwnership([newOwner] as const, options) as Promise<void>;
2141
+ },
2142
+ /**
2143
+ * Simulate unregisterContract
2144
+ * Returns gas estimate and result without sending transaction
2145
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
2146
+ */
2147
+ async unregisterContract(_contract: `0x${string}`, index: bigint, options?: {
2148
+ accessList?: import('viem').AccessList;
2149
+ authorizationList?: import('viem').AuthorizationList;
2150
+ chain?: import('viem').Chain | null;
2151
+ dataSuffix?: `0x${string}`;
2152
+ gas?: bigint;
2153
+ gasPrice?: bigint;
2154
+ maxFeePerGas?: bigint;
2155
+ maxPriorityFeePerGas?: bigint;
2156
+ nonce?: number;
2157
+ value?: bigint;
2158
+ }): Promise<void> {
2159
+ return contract.simulate.unregisterContract([_contract, index] as const, options) as Promise<void>;
2160
+ }
2161
+ };
2162
+ }
2163
+
2164
+ /**
2165
+ * Watch contract events
2166
+ *
2167
+ * @example
2168
+ * // Watch all Transfer events
2169
+ * const unwatch = contract.watch.Transfer((event) => {
2170
+ * console.log('Transfer:', event);
2171
+ * });
2172
+ *
2173
+ * // Stop watching
2174
+ * unwatch();
2175
+ */
2176
+ get watch() {
2177
+ return {
2178
+ /**
2179
+ * Watch Approval events
2180
+ * @param callback Function to call when event is emitted
2181
+ * @param filter Optional filter for indexed parameters
2182
+ * @returns Unwatch function to stop listening
2183
+ */
2184
+ Approval: (callback: (event: { owner: `0x${string}`; approved: `0x${string}`; tokenId: bigint }) => void, filter?: { owner: `0x${string}`; approved: `0x${string}`; tokenId: bigint }) => {
2185
+ return this.publicClient.watchContractEvent({
2186
+ address: this.contractAddress,
2187
+ abi: EmblemVault721AUpgradeable_jsonAbi,
2188
+ eventName: 'Approval',
2189
+ args: filter,
2190
+ onLogs: (logs: any[]) => {
2191
+ logs.forEach((log: any) => {
2192
+ callback(log.args as any);
2193
+ });
2194
+ },
2195
+ }) as () => void;
2196
+ },
2197
+ /**
2198
+ * Watch ApprovalForAll events
2199
+ * @param callback Function to call when event is emitted
2200
+ * @param filter Optional filter for indexed parameters
2201
+ * @returns Unwatch function to stop listening
2202
+ */
2203
+ ApprovalForAll: (callback: (event: { owner: `0x${string}`; operator: `0x${string}`; approved: boolean }) => void, filter?: { owner: `0x${string}`; operator: `0x${string}` }) => {
2204
+ return this.publicClient.watchContractEvent({
2205
+ address: this.contractAddress,
2206
+ abi: EmblemVault721AUpgradeable_jsonAbi,
2207
+ eventName: 'ApprovalForAll',
2208
+ args: filter,
2209
+ onLogs: (logs: any[]) => {
2210
+ logs.forEach((log: any) => {
2211
+ callback(log.args as any);
2212
+ });
2213
+ },
2214
+ }) as () => void;
2215
+ },
2216
+ /**
2217
+ * Watch ConsecutiveTransfer events
2218
+ * @param callback Function to call when event is emitted
2219
+ * @param filter Optional filter for indexed parameters
2220
+ * @returns Unwatch function to stop listening
2221
+ */
2222
+ ConsecutiveTransfer: (callback: (event: { fromTokenId: bigint; from: `0x${string}`; to: `0x${string}`; toTokenId: bigint }) => void, filter?: { fromTokenId: bigint; from: `0x${string}`; to: `0x${string}` }) => {
2223
+ return this.publicClient.watchContractEvent({
2224
+ address: this.contractAddress,
2225
+ abi: EmblemVault721AUpgradeable_jsonAbi,
2226
+ eventName: 'ConsecutiveTransfer',
2227
+ args: filter,
2228
+ onLogs: (logs: any[]) => {
2229
+ logs.forEach((log: any) => {
2230
+ callback(log.args as any);
2231
+ });
2232
+ },
2233
+ }) as () => void;
2234
+ },
2235
+ /**
2236
+ * Watch Initialized events
2237
+ * @param callback Function to call when event is emitted
2238
+ * @param filter Optional filter for indexed parameters
2239
+ * @returns Unwatch function to stop listening
2240
+ */
2241
+ Initialized: (callback: (event: { version: bigint }) => void) => {
2242
+ return this.publicClient.watchContractEvent({
2243
+ address: this.contractAddress,
2244
+ abi: EmblemVault721AUpgradeable_jsonAbi,
2245
+ eventName: 'Initialized',
2246
+
2247
+ onLogs: (logs: any[]) => {
2248
+ logs.forEach((log: any) => {
2249
+ callback(log.args as any);
2250
+ });
2251
+ },
2252
+ }) as () => void;
2253
+ },
2254
+ /**
2255
+ * Watch OwnershipTransferred events
2256
+ * @param callback Function to call when event is emitted
2257
+ * @param filter Optional filter for indexed parameters
2258
+ * @returns Unwatch function to stop listening
2259
+ */
2260
+ OwnershipTransferred: (callback: (event: { previousOwner: `0x${string}`; newOwner: `0x${string}` }) => void, filter?: { previousOwner: `0x${string}`; newOwner: `0x${string}` }) => {
2261
+ return this.publicClient.watchContractEvent({
2262
+ address: this.contractAddress,
2263
+ abi: EmblemVault721AUpgradeable_jsonAbi,
2264
+ eventName: 'OwnershipTransferred',
2265
+ args: filter,
2266
+ onLogs: (logs: any[]) => {
2267
+ logs.forEach((log: any) => {
2268
+ callback(log.args as any);
2269
+ });
2270
+ },
2271
+ }) as () => void;
2272
+ },
2273
+ /**
2274
+ * Watch Transfer events
2275
+ * @param callback Function to call when event is emitted
2276
+ * @param filter Optional filter for indexed parameters
2277
+ * @returns Unwatch function to stop listening
2278
+ */
2279
+ Transfer: (callback: (event: { from: `0x${string}`; to: `0x${string}`; tokenId: bigint }) => void, filter?: { from: `0x${string}`; to: `0x${string}`; tokenId: bigint }) => {
2280
+ return this.publicClient.watchContractEvent({
2281
+ address: this.contractAddress,
2282
+ abi: EmblemVault721AUpgradeable_jsonAbi,
2283
+ eventName: 'Transfer',
2284
+ args: filter,
2285
+ onLogs: (logs: any[]) => {
2286
+ logs.forEach((log: any) => {
2287
+ callback(log.args as any);
2288
+ });
2289
+ },
2290
+ }) as () => void;
2291
+ }
2292
+ };
2293
+ }
2294
+ }