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