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