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