@gitmyabi/vlns 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,1298 @@
1
+ import type { Address, PublicClient, WalletClient } from 'viem';
2
+ /**
3
+ * VLNS_json ABI
4
+ *
5
+ * This ABI is typed using viem's type system for full type safety.
6
+ */
7
+ export declare const VLNS_jsonAbi: readonly [{
8
+ readonly inputs: readonly [{
9
+ readonly internalType: "address";
10
+ readonly name: "deployer";
11
+ readonly type: "address";
12
+ }, {
13
+ readonly internalType: "address";
14
+ readonly name: "defaultRoyaltyReceiver";
15
+ readonly type: "address";
16
+ }];
17
+ readonly stateMutability: "nonpayable";
18
+ readonly type: "constructor";
19
+ }, {
20
+ readonly inputs: readonly [];
21
+ readonly name: "AlreadyLinked";
22
+ readonly type: "error";
23
+ }, {
24
+ readonly inputs: readonly [];
25
+ readonly name: "CannotLink";
26
+ readonly type: "error";
27
+ }, {
28
+ readonly inputs: readonly [];
29
+ readonly name: "FnSelectorNotRecognized";
30
+ readonly type: "error";
31
+ }, {
32
+ readonly inputs: readonly [];
33
+ readonly name: "IsFinalized";
34
+ readonly type: "error";
35
+ }, {
36
+ readonly inputs: readonly [];
37
+ readonly name: "NotAuthorized";
38
+ readonly type: "error";
39
+ }, {
40
+ readonly inputs: readonly [];
41
+ readonly name: "NotLinked";
42
+ readonly type: "error";
43
+ }, {
44
+ readonly inputs: readonly [];
45
+ readonly name: "SenderNotBase";
46
+ readonly type: "error";
47
+ }, {
48
+ readonly inputs: readonly [];
49
+ readonly name: "SenderNotDeployer";
50
+ readonly type: "error";
51
+ }, {
52
+ readonly inputs: readonly [];
53
+ readonly name: "TransferToNonERC721ReceiverImplementer";
54
+ readonly type: "error";
55
+ }, {
56
+ readonly inputs: readonly [];
57
+ readonly name: "ValueNotAccepted";
58
+ readonly type: "error";
59
+ }, {
60
+ readonly anonymous: false;
61
+ readonly inputs: readonly [{
62
+ readonly indexed: true;
63
+ readonly internalType: "address";
64
+ readonly name: "owner";
65
+ readonly type: "address";
66
+ }, {
67
+ readonly indexed: true;
68
+ readonly internalType: "address";
69
+ readonly name: "account";
70
+ readonly type: "address";
71
+ }, {
72
+ readonly indexed: true;
73
+ readonly internalType: "uint256";
74
+ readonly name: "id";
75
+ readonly type: "uint256";
76
+ }];
77
+ readonly name: "Approval";
78
+ readonly type: "event";
79
+ }, {
80
+ readonly anonymous: false;
81
+ readonly inputs: readonly [{
82
+ readonly indexed: true;
83
+ readonly internalType: "address";
84
+ readonly name: "owner";
85
+ readonly type: "address";
86
+ }, {
87
+ readonly indexed: true;
88
+ readonly internalType: "address";
89
+ readonly name: "operator";
90
+ readonly type: "address";
91
+ }, {
92
+ readonly indexed: false;
93
+ readonly internalType: "bool";
94
+ readonly name: "isApproved";
95
+ readonly type: "bool";
96
+ }];
97
+ readonly name: "ApprovalForAll";
98
+ readonly type: "event";
99
+ }, {
100
+ readonly anonymous: false;
101
+ readonly inputs: readonly [{
102
+ readonly indexed: true;
103
+ readonly internalType: "address";
104
+ readonly name: "receiver";
105
+ readonly type: "address";
106
+ }, {
107
+ readonly indexed: false;
108
+ readonly internalType: "uint96";
109
+ readonly name: "feeNumerator";
110
+ readonly type: "uint96";
111
+ }];
112
+ readonly name: "DefaultRoyaltyUpdated";
113
+ readonly type: "event";
114
+ }, {
115
+ readonly anonymous: false;
116
+ readonly inputs: readonly [];
117
+ readonly name: "MirrorFinalized";
118
+ readonly type: "event";
119
+ }, {
120
+ readonly anonymous: false;
121
+ readonly inputs: readonly [{
122
+ readonly indexed: true;
123
+ readonly internalType: "address";
124
+ readonly name: "oldOwner";
125
+ readonly type: "address";
126
+ }, {
127
+ readonly indexed: true;
128
+ readonly internalType: "address";
129
+ readonly name: "newOwner";
130
+ readonly type: "address";
131
+ }];
132
+ readonly name: "OwnershipTransferred";
133
+ readonly type: "event";
134
+ }, {
135
+ readonly anonymous: false;
136
+ readonly inputs: readonly [{
137
+ readonly indexed: true;
138
+ readonly internalType: "bytes32";
139
+ readonly name: "role";
140
+ readonly type: "bytes32";
141
+ }, {
142
+ readonly indexed: true;
143
+ readonly internalType: "bytes32";
144
+ readonly name: "previousAdminRole";
145
+ readonly type: "bytes32";
146
+ }, {
147
+ readonly indexed: true;
148
+ readonly internalType: "bytes32";
149
+ readonly name: "newAdminRole";
150
+ readonly type: "bytes32";
151
+ }];
152
+ readonly name: "RoleAdminChanged";
153
+ readonly type: "event";
154
+ }, {
155
+ readonly anonymous: false;
156
+ readonly inputs: readonly [{
157
+ readonly indexed: true;
158
+ readonly internalType: "bytes32";
159
+ readonly name: "role";
160
+ readonly type: "bytes32";
161
+ }, {
162
+ readonly indexed: true;
163
+ readonly internalType: "address";
164
+ readonly name: "account";
165
+ readonly type: "address";
166
+ }, {
167
+ readonly indexed: true;
168
+ readonly internalType: "address";
169
+ readonly name: "sender";
170
+ readonly type: "address";
171
+ }];
172
+ readonly name: "RoleGranted";
173
+ readonly type: "event";
174
+ }, {
175
+ readonly anonymous: false;
176
+ readonly inputs: readonly [{
177
+ readonly indexed: true;
178
+ readonly internalType: "bytes32";
179
+ readonly name: "role";
180
+ readonly type: "bytes32";
181
+ }, {
182
+ readonly indexed: true;
183
+ readonly internalType: "address";
184
+ readonly name: "account";
185
+ readonly type: "address";
186
+ }, {
187
+ readonly indexed: true;
188
+ readonly internalType: "address";
189
+ readonly name: "sender";
190
+ readonly type: "address";
191
+ }];
192
+ readonly name: "RoleRevoked";
193
+ readonly type: "event";
194
+ }, {
195
+ readonly anonymous: false;
196
+ readonly inputs: readonly [{
197
+ readonly indexed: true;
198
+ readonly internalType: "address";
199
+ readonly name: "from";
200
+ readonly type: "address";
201
+ }, {
202
+ readonly indexed: true;
203
+ readonly internalType: "address";
204
+ readonly name: "to";
205
+ readonly type: "address";
206
+ }, {
207
+ readonly indexed: true;
208
+ readonly internalType: "uint256";
209
+ readonly name: "id";
210
+ readonly type: "uint256";
211
+ }];
212
+ readonly name: "Transfer";
213
+ readonly type: "event";
214
+ }, {
215
+ readonly stateMutability: "payable";
216
+ readonly type: "fallback";
217
+ }, {
218
+ readonly inputs: readonly [];
219
+ readonly name: "ADMIN_ROLE";
220
+ readonly outputs: readonly [{
221
+ readonly internalType: "bytes32";
222
+ readonly name: "";
223
+ readonly type: "bytes32";
224
+ }];
225
+ readonly stateMutability: "view";
226
+ readonly type: "function";
227
+ }, {
228
+ readonly inputs: readonly [];
229
+ readonly name: "DEFAULT_ADMIN_ROLE";
230
+ readonly outputs: readonly [{
231
+ readonly internalType: "bytes32";
232
+ readonly name: "";
233
+ readonly type: "bytes32";
234
+ }];
235
+ readonly stateMutability: "view";
236
+ readonly type: "function";
237
+ }, {
238
+ readonly inputs: readonly [{
239
+ readonly internalType: "address";
240
+ readonly name: "spender";
241
+ readonly type: "address";
242
+ }, {
243
+ readonly internalType: "uint256";
244
+ readonly name: "id";
245
+ readonly type: "uint256";
246
+ }];
247
+ readonly name: "approve";
248
+ readonly outputs: readonly [];
249
+ readonly stateMutability: "payable";
250
+ readonly type: "function";
251
+ }, {
252
+ readonly inputs: readonly [{
253
+ readonly internalType: "address";
254
+ readonly name: "nftOwner";
255
+ readonly type: "address";
256
+ }];
257
+ readonly name: "balanceOf";
258
+ readonly outputs: readonly [{
259
+ readonly internalType: "uint256";
260
+ readonly name: "";
261
+ readonly type: "uint256";
262
+ }];
263
+ readonly stateMutability: "view";
264
+ readonly type: "function";
265
+ }, {
266
+ readonly inputs: readonly [];
267
+ readonly name: "baseERC20";
268
+ readonly outputs: readonly [{
269
+ readonly internalType: "address";
270
+ readonly name: "base";
271
+ readonly type: "address";
272
+ }];
273
+ readonly stateMutability: "view";
274
+ readonly type: "function";
275
+ }, {
276
+ readonly inputs: readonly [];
277
+ readonly name: "finalize";
278
+ readonly outputs: readonly [];
279
+ readonly stateMutability: "nonpayable";
280
+ readonly type: "function";
281
+ }, {
282
+ readonly inputs: readonly [];
283
+ readonly name: "finalized";
284
+ readonly outputs: readonly [{
285
+ readonly internalType: "bool";
286
+ readonly name: "";
287
+ readonly type: "bool";
288
+ }];
289
+ readonly stateMutability: "view";
290
+ readonly type: "function";
291
+ }, {
292
+ readonly inputs: readonly [{
293
+ readonly internalType: "uint256";
294
+ readonly name: "id";
295
+ readonly type: "uint256";
296
+ }];
297
+ readonly name: "getApproved";
298
+ readonly outputs: readonly [{
299
+ readonly internalType: "address";
300
+ readonly name: "";
301
+ readonly type: "address";
302
+ }];
303
+ readonly stateMutability: "view";
304
+ readonly type: "function";
305
+ }, {
306
+ readonly inputs: readonly [];
307
+ readonly name: "getDefaultRoyaltyRate";
308
+ readonly outputs: readonly [{
309
+ readonly internalType: "uint96";
310
+ readonly name: "";
311
+ readonly type: "uint96";
312
+ }];
313
+ readonly stateMutability: "view";
314
+ readonly type: "function";
315
+ }, {
316
+ readonly inputs: readonly [{
317
+ readonly internalType: "bytes32";
318
+ readonly name: "role";
319
+ readonly type: "bytes32";
320
+ }];
321
+ readonly name: "getRoleAdmin";
322
+ readonly outputs: readonly [{
323
+ readonly internalType: "bytes32";
324
+ readonly name: "";
325
+ readonly type: "bytes32";
326
+ }];
327
+ readonly stateMutability: "view";
328
+ readonly type: "function";
329
+ }, {
330
+ readonly inputs: readonly [{
331
+ readonly internalType: "bytes32";
332
+ readonly name: "role";
333
+ readonly type: "bytes32";
334
+ }, {
335
+ readonly internalType: "address";
336
+ readonly name: "account";
337
+ readonly type: "address";
338
+ }];
339
+ readonly name: "grantRole";
340
+ readonly outputs: readonly [];
341
+ readonly stateMutability: "nonpayable";
342
+ readonly type: "function";
343
+ }, {
344
+ readonly inputs: readonly [{
345
+ readonly internalType: "bytes32";
346
+ readonly name: "role";
347
+ readonly type: "bytes32";
348
+ }, {
349
+ readonly internalType: "address";
350
+ readonly name: "account";
351
+ readonly type: "address";
352
+ }];
353
+ readonly name: "hasRole";
354
+ readonly outputs: readonly [{
355
+ readonly internalType: "bool";
356
+ readonly name: "";
357
+ readonly type: "bool";
358
+ }];
359
+ readonly stateMutability: "view";
360
+ readonly type: "function";
361
+ }, {
362
+ readonly inputs: readonly [{
363
+ readonly internalType: "address";
364
+ readonly name: "nftOwner";
365
+ readonly type: "address";
366
+ }, {
367
+ readonly internalType: "address";
368
+ readonly name: "operator";
369
+ readonly type: "address";
370
+ }];
371
+ readonly name: "isApprovedForAll";
372
+ readonly outputs: readonly [{
373
+ readonly internalType: "bool";
374
+ readonly name: "";
375
+ readonly type: "bool";
376
+ }];
377
+ readonly stateMutability: "view";
378
+ readonly type: "function";
379
+ }, {
380
+ readonly inputs: readonly [];
381
+ readonly name: "name";
382
+ readonly outputs: readonly [{
383
+ readonly internalType: "string";
384
+ readonly name: "";
385
+ readonly type: "string";
386
+ }];
387
+ readonly stateMutability: "view";
388
+ readonly type: "function";
389
+ }, {
390
+ readonly inputs: readonly [];
391
+ readonly name: "owner";
392
+ readonly outputs: readonly [{
393
+ readonly internalType: "address";
394
+ readonly name: "";
395
+ readonly type: "address";
396
+ }];
397
+ readonly stateMutability: "view";
398
+ readonly type: "function";
399
+ }, {
400
+ readonly inputs: readonly [{
401
+ readonly internalType: "uint256";
402
+ readonly name: "id";
403
+ readonly type: "uint256";
404
+ }];
405
+ readonly name: "ownerAt";
406
+ readonly outputs: readonly [{
407
+ readonly internalType: "address";
408
+ readonly name: "";
409
+ readonly type: "address";
410
+ }];
411
+ readonly stateMutability: "view";
412
+ readonly type: "function";
413
+ }, {
414
+ readonly inputs: readonly [{
415
+ readonly internalType: "uint256";
416
+ readonly name: "id";
417
+ readonly type: "uint256";
418
+ }];
419
+ readonly name: "ownerOf";
420
+ readonly outputs: readonly [{
421
+ readonly internalType: "address";
422
+ readonly name: "";
423
+ readonly type: "address";
424
+ }];
425
+ readonly stateMutability: "view";
426
+ readonly type: "function";
427
+ }, {
428
+ readonly inputs: readonly [];
429
+ readonly name: "pullOwner";
430
+ readonly outputs: readonly [{
431
+ readonly internalType: "bool";
432
+ readonly name: "";
433
+ readonly type: "bool";
434
+ }];
435
+ readonly stateMutability: "nonpayable";
436
+ readonly type: "function";
437
+ }, {
438
+ readonly inputs: readonly [{
439
+ readonly internalType: "bytes32";
440
+ readonly name: "role";
441
+ readonly type: "bytes32";
442
+ }, {
443
+ readonly internalType: "address";
444
+ readonly name: "account";
445
+ readonly type: "address";
446
+ }];
447
+ readonly name: "renounceRole";
448
+ readonly outputs: readonly [];
449
+ readonly stateMutability: "nonpayable";
450
+ readonly type: "function";
451
+ }, {
452
+ readonly inputs: readonly [{
453
+ readonly internalType: "bytes32";
454
+ readonly name: "role";
455
+ readonly type: "bytes32";
456
+ }, {
457
+ readonly internalType: "address";
458
+ readonly name: "account";
459
+ readonly type: "address";
460
+ }];
461
+ readonly name: "revokeRole";
462
+ readonly outputs: readonly [];
463
+ readonly stateMutability: "nonpayable";
464
+ readonly type: "function";
465
+ }, {
466
+ readonly inputs: readonly [{
467
+ readonly internalType: "uint256";
468
+ readonly name: "tokenId";
469
+ readonly type: "uint256";
470
+ }, {
471
+ readonly internalType: "uint256";
472
+ readonly name: "salePrice";
473
+ readonly type: "uint256";
474
+ }];
475
+ readonly name: "royaltyInfo";
476
+ readonly outputs: readonly [{
477
+ readonly internalType: "address";
478
+ readonly name: "";
479
+ readonly type: "address";
480
+ }, {
481
+ readonly internalType: "uint256";
482
+ readonly name: "";
483
+ readonly type: "uint256";
484
+ }];
485
+ readonly stateMutability: "view";
486
+ readonly type: "function";
487
+ }, {
488
+ readonly inputs: readonly [{
489
+ readonly internalType: "address";
490
+ readonly name: "from";
491
+ readonly type: "address";
492
+ }, {
493
+ readonly internalType: "address";
494
+ readonly name: "to";
495
+ readonly type: "address";
496
+ }, {
497
+ readonly internalType: "uint256";
498
+ readonly name: "id";
499
+ readonly type: "uint256";
500
+ }];
501
+ readonly name: "safeTransferFrom";
502
+ readonly outputs: readonly [];
503
+ readonly stateMutability: "payable";
504
+ readonly type: "function";
505
+ }, {
506
+ readonly inputs: readonly [{
507
+ readonly internalType: "address";
508
+ readonly name: "from";
509
+ readonly type: "address";
510
+ }, {
511
+ readonly internalType: "address";
512
+ readonly name: "to";
513
+ readonly type: "address";
514
+ }, {
515
+ readonly internalType: "uint256";
516
+ readonly name: "id";
517
+ readonly type: "uint256";
518
+ }, {
519
+ readonly internalType: "bytes";
520
+ readonly name: "data";
521
+ readonly type: "bytes";
522
+ }];
523
+ readonly name: "safeTransferFrom";
524
+ readonly outputs: readonly [];
525
+ readonly stateMutability: "payable";
526
+ readonly type: "function";
527
+ }, {
528
+ readonly inputs: readonly [{
529
+ readonly internalType: "address";
530
+ readonly name: "operator";
531
+ readonly type: "address";
532
+ }, {
533
+ readonly internalType: "bool";
534
+ readonly name: "approved";
535
+ readonly type: "bool";
536
+ }];
537
+ readonly name: "setApprovalForAll";
538
+ readonly outputs: readonly [];
539
+ readonly stateMutability: "nonpayable";
540
+ readonly type: "function";
541
+ }, {
542
+ readonly inputs: readonly [{
543
+ readonly internalType: "address";
544
+ readonly name: "receiver";
545
+ readonly type: "address";
546
+ }, {
547
+ readonly internalType: "uint96";
548
+ readonly name: "feeNumerator";
549
+ readonly type: "uint96";
550
+ }];
551
+ readonly name: "setDefaultRoyalty";
552
+ readonly outputs: readonly [];
553
+ readonly stateMutability: "nonpayable";
554
+ readonly type: "function";
555
+ }, {
556
+ readonly inputs: readonly [{
557
+ readonly internalType: "bytes4";
558
+ readonly name: "interfaceId";
559
+ readonly type: "bytes4";
560
+ }];
561
+ readonly name: "supportsInterface";
562
+ readonly outputs: readonly [{
563
+ readonly internalType: "bool";
564
+ readonly name: "";
565
+ readonly type: "bool";
566
+ }];
567
+ readonly stateMutability: "view";
568
+ readonly type: "function";
569
+ }, {
570
+ readonly inputs: readonly [];
571
+ readonly name: "symbol";
572
+ readonly outputs: readonly [{
573
+ readonly internalType: "string";
574
+ readonly name: "";
575
+ readonly type: "string";
576
+ }];
577
+ readonly stateMutability: "view";
578
+ readonly type: "function";
579
+ }, {
580
+ readonly inputs: readonly [{
581
+ readonly internalType: "uint256";
582
+ readonly name: "id";
583
+ readonly type: "uint256";
584
+ }];
585
+ readonly name: "tokenURI";
586
+ readonly outputs: readonly [{
587
+ readonly internalType: "string";
588
+ readonly name: "";
589
+ readonly type: "string";
590
+ }];
591
+ readonly stateMutability: "view";
592
+ readonly type: "function";
593
+ }, {
594
+ readonly inputs: readonly [];
595
+ readonly name: "totalSupply";
596
+ readonly outputs: readonly [{
597
+ readonly internalType: "uint256";
598
+ readonly name: "";
599
+ readonly type: "uint256";
600
+ }];
601
+ readonly stateMutability: "view";
602
+ readonly type: "function";
603
+ }, {
604
+ readonly inputs: readonly [{
605
+ readonly internalType: "address";
606
+ readonly name: "from";
607
+ readonly type: "address";
608
+ }, {
609
+ readonly internalType: "address";
610
+ readonly name: "to";
611
+ readonly type: "address";
612
+ }, {
613
+ readonly internalType: "uint256";
614
+ readonly name: "id";
615
+ readonly type: "uint256";
616
+ }];
617
+ readonly name: "transferFrom";
618
+ readonly outputs: readonly [];
619
+ readonly stateMutability: "payable";
620
+ readonly type: "function";
621
+ }, {
622
+ readonly inputs: readonly [];
623
+ readonly name: "withdrawETH";
624
+ readonly outputs: readonly [];
625
+ readonly stateMutability: "nonpayable";
626
+ readonly type: "function";
627
+ }, {
628
+ readonly stateMutability: "payable";
629
+ readonly type: "receive";
630
+ }];
631
+ /**
632
+ * Type-safe ABI for VLNS_json
633
+ */
634
+ export type VLNS_jsonAbi = typeof VLNS_jsonAbi;
635
+ /**
636
+ * Contract instance type for VLNS_json
637
+ */
638
+ export type VLNS_jsonContract = any;
639
+ /**
640
+ * VLNS_json Contract Class
641
+ *
642
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
643
+ *
644
+ * @example
645
+ * ```typescript
646
+ * import { createPublicClient, createWalletClient, http } from 'viem';
647
+ * import { mainnet } from 'viem/chains';
648
+ * import { VLNS_json } from 'VLNS_json';
649
+ *
650
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
651
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
652
+ *
653
+ * const contract = new VLNS_json('0x...', { publicClient, walletClient });
654
+ *
655
+ * // Read functions
656
+ * const result = await contract.balanceOf('0x...');
657
+ *
658
+ * // Write functions
659
+ * const hash = await contract.transfer('0x...', 1000n);
660
+ *
661
+ * // Simulate transactions (dry-run)
662
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
663
+ * console.log('Gas estimate:', simulation.request.gas);
664
+ *
665
+ * // Watch events
666
+ * const unwatch = contract.watch.Transfer((event) => {
667
+ * console.log('Transfer event:', event);
668
+ * });
669
+ * ```
670
+ */
671
+ export declare class VLNS_json {
672
+ private contract;
673
+ private contractAddress;
674
+ private publicClient;
675
+ constructor(address: Address, clients: {
676
+ publicClient: PublicClient;
677
+ walletClient?: WalletClient;
678
+ });
679
+ /**
680
+ * Get the contract address
681
+ */
682
+ get address(): Address;
683
+ /**
684
+ * Get the underlying viem contract instance
685
+ */
686
+ getContract(): VLNS_jsonContract;
687
+ /**
688
+ * ADMIN_ROLE
689
+ * view
690
+ */
691
+ ADMIN_ROLE(): Promise<`0x${string}`>;
692
+ /**
693
+ * DEFAULT_ADMIN_ROLE
694
+ * view
695
+ */
696
+ DEFAULT_ADMIN_ROLE(): Promise<`0x${string}`>;
697
+ /**
698
+ * balanceOf
699
+ * view
700
+ */
701
+ balanceOf(nftOwner: `0x${string}`): Promise<bigint>;
702
+ /**
703
+ * baseERC20
704
+ * view
705
+ */
706
+ baseERC20(): Promise<`0x${string}`>;
707
+ /**
708
+ * finalized
709
+ * view
710
+ */
711
+ finalized(): Promise<boolean>;
712
+ /**
713
+ * getApproved
714
+ * view
715
+ */
716
+ getApproved(id: bigint): Promise<`0x${string}`>;
717
+ /**
718
+ * getDefaultRoyaltyRate
719
+ * view
720
+ */
721
+ getDefaultRoyaltyRate(): Promise<bigint>;
722
+ /**
723
+ * getRoleAdmin
724
+ * view
725
+ */
726
+ getRoleAdmin(role: `0x${string}`): Promise<`0x${string}`>;
727
+ /**
728
+ * hasRole
729
+ * view
730
+ */
731
+ hasRole(role: `0x${string}`, account: `0x${string}`): Promise<boolean>;
732
+ /**
733
+ * isApprovedForAll
734
+ * view
735
+ */
736
+ isApprovedForAll(nftOwner: `0x${string}`, operator: `0x${string}`): Promise<boolean>;
737
+ /**
738
+ * name
739
+ * view
740
+ */
741
+ name(): Promise<string>;
742
+ /**
743
+ * owner
744
+ * view
745
+ */
746
+ owner(): Promise<`0x${string}`>;
747
+ /**
748
+ * ownerAt
749
+ * view
750
+ */
751
+ ownerAt(id: bigint): Promise<`0x${string}`>;
752
+ /**
753
+ * ownerOf
754
+ * view
755
+ */
756
+ ownerOf(id: bigint): Promise<`0x${string}`>;
757
+ /**
758
+ * royaltyInfo
759
+ * view
760
+ */
761
+ royaltyInfo(tokenId: bigint, salePrice: bigint): Promise<[`0x${string}`, bigint]>;
762
+ /**
763
+ * supportsInterface
764
+ * view
765
+ */
766
+ supportsInterface(interfaceId: `0x${string}`): Promise<boolean>;
767
+ /**
768
+ * symbol
769
+ * view
770
+ */
771
+ symbol(): Promise<string>;
772
+ /**
773
+ * tokenURI
774
+ * view
775
+ */
776
+ tokenURI(id: bigint): Promise<string>;
777
+ /**
778
+ * totalSupply
779
+ * view
780
+ */
781
+ totalSupply(): Promise<bigint>;
782
+ /**
783
+ * approve
784
+ * payable
785
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
786
+ */
787
+ approve(spender: `0x${string}`, id: bigint, options?: {
788
+ accessList?: import('viem').AccessList;
789
+ authorizationList?: import('viem').AuthorizationList;
790
+ chain?: import('viem').Chain | null;
791
+ dataSuffix?: `0x${string}`;
792
+ gas?: bigint;
793
+ gasPrice?: bigint;
794
+ maxFeePerGas?: bigint;
795
+ maxPriorityFeePerGas?: bigint;
796
+ nonce?: number;
797
+ value?: bigint;
798
+ }): Promise<`0x${string}`>;
799
+ /**
800
+ * finalize
801
+ * nonpayable
802
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
803
+ */
804
+ finalize(options?: {
805
+ accessList?: import('viem').AccessList;
806
+ authorizationList?: import('viem').AuthorizationList;
807
+ chain?: import('viem').Chain | null;
808
+ dataSuffix?: `0x${string}`;
809
+ gas?: bigint;
810
+ gasPrice?: bigint;
811
+ maxFeePerGas?: bigint;
812
+ maxPriorityFeePerGas?: bigint;
813
+ nonce?: number;
814
+ value?: bigint;
815
+ }): Promise<`0x${string}`>;
816
+ /**
817
+ * grantRole
818
+ * nonpayable
819
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
820
+ */
821
+ grantRole(role: `0x${string}`, account: `0x${string}`, options?: {
822
+ accessList?: import('viem').AccessList;
823
+ authorizationList?: import('viem').AuthorizationList;
824
+ chain?: import('viem').Chain | null;
825
+ dataSuffix?: `0x${string}`;
826
+ gas?: bigint;
827
+ gasPrice?: bigint;
828
+ maxFeePerGas?: bigint;
829
+ maxPriorityFeePerGas?: bigint;
830
+ nonce?: number;
831
+ value?: bigint;
832
+ }): Promise<`0x${string}`>;
833
+ /**
834
+ * pullOwner
835
+ * nonpayable
836
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
837
+ */
838
+ pullOwner(options?: {
839
+ accessList?: import('viem').AccessList;
840
+ authorizationList?: import('viem').AuthorizationList;
841
+ chain?: import('viem').Chain | null;
842
+ dataSuffix?: `0x${string}`;
843
+ gas?: bigint;
844
+ gasPrice?: bigint;
845
+ maxFeePerGas?: bigint;
846
+ maxPriorityFeePerGas?: bigint;
847
+ nonce?: number;
848
+ value?: bigint;
849
+ }): Promise<`0x${string}`>;
850
+ /**
851
+ * renounceRole
852
+ * nonpayable
853
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
854
+ */
855
+ renounceRole(role: `0x${string}`, account: `0x${string}`, options?: {
856
+ accessList?: import('viem').AccessList;
857
+ authorizationList?: import('viem').AuthorizationList;
858
+ chain?: import('viem').Chain | null;
859
+ dataSuffix?: `0x${string}`;
860
+ gas?: bigint;
861
+ gasPrice?: bigint;
862
+ maxFeePerGas?: bigint;
863
+ maxPriorityFeePerGas?: bigint;
864
+ nonce?: number;
865
+ value?: bigint;
866
+ }): Promise<`0x${string}`>;
867
+ /**
868
+ * revokeRole
869
+ * nonpayable
870
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
871
+ */
872
+ revokeRole(role: `0x${string}`, account: `0x${string}`, options?: {
873
+ accessList?: import('viem').AccessList;
874
+ authorizationList?: import('viem').AuthorizationList;
875
+ chain?: import('viem').Chain | null;
876
+ dataSuffix?: `0x${string}`;
877
+ gas?: bigint;
878
+ gasPrice?: bigint;
879
+ maxFeePerGas?: bigint;
880
+ maxPriorityFeePerGas?: bigint;
881
+ nonce?: number;
882
+ value?: bigint;
883
+ }): Promise<`0x${string}`>;
884
+ safeTransferFrom(from: `0x${string}`, to: `0x${string}`, id: bigint, options?: {
885
+ accessList?: import('viem').AccessList;
886
+ authorizationList?: import('viem').AuthorizationList;
887
+ chain?: import('viem').Chain | null;
888
+ dataSuffix?: `0x${string}`;
889
+ gas?: bigint;
890
+ gasPrice?: bigint;
891
+ maxFeePerGas?: bigint;
892
+ maxPriorityFeePerGas?: bigint;
893
+ nonce?: number;
894
+ value?: bigint;
895
+ }): Promise<`0x${string}`>;
896
+ safeTransferFrom(from: `0x${string}`, to: `0x${string}`, id: bigint, data: `0x${string}`, options?: {
897
+ accessList?: import('viem').AccessList;
898
+ authorizationList?: import('viem').AuthorizationList;
899
+ chain?: import('viem').Chain | null;
900
+ dataSuffix?: `0x${string}`;
901
+ gas?: bigint;
902
+ gasPrice?: bigint;
903
+ maxFeePerGas?: bigint;
904
+ maxPriorityFeePerGas?: bigint;
905
+ nonce?: number;
906
+ value?: bigint;
907
+ }): Promise<`0x${string}`>;
908
+ /**
909
+ * setApprovalForAll
910
+ * nonpayable
911
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
912
+ */
913
+ setApprovalForAll(operator: `0x${string}`, approved: boolean, options?: {
914
+ accessList?: import('viem').AccessList;
915
+ authorizationList?: import('viem').AuthorizationList;
916
+ chain?: import('viem').Chain | null;
917
+ dataSuffix?: `0x${string}`;
918
+ gas?: bigint;
919
+ gasPrice?: bigint;
920
+ maxFeePerGas?: bigint;
921
+ maxPriorityFeePerGas?: bigint;
922
+ nonce?: number;
923
+ value?: bigint;
924
+ }): Promise<`0x${string}`>;
925
+ /**
926
+ * setDefaultRoyalty
927
+ * nonpayable
928
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
929
+ */
930
+ setDefaultRoyalty(receiver: `0x${string}`, feeNumerator: bigint, options?: {
931
+ accessList?: import('viem').AccessList;
932
+ authorizationList?: import('viem').AuthorizationList;
933
+ chain?: import('viem').Chain | null;
934
+ dataSuffix?: `0x${string}`;
935
+ gas?: bigint;
936
+ gasPrice?: bigint;
937
+ maxFeePerGas?: bigint;
938
+ maxPriorityFeePerGas?: bigint;
939
+ nonce?: number;
940
+ value?: bigint;
941
+ }): Promise<`0x${string}`>;
942
+ /**
943
+ * transferFrom
944
+ * payable
945
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
946
+ */
947
+ transferFrom(from: `0x${string}`, to: `0x${string}`, id: bigint, options?: {
948
+ accessList?: import('viem').AccessList;
949
+ authorizationList?: import('viem').AuthorizationList;
950
+ chain?: import('viem').Chain | null;
951
+ dataSuffix?: `0x${string}`;
952
+ gas?: bigint;
953
+ gasPrice?: bigint;
954
+ maxFeePerGas?: bigint;
955
+ maxPriorityFeePerGas?: bigint;
956
+ nonce?: number;
957
+ value?: bigint;
958
+ }): Promise<`0x${string}`>;
959
+ /**
960
+ * withdrawETH
961
+ * nonpayable
962
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
963
+ */
964
+ withdrawETH(options?: {
965
+ accessList?: import('viem').AccessList;
966
+ authorizationList?: import('viem').AuthorizationList;
967
+ chain?: import('viem').Chain | null;
968
+ dataSuffix?: `0x${string}`;
969
+ gas?: bigint;
970
+ gasPrice?: bigint;
971
+ maxFeePerGas?: bigint;
972
+ maxPriorityFeePerGas?: bigint;
973
+ nonce?: number;
974
+ value?: bigint;
975
+ }): Promise<`0x${string}`>;
976
+ /**
977
+ * Simulate contract write operations (dry-run without sending transaction)
978
+ *
979
+ * @example
980
+ * const result = await contract.simulate.transfer('0x...', 1000n);
981
+ * console.log('Gas estimate:', result.request.gas);
982
+ * console.log('Would succeed:', result.result);
983
+ */
984
+ get simulate(): {
985
+ /**
986
+ * Simulate approve
987
+ * Returns gas estimate and result without sending transaction
988
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
989
+ */
990
+ approve(spender: `0x${string}`, id: bigint, options?: {
991
+ accessList?: import("viem").AccessList;
992
+ authorizationList?: import("viem").AuthorizationList;
993
+ chain?: import("viem").Chain | null;
994
+ dataSuffix?: `0x${string}`;
995
+ gas?: bigint;
996
+ gasPrice?: bigint;
997
+ maxFeePerGas?: bigint;
998
+ maxPriorityFeePerGas?: bigint;
999
+ nonce?: number;
1000
+ value?: bigint;
1001
+ }): Promise<void>;
1002
+ /**
1003
+ * Simulate finalize
1004
+ * Returns gas estimate and result without sending transaction
1005
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1006
+ */
1007
+ finalize(options?: {
1008
+ accessList?: import("viem").AccessList;
1009
+ authorizationList?: import("viem").AuthorizationList;
1010
+ chain?: import("viem").Chain | null;
1011
+ dataSuffix?: `0x${string}`;
1012
+ gas?: bigint;
1013
+ gasPrice?: bigint;
1014
+ maxFeePerGas?: bigint;
1015
+ maxPriorityFeePerGas?: bigint;
1016
+ nonce?: number;
1017
+ value?: bigint;
1018
+ }): Promise<void>;
1019
+ /**
1020
+ * Simulate grantRole
1021
+ * Returns gas estimate and result without sending transaction
1022
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1023
+ */
1024
+ grantRole(role: `0x${string}`, account: `0x${string}`, options?: {
1025
+ accessList?: import("viem").AccessList;
1026
+ authorizationList?: import("viem").AuthorizationList;
1027
+ chain?: import("viem").Chain | null;
1028
+ dataSuffix?: `0x${string}`;
1029
+ gas?: bigint;
1030
+ gasPrice?: bigint;
1031
+ maxFeePerGas?: bigint;
1032
+ maxPriorityFeePerGas?: bigint;
1033
+ nonce?: number;
1034
+ value?: bigint;
1035
+ }): Promise<void>;
1036
+ /**
1037
+ * Simulate pullOwner
1038
+ * Returns gas estimate and result without sending transaction
1039
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1040
+ */
1041
+ pullOwner(options?: {
1042
+ accessList?: import("viem").AccessList;
1043
+ authorizationList?: import("viem").AuthorizationList;
1044
+ chain?: import("viem").Chain | null;
1045
+ dataSuffix?: `0x${string}`;
1046
+ gas?: bigint;
1047
+ gasPrice?: bigint;
1048
+ maxFeePerGas?: bigint;
1049
+ maxPriorityFeePerGas?: bigint;
1050
+ nonce?: number;
1051
+ value?: bigint;
1052
+ }): Promise<boolean>;
1053
+ /**
1054
+ * Simulate renounceRole
1055
+ * Returns gas estimate and result without sending transaction
1056
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1057
+ */
1058
+ renounceRole(role: `0x${string}`, account: `0x${string}`, options?: {
1059
+ accessList?: import("viem").AccessList;
1060
+ authorizationList?: import("viem").AuthorizationList;
1061
+ chain?: import("viem").Chain | null;
1062
+ dataSuffix?: `0x${string}`;
1063
+ gas?: bigint;
1064
+ gasPrice?: bigint;
1065
+ maxFeePerGas?: bigint;
1066
+ maxPriorityFeePerGas?: bigint;
1067
+ nonce?: number;
1068
+ value?: bigint;
1069
+ }): Promise<void>;
1070
+ /**
1071
+ * Simulate revokeRole
1072
+ * Returns gas estimate and result without sending transaction
1073
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1074
+ */
1075
+ revokeRole(role: `0x${string}`, account: `0x${string}`, options?: {
1076
+ accessList?: import("viem").AccessList;
1077
+ authorizationList?: import("viem").AuthorizationList;
1078
+ chain?: import("viem").Chain | null;
1079
+ dataSuffix?: `0x${string}`;
1080
+ gas?: bigint;
1081
+ gasPrice?: bigint;
1082
+ maxFeePerGas?: bigint;
1083
+ maxPriorityFeePerGas?: bigint;
1084
+ nonce?: number;
1085
+ value?: bigint;
1086
+ }): Promise<void>;
1087
+ /**
1088
+ * Simulate safeTransferFrom
1089
+ * Returns gas estimate and result without sending transaction
1090
+ * Supports multiple overloads: (address, address, uint256), (address, address, uint256, bytes)
1091
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1092
+ */
1093
+ safeTransferFrom(...args: any[]): Promise<any>;
1094
+ /**
1095
+ * Simulate setApprovalForAll
1096
+ * Returns gas estimate and result without sending transaction
1097
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1098
+ */
1099
+ setApprovalForAll(operator: `0x${string}`, approved: boolean, options?: {
1100
+ accessList?: import("viem").AccessList;
1101
+ authorizationList?: import("viem").AuthorizationList;
1102
+ chain?: import("viem").Chain | null;
1103
+ dataSuffix?: `0x${string}`;
1104
+ gas?: bigint;
1105
+ gasPrice?: bigint;
1106
+ maxFeePerGas?: bigint;
1107
+ maxPriorityFeePerGas?: bigint;
1108
+ nonce?: number;
1109
+ value?: bigint;
1110
+ }): Promise<void>;
1111
+ /**
1112
+ * Simulate setDefaultRoyalty
1113
+ * Returns gas estimate and result without sending transaction
1114
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1115
+ */
1116
+ setDefaultRoyalty(receiver: `0x${string}`, feeNumerator: bigint, options?: {
1117
+ accessList?: import("viem").AccessList;
1118
+ authorizationList?: import("viem").AuthorizationList;
1119
+ chain?: import("viem").Chain | null;
1120
+ dataSuffix?: `0x${string}`;
1121
+ gas?: bigint;
1122
+ gasPrice?: bigint;
1123
+ maxFeePerGas?: bigint;
1124
+ maxPriorityFeePerGas?: bigint;
1125
+ nonce?: number;
1126
+ value?: bigint;
1127
+ }): Promise<void>;
1128
+ /**
1129
+ * Simulate transferFrom
1130
+ * Returns gas estimate and result without sending transaction
1131
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1132
+ */
1133
+ transferFrom(from: `0x${string}`, to: `0x${string}`, id: bigint, 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<void>;
1145
+ /**
1146
+ * Simulate withdrawETH
1147
+ * Returns gas estimate and result without sending transaction
1148
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1149
+ */
1150
+ withdrawETH(options?: {
1151
+ accessList?: import("viem").AccessList;
1152
+ authorizationList?: import("viem").AuthorizationList;
1153
+ chain?: import("viem").Chain | null;
1154
+ dataSuffix?: `0x${string}`;
1155
+ gas?: bigint;
1156
+ gasPrice?: bigint;
1157
+ maxFeePerGas?: bigint;
1158
+ maxPriorityFeePerGas?: bigint;
1159
+ nonce?: number;
1160
+ value?: bigint;
1161
+ }): Promise<void>;
1162
+ };
1163
+ /**
1164
+ * Watch contract events
1165
+ *
1166
+ * @example
1167
+ * // Watch all Transfer events
1168
+ * const unwatch = contract.watch.Transfer((event) => {
1169
+ * console.log('Transfer:', event);
1170
+ * });
1171
+ *
1172
+ * // Stop watching
1173
+ * unwatch();
1174
+ */
1175
+ get watch(): {
1176
+ /**
1177
+ * Watch Approval events
1178
+ * @param callback Function to call when event is emitted
1179
+ * @param filter Optional filter for indexed parameters
1180
+ * @returns Unwatch function to stop listening
1181
+ */
1182
+ Approval: (callback: (event: {
1183
+ owner: `0x${string}`;
1184
+ account: `0x${string}`;
1185
+ id: bigint;
1186
+ }) => void, filter?: {
1187
+ owner: `0x${string}`;
1188
+ account: `0x${string}`;
1189
+ id: bigint;
1190
+ }) => () => void;
1191
+ /**
1192
+ * Watch ApprovalForAll events
1193
+ * @param callback Function to call when event is emitted
1194
+ * @param filter Optional filter for indexed parameters
1195
+ * @returns Unwatch function to stop listening
1196
+ */
1197
+ ApprovalForAll: (callback: (event: {
1198
+ owner: `0x${string}`;
1199
+ operator: `0x${string}`;
1200
+ isApproved: boolean;
1201
+ }) => void, filter?: {
1202
+ owner: `0x${string}`;
1203
+ operator: `0x${string}`;
1204
+ }) => () => void;
1205
+ /**
1206
+ * Watch DefaultRoyaltyUpdated events
1207
+ * @param callback Function to call when event is emitted
1208
+ * @param filter Optional filter for indexed parameters
1209
+ * @returns Unwatch function to stop listening
1210
+ */
1211
+ DefaultRoyaltyUpdated: (callback: (event: {
1212
+ receiver: `0x${string}`;
1213
+ feeNumerator: bigint;
1214
+ }) => void, filter?: {
1215
+ receiver: `0x${string}`;
1216
+ }) => () => void;
1217
+ /**
1218
+ * Watch MirrorFinalized events
1219
+ * @param callback Function to call when event is emitted
1220
+ * @param filter Optional filter for indexed parameters
1221
+ * @returns Unwatch function to stop listening
1222
+ */
1223
+ MirrorFinalized: (callback: (event: {}) => void) => () => void;
1224
+ /**
1225
+ * Watch OwnershipTransferred events
1226
+ * @param callback Function to call when event is emitted
1227
+ * @param filter Optional filter for indexed parameters
1228
+ * @returns Unwatch function to stop listening
1229
+ */
1230
+ OwnershipTransferred: (callback: (event: {
1231
+ oldOwner: `0x${string}`;
1232
+ newOwner: `0x${string}`;
1233
+ }) => void, filter?: {
1234
+ oldOwner: `0x${string}`;
1235
+ newOwner: `0x${string}`;
1236
+ }) => () => void;
1237
+ /**
1238
+ * Watch RoleAdminChanged events
1239
+ * @param callback Function to call when event is emitted
1240
+ * @param filter Optional filter for indexed parameters
1241
+ * @returns Unwatch function to stop listening
1242
+ */
1243
+ RoleAdminChanged: (callback: (event: {
1244
+ role: `0x${string}`;
1245
+ previousAdminRole: `0x${string}`;
1246
+ newAdminRole: `0x${string}`;
1247
+ }) => void, filter?: {
1248
+ role: `0x${string}`;
1249
+ previousAdminRole: `0x${string}`;
1250
+ newAdminRole: `0x${string}`;
1251
+ }) => () => void;
1252
+ /**
1253
+ * Watch RoleGranted events
1254
+ * @param callback Function to call when event is emitted
1255
+ * @param filter Optional filter for indexed parameters
1256
+ * @returns Unwatch function to stop listening
1257
+ */
1258
+ RoleGranted: (callback: (event: {
1259
+ role: `0x${string}`;
1260
+ account: `0x${string}`;
1261
+ sender: `0x${string}`;
1262
+ }) => void, filter?: {
1263
+ role: `0x${string}`;
1264
+ account: `0x${string}`;
1265
+ sender: `0x${string}`;
1266
+ }) => () => void;
1267
+ /**
1268
+ * Watch RoleRevoked events
1269
+ * @param callback Function to call when event is emitted
1270
+ * @param filter Optional filter for indexed parameters
1271
+ * @returns Unwatch function to stop listening
1272
+ */
1273
+ RoleRevoked: (callback: (event: {
1274
+ role: `0x${string}`;
1275
+ account: `0x${string}`;
1276
+ sender: `0x${string}`;
1277
+ }) => void, filter?: {
1278
+ role: `0x${string}`;
1279
+ account: `0x${string}`;
1280
+ sender: `0x${string}`;
1281
+ }) => () => void;
1282
+ /**
1283
+ * Watch Transfer events
1284
+ * @param callback Function to call when event is emitted
1285
+ * @param filter Optional filter for indexed parameters
1286
+ * @returns Unwatch function to stop listening
1287
+ */
1288
+ Transfer: (callback: (event: {
1289
+ from: `0x${string}`;
1290
+ to: `0x${string}`;
1291
+ id: bigint;
1292
+ }) => void, filter?: {
1293
+ from: `0x${string}`;
1294
+ to: `0x${string}`;
1295
+ id: bigint;
1296
+ }) => () => void;
1297
+ };
1298
+ }