@gitmyabi/nxr 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,1618 @@
1
+ import type { Abi, Address, PublicClient, WalletClient, GetContractReturnType } from 'viem';
2
+ import { getContract } from 'viem';
3
+
4
+
5
+ /**
6
+ * AuthInfo struct type
7
+ */
8
+ export type AuthInfo = {
9
+ owner: `0x${string}`;
10
+ };
11
+
12
+ /**
13
+ * TokenInfo struct type
14
+ */
15
+ export type TokenInfo = {
16
+ name: string;
17
+ symbol: string;
18
+ decimals: bigint;
19
+ };
20
+
21
+ /**
22
+ * SupplyInfo struct type
23
+ */
24
+ export type SupplyInfo = {
25
+ mintTarget: `0x${string}`;
26
+ initialSupply: bigint;
27
+ maxSupply: bigint;
28
+ };
29
+ /**
30
+ * UltimateTokenOwnable_json ABI
31
+ *
32
+ * This ABI is typed using viem's type system for full type safety.
33
+ */
34
+ export const UltimateTokenOwnable_jsonAbi = [
35
+ {
36
+ "inputs": [],
37
+ "name": "AllowanceOverflow",
38
+ "type": "error"
39
+ },
40
+ {
41
+ "inputs": [],
42
+ "name": "AllowanceUnderflow",
43
+ "type": "error"
44
+ },
45
+ {
46
+ "inputs": [],
47
+ "name": "AlreadyInitialized",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [
52
+ {
53
+ "internalType": "uint256",
54
+ "name": "increasedSupply",
55
+ "type": "uint256"
56
+ },
57
+ {
58
+ "internalType": "uint256",
59
+ "name": "maxSupply",
60
+ "type": "uint256"
61
+ }
62
+ ],
63
+ "name": "ERC20ExceededCap",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ERC20TransferPaused",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [],
73
+ "name": "InsufficientAllowance",
74
+ "type": "error"
75
+ },
76
+ {
77
+ "inputs": [],
78
+ "name": "InsufficientBalance",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "InvalidInitialization",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "InvalidPermit",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "NewOwnerIsZeroAddress",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "NoHandoverRequest",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "NotInitializing",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "Permit2AllowanceIsFixedAtInfinity",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [],
113
+ "name": "PermitExpired",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "TotalSupplyOverflow",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [],
123
+ "name": "Unauthorized",
124
+ "type": "error"
125
+ },
126
+ {
127
+ "anonymous": false,
128
+ "inputs": [
129
+ {
130
+ "indexed": true,
131
+ "internalType": "address",
132
+ "name": "owner",
133
+ "type": "address"
134
+ },
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "spender",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "uint256",
144
+ "name": "amount",
145
+ "type": "uint256"
146
+ }
147
+ ],
148
+ "name": "Approval",
149
+ "type": "event"
150
+ },
151
+ {
152
+ "anonymous": false,
153
+ "inputs": [
154
+ {
155
+ "indexed": false,
156
+ "internalType": "uint64",
157
+ "name": "version",
158
+ "type": "uint64"
159
+ }
160
+ ],
161
+ "name": "Initialized",
162
+ "type": "event"
163
+ },
164
+ {
165
+ "anonymous": false,
166
+ "inputs": [
167
+ {
168
+ "indexed": true,
169
+ "internalType": "address",
170
+ "name": "pendingOwner",
171
+ "type": "address"
172
+ }
173
+ ],
174
+ "name": "OwnershipHandoverCanceled",
175
+ "type": "event"
176
+ },
177
+ {
178
+ "anonymous": false,
179
+ "inputs": [
180
+ {
181
+ "indexed": true,
182
+ "internalType": "address",
183
+ "name": "pendingOwner",
184
+ "type": "address"
185
+ }
186
+ ],
187
+ "name": "OwnershipHandoverRequested",
188
+ "type": "event"
189
+ },
190
+ {
191
+ "anonymous": false,
192
+ "inputs": [
193
+ {
194
+ "indexed": true,
195
+ "internalType": "address",
196
+ "name": "oldOwner",
197
+ "type": "address"
198
+ },
199
+ {
200
+ "indexed": true,
201
+ "internalType": "address",
202
+ "name": "newOwner",
203
+ "type": "address"
204
+ }
205
+ ],
206
+ "name": "OwnershipTransferred",
207
+ "type": "event"
208
+ },
209
+ {
210
+ "anonymous": false,
211
+ "inputs": [
212
+ {
213
+ "indexed": true,
214
+ "internalType": "address",
215
+ "name": "from",
216
+ "type": "address"
217
+ },
218
+ {
219
+ "indexed": true,
220
+ "internalType": "address",
221
+ "name": "to",
222
+ "type": "address"
223
+ },
224
+ {
225
+ "indexed": false,
226
+ "internalType": "uint256",
227
+ "name": "amount",
228
+ "type": "uint256"
229
+ }
230
+ ],
231
+ "name": "Transfer",
232
+ "type": "event"
233
+ },
234
+ {
235
+ "inputs": [],
236
+ "name": "DOMAIN_SEPARATOR",
237
+ "outputs": [
238
+ {
239
+ "internalType": "bytes32",
240
+ "name": "result",
241
+ "type": "bytes32"
242
+ }
243
+ ],
244
+ "stateMutability": "view",
245
+ "type": "function"
246
+ },
247
+ {
248
+ "inputs": [
249
+ {
250
+ "internalType": "address",
251
+ "name": "owner",
252
+ "type": "address"
253
+ },
254
+ {
255
+ "internalType": "address",
256
+ "name": "spender",
257
+ "type": "address"
258
+ }
259
+ ],
260
+ "name": "allowance",
261
+ "outputs": [
262
+ {
263
+ "internalType": "uint256",
264
+ "name": "result",
265
+ "type": "uint256"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [
273
+ {
274
+ "internalType": "address",
275
+ "name": "spender",
276
+ "type": "address"
277
+ },
278
+ {
279
+ "internalType": "uint256",
280
+ "name": "amount",
281
+ "type": "uint256"
282
+ }
283
+ ],
284
+ "name": "approve",
285
+ "outputs": [
286
+ {
287
+ "internalType": "bool",
288
+ "name": "",
289
+ "type": "bool"
290
+ }
291
+ ],
292
+ "stateMutability": "nonpayable",
293
+ "type": "function"
294
+ },
295
+ {
296
+ "inputs": [
297
+ {
298
+ "internalType": "address",
299
+ "name": "owner",
300
+ "type": "address"
301
+ }
302
+ ],
303
+ "name": "balanceOf",
304
+ "outputs": [
305
+ {
306
+ "internalType": "uint256",
307
+ "name": "result",
308
+ "type": "uint256"
309
+ }
310
+ ],
311
+ "stateMutability": "view",
312
+ "type": "function"
313
+ },
314
+ {
315
+ "inputs": [
316
+ {
317
+ "internalType": "uint256",
318
+ "name": "value",
319
+ "type": "uint256"
320
+ }
321
+ ],
322
+ "name": "burn",
323
+ "outputs": [],
324
+ "stateMutability": "nonpayable",
325
+ "type": "function"
326
+ },
327
+ {
328
+ "inputs": [],
329
+ "name": "cancelOwnershipHandover",
330
+ "outputs": [],
331
+ "stateMutability": "payable",
332
+ "type": "function"
333
+ },
334
+ {
335
+ "inputs": [
336
+ {
337
+ "internalType": "address",
338
+ "name": "pendingOwner",
339
+ "type": "address"
340
+ }
341
+ ],
342
+ "name": "completeOwnershipHandover",
343
+ "outputs": [],
344
+ "stateMutability": "payable",
345
+ "type": "function"
346
+ },
347
+ {
348
+ "inputs": [],
349
+ "name": "decimals",
350
+ "outputs": [
351
+ {
352
+ "internalType": "uint8",
353
+ "name": "",
354
+ "type": "uint8"
355
+ }
356
+ ],
357
+ "stateMutability": "view",
358
+ "type": "function"
359
+ },
360
+ {
361
+ "inputs": [],
362
+ "name": "disableInitializer",
363
+ "outputs": [],
364
+ "stateMutability": "nonpayable",
365
+ "type": "function"
366
+ },
367
+ {
368
+ "inputs": [
369
+ {
370
+ "components": [
371
+ {
372
+ "internalType": "address",
373
+ "name": "owner",
374
+ "type": "address"
375
+ }
376
+ ],
377
+ "internalType": "struct AuthInfo",
378
+ "name": "authInfo",
379
+ "type": "tuple"
380
+ },
381
+ {
382
+ "components": [
383
+ {
384
+ "internalType": "string",
385
+ "name": "name",
386
+ "type": "string"
387
+ },
388
+ {
389
+ "internalType": "string",
390
+ "name": "symbol",
391
+ "type": "string"
392
+ },
393
+ {
394
+ "internalType": "uint8",
395
+ "name": "decimals",
396
+ "type": "uint8"
397
+ }
398
+ ],
399
+ "internalType": "struct TokenInfo",
400
+ "name": "tokenInfo",
401
+ "type": "tuple"
402
+ },
403
+ {
404
+ "components": [
405
+ {
406
+ "internalType": "address",
407
+ "name": "mintTarget",
408
+ "type": "address"
409
+ },
410
+ {
411
+ "internalType": "uint256",
412
+ "name": "initialSupply",
413
+ "type": "uint256"
414
+ },
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "maxSupply",
418
+ "type": "uint256"
419
+ }
420
+ ],
421
+ "internalType": "struct SupplyInfo",
422
+ "name": "supplyInfo",
423
+ "type": "tuple"
424
+ }
425
+ ],
426
+ "name": "initialize",
427
+ "outputs": [],
428
+ "stateMutability": "nonpayable",
429
+ "type": "function"
430
+ },
431
+ {
432
+ "inputs": [],
433
+ "name": "maxSupply",
434
+ "outputs": [
435
+ {
436
+ "internalType": "uint256",
437
+ "name": "",
438
+ "type": "uint256"
439
+ }
440
+ ],
441
+ "stateMutability": "view",
442
+ "type": "function"
443
+ },
444
+ {
445
+ "inputs": [
446
+ {
447
+ "internalType": "address",
448
+ "name": "to",
449
+ "type": "address"
450
+ },
451
+ {
452
+ "internalType": "uint256",
453
+ "name": "amount",
454
+ "type": "uint256"
455
+ }
456
+ ],
457
+ "name": "mint",
458
+ "outputs": [],
459
+ "stateMutability": "nonpayable",
460
+ "type": "function"
461
+ },
462
+ {
463
+ "inputs": [],
464
+ "name": "name",
465
+ "outputs": [
466
+ {
467
+ "internalType": "string",
468
+ "name": "",
469
+ "type": "string"
470
+ }
471
+ ],
472
+ "stateMutability": "view",
473
+ "type": "function"
474
+ },
475
+ {
476
+ "inputs": [
477
+ {
478
+ "internalType": "address",
479
+ "name": "owner",
480
+ "type": "address"
481
+ }
482
+ ],
483
+ "name": "nonces",
484
+ "outputs": [
485
+ {
486
+ "internalType": "uint256",
487
+ "name": "result",
488
+ "type": "uint256"
489
+ }
490
+ ],
491
+ "stateMutability": "view",
492
+ "type": "function"
493
+ },
494
+ {
495
+ "inputs": [],
496
+ "name": "owner",
497
+ "outputs": [
498
+ {
499
+ "internalType": "address",
500
+ "name": "result",
501
+ "type": "address"
502
+ }
503
+ ],
504
+ "stateMutability": "view",
505
+ "type": "function"
506
+ },
507
+ {
508
+ "inputs": [
509
+ {
510
+ "internalType": "address",
511
+ "name": "pendingOwner",
512
+ "type": "address"
513
+ }
514
+ ],
515
+ "name": "ownershipHandoverExpiresAt",
516
+ "outputs": [
517
+ {
518
+ "internalType": "uint256",
519
+ "name": "result",
520
+ "type": "uint256"
521
+ }
522
+ ],
523
+ "stateMutability": "view",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [],
528
+ "name": "paused",
529
+ "outputs": [
530
+ {
531
+ "internalType": "bool",
532
+ "name": "",
533
+ "type": "bool"
534
+ }
535
+ ],
536
+ "stateMutability": "view",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [
541
+ {
542
+ "internalType": "address",
543
+ "name": "owner",
544
+ "type": "address"
545
+ },
546
+ {
547
+ "internalType": "address",
548
+ "name": "spender",
549
+ "type": "address"
550
+ },
551
+ {
552
+ "internalType": "uint256",
553
+ "name": "value",
554
+ "type": "uint256"
555
+ },
556
+ {
557
+ "internalType": "uint256",
558
+ "name": "deadline",
559
+ "type": "uint256"
560
+ },
561
+ {
562
+ "internalType": "uint8",
563
+ "name": "v",
564
+ "type": "uint8"
565
+ },
566
+ {
567
+ "internalType": "bytes32",
568
+ "name": "r",
569
+ "type": "bytes32"
570
+ },
571
+ {
572
+ "internalType": "bytes32",
573
+ "name": "s",
574
+ "type": "bytes32"
575
+ }
576
+ ],
577
+ "name": "permit",
578
+ "outputs": [],
579
+ "stateMutability": "nonpayable",
580
+ "type": "function"
581
+ },
582
+ {
583
+ "inputs": [],
584
+ "name": "renounceOwnership",
585
+ "outputs": [],
586
+ "stateMutability": "payable",
587
+ "type": "function"
588
+ },
589
+ {
590
+ "inputs": [],
591
+ "name": "requestOwnershipHandover",
592
+ "outputs": [],
593
+ "stateMutability": "payable",
594
+ "type": "function"
595
+ },
596
+ {
597
+ "inputs": [
598
+ {
599
+ "internalType": "bool",
600
+ "name": "_paused",
601
+ "type": "bool"
602
+ }
603
+ ],
604
+ "name": "setTransferPaused",
605
+ "outputs": [],
606
+ "stateMutability": "nonpayable",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [],
611
+ "name": "symbol",
612
+ "outputs": [
613
+ {
614
+ "internalType": "string",
615
+ "name": "",
616
+ "type": "string"
617
+ }
618
+ ],
619
+ "stateMutability": "view",
620
+ "type": "function"
621
+ },
622
+ {
623
+ "inputs": [],
624
+ "name": "totalSupply",
625
+ "outputs": [
626
+ {
627
+ "internalType": "uint256",
628
+ "name": "result",
629
+ "type": "uint256"
630
+ }
631
+ ],
632
+ "stateMutability": "view",
633
+ "type": "function"
634
+ },
635
+ {
636
+ "inputs": [
637
+ {
638
+ "internalType": "address",
639
+ "name": "to",
640
+ "type": "address"
641
+ },
642
+ {
643
+ "internalType": "uint256",
644
+ "name": "amount",
645
+ "type": "uint256"
646
+ }
647
+ ],
648
+ "name": "transfer",
649
+ "outputs": [
650
+ {
651
+ "internalType": "bool",
652
+ "name": "",
653
+ "type": "bool"
654
+ }
655
+ ],
656
+ "stateMutability": "nonpayable",
657
+ "type": "function"
658
+ },
659
+ {
660
+ "inputs": [
661
+ {
662
+ "internalType": "address",
663
+ "name": "from",
664
+ "type": "address"
665
+ },
666
+ {
667
+ "internalType": "address",
668
+ "name": "to",
669
+ "type": "address"
670
+ },
671
+ {
672
+ "internalType": "uint256",
673
+ "name": "amount",
674
+ "type": "uint256"
675
+ }
676
+ ],
677
+ "name": "transferFrom",
678
+ "outputs": [
679
+ {
680
+ "internalType": "bool",
681
+ "name": "",
682
+ "type": "bool"
683
+ }
684
+ ],
685
+ "stateMutability": "nonpayable",
686
+ "type": "function"
687
+ },
688
+ {
689
+ "inputs": [
690
+ {
691
+ "internalType": "address",
692
+ "name": "newOwner",
693
+ "type": "address"
694
+ }
695
+ ],
696
+ "name": "transferOwnership",
697
+ "outputs": [],
698
+ "stateMutability": "payable",
699
+ "type": "function"
700
+ }
701
+ ] as const satisfies Abi;
702
+
703
+ /**
704
+ * Type-safe ABI for UltimateTokenOwnable_json
705
+ */
706
+ export type UltimateTokenOwnable_jsonAbi = typeof UltimateTokenOwnable_jsonAbi;
707
+
708
+ /**
709
+ * Contract instance type for UltimateTokenOwnable_json
710
+ */
711
+ // Use any for contract type to avoid complex viem type issues
712
+ // The runtime behavior is type-safe through viem's ABI typing
713
+ export type UltimateTokenOwnable_jsonContract = any;
714
+
715
+ /**
716
+ * UltimateTokenOwnable_json Contract Class
717
+ *
718
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
719
+ *
720
+ * @example
721
+ * ```typescript
722
+ * import { createPublicClient, createWalletClient, http } from 'viem';
723
+ * import { mainnet } from 'viem/chains';
724
+ * import { UltimateTokenOwnable_json } from 'UltimateTokenOwnable_json';
725
+ *
726
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
727
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
728
+ *
729
+ * const contract = new UltimateTokenOwnable_json('0x...', { publicClient, walletClient });
730
+ *
731
+ * // Read functions
732
+ * const result = await contract.balanceOf('0x...');
733
+ *
734
+ * // Write functions
735
+ * const hash = await contract.transfer('0x...', 1000n);
736
+ *
737
+ * // Simulate transactions (dry-run)
738
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
739
+ * console.log('Gas estimate:', simulation.request.gas);
740
+ *
741
+ * // Watch events
742
+ * const unwatch = contract.watch.Transfer((event) => {
743
+ * console.log('Transfer event:', event);
744
+ * });
745
+ * ```
746
+ */
747
+ export class UltimateTokenOwnable_json {
748
+ private contract: UltimateTokenOwnable_jsonContract;
749
+ private contractAddress: Address;
750
+ private publicClient: PublicClient;
751
+
752
+ constructor(
753
+ address: Address,
754
+ clients: {
755
+ publicClient: PublicClient;
756
+ walletClient?: WalletClient;
757
+ }
758
+ ) {
759
+ this.contractAddress = address;
760
+ this.publicClient = clients.publicClient;
761
+ this.contract = getContract({
762
+ address,
763
+ abi: UltimateTokenOwnable_jsonAbi,
764
+ client: {
765
+ public: clients.publicClient,
766
+ wallet: clients.walletClient,
767
+ },
768
+ });
769
+ }
770
+
771
+ /**
772
+ * Get the contract address
773
+ */
774
+ get address(): Address {
775
+ return this.contractAddress;
776
+ }
777
+
778
+ /**
779
+ * Get the underlying viem contract instance
780
+ */
781
+ getContract(): UltimateTokenOwnable_jsonContract {
782
+ return this.contract;
783
+ }
784
+
785
+ /**
786
+ * DOMAIN_SEPARATOR
787
+ * view
788
+ */
789
+ async DOMAIN_SEPARATOR(): Promise<`0x${string}`> {
790
+ return this.contract.read.DOMAIN_SEPARATOR() as Promise<`0x${string}`>;
791
+ }
792
+
793
+ /**
794
+ * allowance
795
+ * view
796
+ */
797
+ async allowance(owner: `0x${string}`, spender: `0x${string}`): Promise<bigint> {
798
+ return this.contract.read.allowance([owner, spender] as const) as Promise<bigint>;
799
+ }
800
+
801
+ /**
802
+ * balanceOf
803
+ * view
804
+ */
805
+ async balanceOf(owner: `0x${string}`): Promise<bigint> {
806
+ return this.contract.read.balanceOf([owner] as const) as Promise<bigint>;
807
+ }
808
+
809
+ /**
810
+ * decimals
811
+ * view
812
+ */
813
+ async decimals(): Promise<bigint> {
814
+ return this.contract.read.decimals() as Promise<bigint>;
815
+ }
816
+
817
+ /**
818
+ * maxSupply
819
+ * view
820
+ */
821
+ async maxSupply(): Promise<bigint> {
822
+ return this.contract.read.maxSupply() as Promise<bigint>;
823
+ }
824
+
825
+ /**
826
+ * name
827
+ * view
828
+ */
829
+ async name(): Promise<string> {
830
+ return this.contract.read.name() as Promise<string>;
831
+ }
832
+
833
+ /**
834
+ * nonces
835
+ * view
836
+ */
837
+ async nonces(owner: `0x${string}`): Promise<bigint> {
838
+ return this.contract.read.nonces([owner] as const) as Promise<bigint>;
839
+ }
840
+
841
+ /**
842
+ * owner
843
+ * view
844
+ */
845
+ async owner(): Promise<`0x${string}`> {
846
+ return this.contract.read.owner() as Promise<`0x${string}`>;
847
+ }
848
+
849
+ /**
850
+ * ownershipHandoverExpiresAt
851
+ * view
852
+ */
853
+ async ownershipHandoverExpiresAt(pendingOwner: `0x${string}`): Promise<bigint> {
854
+ return this.contract.read.ownershipHandoverExpiresAt([pendingOwner] as const) as Promise<bigint>;
855
+ }
856
+
857
+ /**
858
+ * paused
859
+ * view
860
+ */
861
+ async paused(): Promise<boolean> {
862
+ return this.contract.read.paused() as Promise<boolean>;
863
+ }
864
+
865
+ /**
866
+ * symbol
867
+ * view
868
+ */
869
+ async symbol(): Promise<string> {
870
+ return this.contract.read.symbol() as Promise<string>;
871
+ }
872
+
873
+ /**
874
+ * totalSupply
875
+ * view
876
+ */
877
+ async totalSupply(): Promise<bigint> {
878
+ return this.contract.read.totalSupply() as Promise<bigint>;
879
+ }
880
+
881
+ /**
882
+ * approve
883
+ * nonpayable
884
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
885
+ */
886
+ async approve(spender: `0x${string}`, amount: bigint, options?: {
887
+ accessList?: import('viem').AccessList;
888
+ authorizationList?: import('viem').AuthorizationList;
889
+ chain?: import('viem').Chain | null;
890
+ dataSuffix?: `0x${string}`;
891
+ gas?: bigint;
892
+ gasPrice?: bigint;
893
+ maxFeePerGas?: bigint;
894
+ maxPriorityFeePerGas?: bigint;
895
+ nonce?: number;
896
+ value?: bigint;
897
+ }): Promise<`0x${string}`> {
898
+ if (!this.contract.write) {
899
+ throw new Error('Wallet client is required for write operations');
900
+ }
901
+ return this.contract.write.approve([spender, amount] as const, options) as Promise<`0x${string}`>;
902
+ }
903
+
904
+ /**
905
+ * burn
906
+ * nonpayable
907
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
908
+ */
909
+ async burn(value: bigint, options?: {
910
+ accessList?: import('viem').AccessList;
911
+ authorizationList?: import('viem').AuthorizationList;
912
+ chain?: import('viem').Chain | null;
913
+ dataSuffix?: `0x${string}`;
914
+ gas?: bigint;
915
+ gasPrice?: bigint;
916
+ maxFeePerGas?: bigint;
917
+ maxPriorityFeePerGas?: bigint;
918
+ nonce?: number;
919
+ value?: bigint;
920
+ }): Promise<`0x${string}`> {
921
+ if (!this.contract.write) {
922
+ throw new Error('Wallet client is required for write operations');
923
+ }
924
+ return this.contract.write.burn([value] as const, options) as Promise<`0x${string}`>;
925
+ }
926
+
927
+ /**
928
+ * cancelOwnershipHandover
929
+ * payable
930
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
931
+ */
932
+ async cancelOwnershipHandover(options?: {
933
+ accessList?: import('viem').AccessList;
934
+ authorizationList?: import('viem').AuthorizationList;
935
+ chain?: import('viem').Chain | null;
936
+ dataSuffix?: `0x${string}`;
937
+ gas?: bigint;
938
+ gasPrice?: bigint;
939
+ maxFeePerGas?: bigint;
940
+ maxPriorityFeePerGas?: bigint;
941
+ nonce?: number;
942
+ value?: bigint;
943
+ }): Promise<`0x${string}`> {
944
+ if (!this.contract.write) {
945
+ throw new Error('Wallet client is required for write operations');
946
+ }
947
+ return this.contract.write.cancelOwnershipHandover(options) as Promise<`0x${string}`>;
948
+ }
949
+
950
+ /**
951
+ * completeOwnershipHandover
952
+ * payable
953
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
954
+ */
955
+ async completeOwnershipHandover(pendingOwner: `0x${string}`, options?: {
956
+ accessList?: import('viem').AccessList;
957
+ authorizationList?: import('viem').AuthorizationList;
958
+ chain?: import('viem').Chain | null;
959
+ dataSuffix?: `0x${string}`;
960
+ gas?: bigint;
961
+ gasPrice?: bigint;
962
+ maxFeePerGas?: bigint;
963
+ maxPriorityFeePerGas?: bigint;
964
+ nonce?: number;
965
+ value?: bigint;
966
+ }): Promise<`0x${string}`> {
967
+ if (!this.contract.write) {
968
+ throw new Error('Wallet client is required for write operations');
969
+ }
970
+ return this.contract.write.completeOwnershipHandover([pendingOwner] as const, options) as Promise<`0x${string}`>;
971
+ }
972
+
973
+ /**
974
+ * disableInitializer
975
+ * nonpayable
976
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
977
+ */
978
+ async disableInitializer(options?: {
979
+ accessList?: import('viem').AccessList;
980
+ authorizationList?: import('viem').AuthorizationList;
981
+ chain?: import('viem').Chain | null;
982
+ dataSuffix?: `0x${string}`;
983
+ gas?: bigint;
984
+ gasPrice?: bigint;
985
+ maxFeePerGas?: bigint;
986
+ maxPriorityFeePerGas?: bigint;
987
+ nonce?: number;
988
+ value?: bigint;
989
+ }): Promise<`0x${string}`> {
990
+ if (!this.contract.write) {
991
+ throw new Error('Wallet client is required for write operations');
992
+ }
993
+ return this.contract.write.disableInitializer(options) as Promise<`0x${string}`>;
994
+ }
995
+
996
+ /**
997
+ * initialize
998
+ * nonpayable
999
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1000
+ */
1001
+ async initialize(authInfo: AuthInfo, tokenInfo: TokenInfo, supplyInfo: SupplyInfo, options?: {
1002
+ accessList?: import('viem').AccessList;
1003
+ authorizationList?: import('viem').AuthorizationList;
1004
+ chain?: import('viem').Chain | null;
1005
+ dataSuffix?: `0x${string}`;
1006
+ gas?: bigint;
1007
+ gasPrice?: bigint;
1008
+ maxFeePerGas?: bigint;
1009
+ maxPriorityFeePerGas?: bigint;
1010
+ nonce?: number;
1011
+ value?: bigint;
1012
+ }): Promise<`0x${string}`> {
1013
+ if (!this.contract.write) {
1014
+ throw new Error('Wallet client is required for write operations');
1015
+ }
1016
+ return this.contract.write.initialize([authInfo, tokenInfo, supplyInfo] as const, options) as Promise<`0x${string}`>;
1017
+ }
1018
+
1019
+ /**
1020
+ * mint
1021
+ * nonpayable
1022
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1023
+ */
1024
+ async mint(to: `0x${string}`, amount: bigint, 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<`0x${string}`> {
1036
+ if (!this.contract.write) {
1037
+ throw new Error('Wallet client is required for write operations');
1038
+ }
1039
+ return this.contract.write.mint([to, amount] as const, options) as Promise<`0x${string}`>;
1040
+ }
1041
+
1042
+ /**
1043
+ * permit
1044
+ * nonpayable
1045
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1046
+ */
1047
+ async permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
1048
+ accessList?: import('viem').AccessList;
1049
+ authorizationList?: import('viem').AuthorizationList;
1050
+ chain?: import('viem').Chain | null;
1051
+ dataSuffix?: `0x${string}`;
1052
+ gas?: bigint;
1053
+ gasPrice?: bigint;
1054
+ maxFeePerGas?: bigint;
1055
+ maxPriorityFeePerGas?: bigint;
1056
+ nonce?: number;
1057
+ value?: bigint;
1058
+ }): Promise<`0x${string}`> {
1059
+ if (!this.contract.write) {
1060
+ throw new Error('Wallet client is required for write operations');
1061
+ }
1062
+ return this.contract.write.permit([owner, spender, value, deadline, v, r, s] as const, options) as Promise<`0x${string}`>;
1063
+ }
1064
+
1065
+ /**
1066
+ * renounceOwnership
1067
+ * payable
1068
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1069
+ */
1070
+ async renounceOwnership(options?: {
1071
+ accessList?: import('viem').AccessList;
1072
+ authorizationList?: import('viem').AuthorizationList;
1073
+ chain?: import('viem').Chain | null;
1074
+ dataSuffix?: `0x${string}`;
1075
+ gas?: bigint;
1076
+ gasPrice?: bigint;
1077
+ maxFeePerGas?: bigint;
1078
+ maxPriorityFeePerGas?: bigint;
1079
+ nonce?: number;
1080
+ value?: bigint;
1081
+ }): Promise<`0x${string}`> {
1082
+ if (!this.contract.write) {
1083
+ throw new Error('Wallet client is required for write operations');
1084
+ }
1085
+ return this.contract.write.renounceOwnership(options) as Promise<`0x${string}`>;
1086
+ }
1087
+
1088
+ /**
1089
+ * requestOwnershipHandover
1090
+ * payable
1091
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1092
+ */
1093
+ async requestOwnershipHandover(options?: {
1094
+ accessList?: import('viem').AccessList;
1095
+ authorizationList?: import('viem').AuthorizationList;
1096
+ chain?: import('viem').Chain | null;
1097
+ dataSuffix?: `0x${string}`;
1098
+ gas?: bigint;
1099
+ gasPrice?: bigint;
1100
+ maxFeePerGas?: bigint;
1101
+ maxPriorityFeePerGas?: bigint;
1102
+ nonce?: number;
1103
+ value?: bigint;
1104
+ }): Promise<`0x${string}`> {
1105
+ if (!this.contract.write) {
1106
+ throw new Error('Wallet client is required for write operations');
1107
+ }
1108
+ return this.contract.write.requestOwnershipHandover(options) as Promise<`0x${string}`>;
1109
+ }
1110
+
1111
+ /**
1112
+ * setTransferPaused
1113
+ * nonpayable
1114
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1115
+ */
1116
+ async setTransferPaused(_paused: boolean, 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<`0x${string}`> {
1128
+ if (!this.contract.write) {
1129
+ throw new Error('Wallet client is required for write operations');
1130
+ }
1131
+ return this.contract.write.setTransferPaused([_paused] as const, options) as Promise<`0x${string}`>;
1132
+ }
1133
+
1134
+ /**
1135
+ * transfer
1136
+ * nonpayable
1137
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1138
+ */
1139
+ async transfer(to: `0x${string}`, amount: bigint, options?: {
1140
+ accessList?: import('viem').AccessList;
1141
+ authorizationList?: import('viem').AuthorizationList;
1142
+ chain?: import('viem').Chain | null;
1143
+ dataSuffix?: `0x${string}`;
1144
+ gas?: bigint;
1145
+ gasPrice?: bigint;
1146
+ maxFeePerGas?: bigint;
1147
+ maxPriorityFeePerGas?: bigint;
1148
+ nonce?: number;
1149
+ value?: bigint;
1150
+ }): Promise<`0x${string}`> {
1151
+ if (!this.contract.write) {
1152
+ throw new Error('Wallet client is required for write operations');
1153
+ }
1154
+ return this.contract.write.transfer([to, amount] as const, options) as Promise<`0x${string}`>;
1155
+ }
1156
+
1157
+ /**
1158
+ * transferFrom
1159
+ * nonpayable
1160
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1161
+ */
1162
+ async transferFrom(from: `0x${string}`, to: `0x${string}`, amount: bigint, options?: {
1163
+ accessList?: import('viem').AccessList;
1164
+ authorizationList?: import('viem').AuthorizationList;
1165
+ chain?: import('viem').Chain | null;
1166
+ dataSuffix?: `0x${string}`;
1167
+ gas?: bigint;
1168
+ gasPrice?: bigint;
1169
+ maxFeePerGas?: bigint;
1170
+ maxPriorityFeePerGas?: bigint;
1171
+ nonce?: number;
1172
+ value?: bigint;
1173
+ }): Promise<`0x${string}`> {
1174
+ if (!this.contract.write) {
1175
+ throw new Error('Wallet client is required for write operations');
1176
+ }
1177
+ return this.contract.write.transferFrom([from, to, amount] as const, options) as Promise<`0x${string}`>;
1178
+ }
1179
+
1180
+ /**
1181
+ * transferOwnership
1182
+ * payable
1183
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1184
+ */
1185
+ async transferOwnership(newOwner: `0x${string}`, options?: {
1186
+ accessList?: import('viem').AccessList;
1187
+ authorizationList?: import('viem').AuthorizationList;
1188
+ chain?: import('viem').Chain | null;
1189
+ dataSuffix?: `0x${string}`;
1190
+ gas?: bigint;
1191
+ gasPrice?: bigint;
1192
+ maxFeePerGas?: bigint;
1193
+ maxPriorityFeePerGas?: bigint;
1194
+ nonce?: number;
1195
+ value?: bigint;
1196
+ }): Promise<`0x${string}`> {
1197
+ if (!this.contract.write) {
1198
+ throw new Error('Wallet client is required for write operations');
1199
+ }
1200
+ return this.contract.write.transferOwnership([newOwner] as const, options) as Promise<`0x${string}`>;
1201
+ }
1202
+
1203
+
1204
+
1205
+ /**
1206
+ * Simulate contract write operations (dry-run without sending transaction)
1207
+ *
1208
+ * @example
1209
+ * const result = await contract.simulate.transfer('0x...', 1000n);
1210
+ * console.log('Gas estimate:', result.request.gas);
1211
+ * console.log('Would succeed:', result.result);
1212
+ */
1213
+ get simulate() {
1214
+ const contract = this.contract;
1215
+ if (!contract.simulate) {
1216
+ throw new Error('Public client is required for simulation');
1217
+ }
1218
+ return {
1219
+ /**
1220
+ * Simulate approve
1221
+ * Returns gas estimate and result without sending transaction
1222
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1223
+ */
1224
+ async approve(spender: `0x${string}`, amount: bigint, options?: {
1225
+ accessList?: import('viem').AccessList;
1226
+ authorizationList?: import('viem').AuthorizationList;
1227
+ chain?: import('viem').Chain | null;
1228
+ dataSuffix?: `0x${string}`;
1229
+ gas?: bigint;
1230
+ gasPrice?: bigint;
1231
+ maxFeePerGas?: bigint;
1232
+ maxPriorityFeePerGas?: bigint;
1233
+ nonce?: number;
1234
+ value?: bigint;
1235
+ }): Promise<boolean> {
1236
+ return contract.simulate.approve([spender, amount] as const, options) as Promise<boolean>;
1237
+ },
1238
+ /**
1239
+ * Simulate burn
1240
+ * Returns gas estimate and result without sending transaction
1241
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1242
+ */
1243
+ async burn(value: bigint, options?: {
1244
+ accessList?: import('viem').AccessList;
1245
+ authorizationList?: import('viem').AuthorizationList;
1246
+ chain?: import('viem').Chain | null;
1247
+ dataSuffix?: `0x${string}`;
1248
+ gas?: bigint;
1249
+ gasPrice?: bigint;
1250
+ maxFeePerGas?: bigint;
1251
+ maxPriorityFeePerGas?: bigint;
1252
+ nonce?: number;
1253
+ value?: bigint;
1254
+ }): Promise<void> {
1255
+ return contract.simulate.burn([value] as const, options) as Promise<void>;
1256
+ },
1257
+ /**
1258
+ * Simulate cancelOwnershipHandover
1259
+ * Returns gas estimate and result without sending transaction
1260
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1261
+ */
1262
+ async cancelOwnershipHandover(options?: {
1263
+ accessList?: import('viem').AccessList;
1264
+ authorizationList?: import('viem').AuthorizationList;
1265
+ chain?: import('viem').Chain | null;
1266
+ dataSuffix?: `0x${string}`;
1267
+ gas?: bigint;
1268
+ gasPrice?: bigint;
1269
+ maxFeePerGas?: bigint;
1270
+ maxPriorityFeePerGas?: bigint;
1271
+ nonce?: number;
1272
+ value?: bigint;
1273
+ }): Promise<void> {
1274
+ return contract.simulate.cancelOwnershipHandover(options) as Promise<void>;
1275
+ },
1276
+ /**
1277
+ * Simulate completeOwnershipHandover
1278
+ * Returns gas estimate and result without sending transaction
1279
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1280
+ */
1281
+ async completeOwnershipHandover(pendingOwner: `0x${string}`, options?: {
1282
+ accessList?: import('viem').AccessList;
1283
+ authorizationList?: import('viem').AuthorizationList;
1284
+ chain?: import('viem').Chain | null;
1285
+ dataSuffix?: `0x${string}`;
1286
+ gas?: bigint;
1287
+ gasPrice?: bigint;
1288
+ maxFeePerGas?: bigint;
1289
+ maxPriorityFeePerGas?: bigint;
1290
+ nonce?: number;
1291
+ value?: bigint;
1292
+ }): Promise<void> {
1293
+ return contract.simulate.completeOwnershipHandover([pendingOwner] as const, options) as Promise<void>;
1294
+ },
1295
+ /**
1296
+ * Simulate disableInitializer
1297
+ * Returns gas estimate and result without sending transaction
1298
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1299
+ */
1300
+ async disableInitializer(options?: {
1301
+ accessList?: import('viem').AccessList;
1302
+ authorizationList?: import('viem').AuthorizationList;
1303
+ chain?: import('viem').Chain | null;
1304
+ dataSuffix?: `0x${string}`;
1305
+ gas?: bigint;
1306
+ gasPrice?: bigint;
1307
+ maxFeePerGas?: bigint;
1308
+ maxPriorityFeePerGas?: bigint;
1309
+ nonce?: number;
1310
+ value?: bigint;
1311
+ }): Promise<void> {
1312
+ return contract.simulate.disableInitializer(options) as Promise<void>;
1313
+ },
1314
+ /**
1315
+ * Simulate initialize
1316
+ * Returns gas estimate and result without sending transaction
1317
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1318
+ */
1319
+ async initialize(authInfo: AuthInfo, tokenInfo: TokenInfo, supplyInfo: SupplyInfo, options?: {
1320
+ accessList?: import('viem').AccessList;
1321
+ authorizationList?: import('viem').AuthorizationList;
1322
+ chain?: import('viem').Chain | null;
1323
+ dataSuffix?: `0x${string}`;
1324
+ gas?: bigint;
1325
+ gasPrice?: bigint;
1326
+ maxFeePerGas?: bigint;
1327
+ maxPriorityFeePerGas?: bigint;
1328
+ nonce?: number;
1329
+ value?: bigint;
1330
+ }): Promise<void> {
1331
+ return contract.simulate.initialize([authInfo, tokenInfo, supplyInfo] as const, options) as Promise<void>;
1332
+ },
1333
+ /**
1334
+ * Simulate mint
1335
+ * Returns gas estimate and result without sending transaction
1336
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1337
+ */
1338
+ async mint(to: `0x${string}`, amount: bigint, options?: {
1339
+ accessList?: import('viem').AccessList;
1340
+ authorizationList?: import('viem').AuthorizationList;
1341
+ chain?: import('viem').Chain | null;
1342
+ dataSuffix?: `0x${string}`;
1343
+ gas?: bigint;
1344
+ gasPrice?: bigint;
1345
+ maxFeePerGas?: bigint;
1346
+ maxPriorityFeePerGas?: bigint;
1347
+ nonce?: number;
1348
+ value?: bigint;
1349
+ }): Promise<void> {
1350
+ return contract.simulate.mint([to, amount] as const, options) as Promise<void>;
1351
+ },
1352
+ /**
1353
+ * Simulate permit
1354
+ * Returns gas estimate and result without sending transaction
1355
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1356
+ */
1357
+ async permit(owner: `0x${string}`, spender: `0x${string}`, value: bigint, deadline: bigint, v: bigint, r: `0x${string}`, s: `0x${string}`, options?: {
1358
+ accessList?: import('viem').AccessList;
1359
+ authorizationList?: import('viem').AuthorizationList;
1360
+ chain?: import('viem').Chain | null;
1361
+ dataSuffix?: `0x${string}`;
1362
+ gas?: bigint;
1363
+ gasPrice?: bigint;
1364
+ maxFeePerGas?: bigint;
1365
+ maxPriorityFeePerGas?: bigint;
1366
+ nonce?: number;
1367
+ value?: bigint;
1368
+ }): Promise<void> {
1369
+ return contract.simulate.permit([owner, spender, value, deadline, v, r, s] as const, options) as Promise<void>;
1370
+ },
1371
+ /**
1372
+ * Simulate renounceOwnership
1373
+ * Returns gas estimate and result without sending transaction
1374
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1375
+ */
1376
+ async renounceOwnership(options?: {
1377
+ accessList?: import('viem').AccessList;
1378
+ authorizationList?: import('viem').AuthorizationList;
1379
+ chain?: import('viem').Chain | null;
1380
+ dataSuffix?: `0x${string}`;
1381
+ gas?: bigint;
1382
+ gasPrice?: bigint;
1383
+ maxFeePerGas?: bigint;
1384
+ maxPriorityFeePerGas?: bigint;
1385
+ nonce?: number;
1386
+ value?: bigint;
1387
+ }): Promise<void> {
1388
+ return contract.simulate.renounceOwnership(options) as Promise<void>;
1389
+ },
1390
+ /**
1391
+ * Simulate requestOwnershipHandover
1392
+ * Returns gas estimate and result without sending transaction
1393
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1394
+ */
1395
+ async requestOwnershipHandover(options?: {
1396
+ accessList?: import('viem').AccessList;
1397
+ authorizationList?: import('viem').AuthorizationList;
1398
+ chain?: import('viem').Chain | null;
1399
+ dataSuffix?: `0x${string}`;
1400
+ gas?: bigint;
1401
+ gasPrice?: bigint;
1402
+ maxFeePerGas?: bigint;
1403
+ maxPriorityFeePerGas?: bigint;
1404
+ nonce?: number;
1405
+ value?: bigint;
1406
+ }): Promise<void> {
1407
+ return contract.simulate.requestOwnershipHandover(options) as Promise<void>;
1408
+ },
1409
+ /**
1410
+ * Simulate setTransferPaused
1411
+ * Returns gas estimate and result without sending transaction
1412
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1413
+ */
1414
+ async setTransferPaused(_paused: boolean, options?: {
1415
+ accessList?: import('viem').AccessList;
1416
+ authorizationList?: import('viem').AuthorizationList;
1417
+ chain?: import('viem').Chain | null;
1418
+ dataSuffix?: `0x${string}`;
1419
+ gas?: bigint;
1420
+ gasPrice?: bigint;
1421
+ maxFeePerGas?: bigint;
1422
+ maxPriorityFeePerGas?: bigint;
1423
+ nonce?: number;
1424
+ value?: bigint;
1425
+ }): Promise<void> {
1426
+ return contract.simulate.setTransferPaused([_paused] as const, options) as Promise<void>;
1427
+ },
1428
+ /**
1429
+ * Simulate transfer
1430
+ * Returns gas estimate and result without sending transaction
1431
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1432
+ */
1433
+ async transfer(to: `0x${string}`, amount: bigint, options?: {
1434
+ accessList?: import('viem').AccessList;
1435
+ authorizationList?: import('viem').AuthorizationList;
1436
+ chain?: import('viem').Chain | null;
1437
+ dataSuffix?: `0x${string}`;
1438
+ gas?: bigint;
1439
+ gasPrice?: bigint;
1440
+ maxFeePerGas?: bigint;
1441
+ maxPriorityFeePerGas?: bigint;
1442
+ nonce?: number;
1443
+ value?: bigint;
1444
+ }): Promise<boolean> {
1445
+ return contract.simulate.transfer([to, amount] as const, options) as Promise<boolean>;
1446
+ },
1447
+ /**
1448
+ * Simulate transferFrom
1449
+ * Returns gas estimate and result without sending transaction
1450
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1451
+ */
1452
+ async transferFrom(from: `0x${string}`, to: `0x${string}`, amount: bigint, options?: {
1453
+ accessList?: import('viem').AccessList;
1454
+ authorizationList?: import('viem').AuthorizationList;
1455
+ chain?: import('viem').Chain | null;
1456
+ dataSuffix?: `0x${string}`;
1457
+ gas?: bigint;
1458
+ gasPrice?: bigint;
1459
+ maxFeePerGas?: bigint;
1460
+ maxPriorityFeePerGas?: bigint;
1461
+ nonce?: number;
1462
+ value?: bigint;
1463
+ }): Promise<boolean> {
1464
+ return contract.simulate.transferFrom([from, to, amount] as const, options) as Promise<boolean>;
1465
+ },
1466
+ /**
1467
+ * Simulate transferOwnership
1468
+ * Returns gas estimate and result without sending transaction
1469
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
1470
+ */
1471
+ async transferOwnership(newOwner: `0x${string}`, options?: {
1472
+ accessList?: import('viem').AccessList;
1473
+ authorizationList?: import('viem').AuthorizationList;
1474
+ chain?: import('viem').Chain | null;
1475
+ dataSuffix?: `0x${string}`;
1476
+ gas?: bigint;
1477
+ gasPrice?: bigint;
1478
+ maxFeePerGas?: bigint;
1479
+ maxPriorityFeePerGas?: bigint;
1480
+ nonce?: number;
1481
+ value?: bigint;
1482
+ }): Promise<void> {
1483
+ return contract.simulate.transferOwnership([newOwner] as const, options) as Promise<void>;
1484
+ }
1485
+ };
1486
+ }
1487
+
1488
+ /**
1489
+ * Watch contract events
1490
+ *
1491
+ * @example
1492
+ * // Watch all Transfer events
1493
+ * const unwatch = contract.watch.Transfer((event) => {
1494
+ * console.log('Transfer:', event);
1495
+ * });
1496
+ *
1497
+ * // Stop watching
1498
+ * unwatch();
1499
+ */
1500
+ get watch() {
1501
+ return {
1502
+ /**
1503
+ * Watch Approval events
1504
+ * @param callback Function to call when event is emitted
1505
+ * @param filter Optional filter for indexed parameters
1506
+ * @returns Unwatch function to stop listening
1507
+ */
1508
+ Approval: (callback: (event: { owner: `0x${string}`; spender: `0x${string}`; amount: bigint }) => void, filter?: { owner: `0x${string}`; spender: `0x${string}` }) => {
1509
+ return this.publicClient.watchContractEvent({
1510
+ address: this.contractAddress,
1511
+ abi: UltimateTokenOwnable_jsonAbi,
1512
+ eventName: 'Approval',
1513
+ args: filter,
1514
+ onLogs: (logs: any[]) => {
1515
+ logs.forEach((log: any) => {
1516
+ callback(log.args as any);
1517
+ });
1518
+ },
1519
+ }) as () => void;
1520
+ },
1521
+ /**
1522
+ * Watch Initialized events
1523
+ * @param callback Function to call when event is emitted
1524
+ * @param filter Optional filter for indexed parameters
1525
+ * @returns Unwatch function to stop listening
1526
+ */
1527
+ Initialized: (callback: (event: { version: bigint }) => void) => {
1528
+ return this.publicClient.watchContractEvent({
1529
+ address: this.contractAddress,
1530
+ abi: UltimateTokenOwnable_jsonAbi,
1531
+ eventName: 'Initialized',
1532
+
1533
+ onLogs: (logs: any[]) => {
1534
+ logs.forEach((log: any) => {
1535
+ callback(log.args as any);
1536
+ });
1537
+ },
1538
+ }) as () => void;
1539
+ },
1540
+ /**
1541
+ * Watch OwnershipHandoverCanceled events
1542
+ * @param callback Function to call when event is emitted
1543
+ * @param filter Optional filter for indexed parameters
1544
+ * @returns Unwatch function to stop listening
1545
+ */
1546
+ OwnershipHandoverCanceled: (callback: (event: { pendingOwner: `0x${string}` }) => void, filter?: { pendingOwner: `0x${string}` }) => {
1547
+ return this.publicClient.watchContractEvent({
1548
+ address: this.contractAddress,
1549
+ abi: UltimateTokenOwnable_jsonAbi,
1550
+ eventName: 'OwnershipHandoverCanceled',
1551
+ args: filter,
1552
+ onLogs: (logs: any[]) => {
1553
+ logs.forEach((log: any) => {
1554
+ callback(log.args as any);
1555
+ });
1556
+ },
1557
+ }) as () => void;
1558
+ },
1559
+ /**
1560
+ * Watch OwnershipHandoverRequested events
1561
+ * @param callback Function to call when event is emitted
1562
+ * @param filter Optional filter for indexed parameters
1563
+ * @returns Unwatch function to stop listening
1564
+ */
1565
+ OwnershipHandoverRequested: (callback: (event: { pendingOwner: `0x${string}` }) => void, filter?: { pendingOwner: `0x${string}` }) => {
1566
+ return this.publicClient.watchContractEvent({
1567
+ address: this.contractAddress,
1568
+ abi: UltimateTokenOwnable_jsonAbi,
1569
+ eventName: 'OwnershipHandoverRequested',
1570
+ args: filter,
1571
+ onLogs: (logs: any[]) => {
1572
+ logs.forEach((log: any) => {
1573
+ callback(log.args as any);
1574
+ });
1575
+ },
1576
+ }) as () => void;
1577
+ },
1578
+ /**
1579
+ * Watch OwnershipTransferred events
1580
+ * @param callback Function to call when event is emitted
1581
+ * @param filter Optional filter for indexed parameters
1582
+ * @returns Unwatch function to stop listening
1583
+ */
1584
+ OwnershipTransferred: (callback: (event: { oldOwner: `0x${string}`; newOwner: `0x${string}` }) => void, filter?: { oldOwner: `0x${string}`; newOwner: `0x${string}` }) => {
1585
+ return this.publicClient.watchContractEvent({
1586
+ address: this.contractAddress,
1587
+ abi: UltimateTokenOwnable_jsonAbi,
1588
+ eventName: 'OwnershipTransferred',
1589
+ args: filter,
1590
+ onLogs: (logs: any[]) => {
1591
+ logs.forEach((log: any) => {
1592
+ callback(log.args as any);
1593
+ });
1594
+ },
1595
+ }) as () => void;
1596
+ },
1597
+ /**
1598
+ * Watch Transfer events
1599
+ * @param callback Function to call when event is emitted
1600
+ * @param filter Optional filter for indexed parameters
1601
+ * @returns Unwatch function to stop listening
1602
+ */
1603
+ Transfer: (callback: (event: { from: `0x${string}`; to: `0x${string}`; amount: bigint }) => void, filter?: { from: `0x${string}`; to: `0x${string}` }) => {
1604
+ return this.publicClient.watchContractEvent({
1605
+ address: this.contractAddress,
1606
+ abi: UltimateTokenOwnable_jsonAbi,
1607
+ eventName: 'Transfer',
1608
+ args: filter,
1609
+ onLogs: (logs: any[]) => {
1610
+ logs.forEach((log: any) => {
1611
+ callback(log.args as any);
1612
+ });
1613
+ },
1614
+ }) as () => void;
1615
+ }
1616
+ };
1617
+ }
1618
+ }