@gitmyabi/quirkiesimplementationv8 1.0.0

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