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