@gitmyabi-stg/merl 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,835 @@
1
+ import type { Address, PublicClient, WalletClient } from 'viem';
2
+ /**
3
+ * MintableERC20 ABI
4
+ *
5
+ * This ABI is typed using viem's type system for full type safety.
6
+ */
7
+ export declare const MintableERC20Abi: readonly [{
8
+ readonly inputs: readonly [{
9
+ readonly internalType: "address";
10
+ readonly name: "minter_";
11
+ readonly type: "address";
12
+ }, {
13
+ readonly internalType: "address";
14
+ readonly name: "vault_";
15
+ readonly type: "address";
16
+ }, {
17
+ readonly internalType: "string";
18
+ readonly name: "name";
19
+ readonly type: "string";
20
+ }, {
21
+ readonly internalType: "string";
22
+ readonly name: "symbol";
23
+ readonly type: "string";
24
+ }, {
25
+ readonly internalType: "uint8";
26
+ readonly name: "decimals_";
27
+ readonly type: "uint8";
28
+ }];
29
+ readonly stateMutability: "nonpayable";
30
+ readonly type: "constructor";
31
+ }, {
32
+ readonly inputs: readonly [{
33
+ readonly internalType: "address";
34
+ readonly name: "spender";
35
+ readonly type: "address";
36
+ }, {
37
+ readonly internalType: "uint256";
38
+ readonly name: "allowance";
39
+ readonly type: "uint256";
40
+ }, {
41
+ readonly internalType: "uint256";
42
+ readonly name: "needed";
43
+ readonly type: "uint256";
44
+ }];
45
+ readonly name: "ERC20InsufficientAllowance";
46
+ readonly type: "error";
47
+ }, {
48
+ readonly inputs: readonly [{
49
+ readonly internalType: "address";
50
+ readonly name: "sender";
51
+ readonly type: "address";
52
+ }, {
53
+ readonly internalType: "uint256";
54
+ readonly name: "balance";
55
+ readonly type: "uint256";
56
+ }, {
57
+ readonly internalType: "uint256";
58
+ readonly name: "needed";
59
+ readonly type: "uint256";
60
+ }];
61
+ readonly name: "ERC20InsufficientBalance";
62
+ readonly type: "error";
63
+ }, {
64
+ readonly inputs: readonly [{
65
+ readonly internalType: "address";
66
+ readonly name: "approver";
67
+ readonly type: "address";
68
+ }];
69
+ readonly name: "ERC20InvalidApprover";
70
+ readonly type: "error";
71
+ }, {
72
+ readonly inputs: readonly [{
73
+ readonly internalType: "address";
74
+ readonly name: "receiver";
75
+ readonly type: "address";
76
+ }];
77
+ readonly name: "ERC20InvalidReceiver";
78
+ readonly type: "error";
79
+ }, {
80
+ readonly inputs: readonly [{
81
+ readonly internalType: "address";
82
+ readonly name: "sender";
83
+ readonly type: "address";
84
+ }];
85
+ readonly name: "ERC20InvalidSender";
86
+ readonly type: "error";
87
+ }, {
88
+ readonly inputs: readonly [{
89
+ readonly internalType: "address";
90
+ readonly name: "spender";
91
+ readonly type: "address";
92
+ }];
93
+ readonly name: "ERC20InvalidSpender";
94
+ readonly type: "error";
95
+ }, {
96
+ readonly anonymous: false;
97
+ readonly inputs: readonly [{
98
+ readonly indexed: true;
99
+ readonly internalType: "address";
100
+ readonly name: "owner";
101
+ readonly type: "address";
102
+ }, {
103
+ readonly indexed: true;
104
+ readonly internalType: "address";
105
+ readonly name: "spender";
106
+ readonly type: "address";
107
+ }, {
108
+ readonly indexed: false;
109
+ readonly internalType: "uint256";
110
+ readonly name: "value";
111
+ readonly type: "uint256";
112
+ }];
113
+ readonly name: "Approval";
114
+ readonly type: "event";
115
+ }, {
116
+ readonly anonymous: false;
117
+ readonly inputs: readonly [{
118
+ readonly indexed: true;
119
+ readonly internalType: "address";
120
+ readonly name: "prevMinter";
121
+ readonly type: "address";
122
+ }, {
123
+ readonly indexed: true;
124
+ readonly internalType: "address";
125
+ readonly name: "newMinter";
126
+ readonly type: "address";
127
+ }];
128
+ readonly name: "MinterTransferred";
129
+ readonly type: "event";
130
+ }, {
131
+ readonly anonymous: false;
132
+ readonly inputs: readonly [{
133
+ readonly indexed: true;
134
+ readonly internalType: "address";
135
+ readonly name: "from";
136
+ readonly type: "address";
137
+ }, {
138
+ readonly indexed: true;
139
+ readonly internalType: "address";
140
+ readonly name: "to";
141
+ readonly type: "address";
142
+ }, {
143
+ readonly indexed: false;
144
+ readonly internalType: "uint256";
145
+ readonly name: "value";
146
+ readonly type: "uint256";
147
+ }];
148
+ readonly name: "Transfer";
149
+ readonly type: "event";
150
+ }, {
151
+ readonly anonymous: false;
152
+ readonly inputs: readonly [{
153
+ readonly indexed: true;
154
+ readonly internalType: "address";
155
+ readonly name: "prevVault";
156
+ readonly type: "address";
157
+ }, {
158
+ readonly indexed: true;
159
+ readonly internalType: "address";
160
+ readonly name: "newVault";
161
+ readonly type: "address";
162
+ }];
163
+ readonly name: "VaultTransferred";
164
+ readonly type: "event";
165
+ }, {
166
+ readonly inputs: readonly [{
167
+ readonly internalType: "address";
168
+ readonly name: "owner";
169
+ readonly type: "address";
170
+ }, {
171
+ readonly internalType: "address";
172
+ readonly name: "spender";
173
+ readonly type: "address";
174
+ }];
175
+ readonly name: "allowance";
176
+ readonly outputs: readonly [{
177
+ readonly internalType: "uint256";
178
+ readonly name: "";
179
+ readonly type: "uint256";
180
+ }];
181
+ readonly stateMutability: "view";
182
+ readonly type: "function";
183
+ }, {
184
+ readonly inputs: readonly [{
185
+ readonly internalType: "address";
186
+ readonly name: "spender";
187
+ readonly type: "address";
188
+ }, {
189
+ readonly internalType: "uint256";
190
+ readonly name: "value";
191
+ readonly type: "uint256";
192
+ }];
193
+ readonly name: "approve";
194
+ readonly outputs: readonly [{
195
+ readonly internalType: "bool";
196
+ readonly name: "";
197
+ readonly type: "bool";
198
+ }];
199
+ readonly stateMutability: "nonpayable";
200
+ readonly type: "function";
201
+ }, {
202
+ readonly inputs: readonly [{
203
+ readonly internalType: "address";
204
+ readonly name: "account";
205
+ readonly type: "address";
206
+ }];
207
+ readonly name: "balanceOf";
208
+ readonly outputs: readonly [{
209
+ readonly internalType: "uint256";
210
+ readonly name: "";
211
+ readonly type: "uint256";
212
+ }];
213
+ readonly stateMutability: "view";
214
+ readonly type: "function";
215
+ }, {
216
+ readonly inputs: readonly [{
217
+ readonly internalType: "address";
218
+ readonly name: "account";
219
+ readonly type: "address";
220
+ }, {
221
+ readonly internalType: "uint256";
222
+ readonly name: "amount";
223
+ readonly type: "uint256";
224
+ }];
225
+ readonly name: "burn";
226
+ readonly outputs: readonly [];
227
+ readonly stateMutability: "nonpayable";
228
+ readonly type: "function";
229
+ }, {
230
+ readonly inputs: readonly [];
231
+ readonly name: "decimals";
232
+ readonly outputs: readonly [{
233
+ readonly internalType: "uint8";
234
+ readonly name: "";
235
+ readonly type: "uint8";
236
+ }];
237
+ readonly stateMutability: "view";
238
+ readonly type: "function";
239
+ }, {
240
+ readonly inputs: readonly [{
241
+ readonly internalType: "address";
242
+ readonly name: "account";
243
+ readonly type: "address";
244
+ }, {
245
+ readonly internalType: "uint256";
246
+ readonly name: "amount";
247
+ readonly type: "uint256";
248
+ }];
249
+ readonly name: "mint";
250
+ readonly outputs: readonly [];
251
+ readonly stateMutability: "nonpayable";
252
+ readonly type: "function";
253
+ }, {
254
+ readonly inputs: readonly [];
255
+ readonly name: "mintQuota";
256
+ readonly outputs: readonly [{
257
+ readonly internalType: "uint256";
258
+ readonly name: "";
259
+ readonly type: "uint256";
260
+ }];
261
+ readonly stateMutability: "view";
262
+ readonly type: "function";
263
+ }, {
264
+ readonly inputs: readonly [];
265
+ readonly name: "minter";
266
+ readonly outputs: readonly [{
267
+ readonly internalType: "address";
268
+ readonly name: "";
269
+ readonly type: "address";
270
+ }];
271
+ readonly stateMutability: "view";
272
+ readonly type: "function";
273
+ }, {
274
+ readonly inputs: readonly [];
275
+ readonly name: "name";
276
+ readonly outputs: readonly [{
277
+ readonly internalType: "string";
278
+ readonly name: "";
279
+ readonly type: "string";
280
+ }];
281
+ readonly stateMutability: "view";
282
+ readonly type: "function";
283
+ }, {
284
+ readonly inputs: readonly [];
285
+ readonly name: "symbol";
286
+ readonly outputs: readonly [{
287
+ readonly internalType: "string";
288
+ readonly name: "";
289
+ readonly type: "string";
290
+ }];
291
+ readonly stateMutability: "view";
292
+ readonly type: "function";
293
+ }, {
294
+ readonly inputs: readonly [];
295
+ readonly name: "totalSupply";
296
+ readonly outputs: readonly [{
297
+ readonly internalType: "uint256";
298
+ readonly name: "";
299
+ readonly type: "uint256";
300
+ }];
301
+ readonly stateMutability: "view";
302
+ readonly type: "function";
303
+ }, {
304
+ readonly inputs: readonly [{
305
+ readonly internalType: "address";
306
+ readonly name: "to";
307
+ readonly type: "address";
308
+ }, {
309
+ readonly internalType: "uint256";
310
+ readonly name: "value";
311
+ readonly type: "uint256";
312
+ }];
313
+ readonly name: "transfer";
314
+ readonly outputs: readonly [{
315
+ readonly internalType: "bool";
316
+ readonly name: "";
317
+ readonly type: "bool";
318
+ }];
319
+ readonly stateMutability: "nonpayable";
320
+ readonly type: "function";
321
+ }, {
322
+ readonly inputs: readonly [{
323
+ readonly internalType: "address";
324
+ readonly name: "from";
325
+ readonly type: "address";
326
+ }, {
327
+ readonly internalType: "address";
328
+ readonly name: "to";
329
+ readonly type: "address";
330
+ }, {
331
+ readonly internalType: "uint256";
332
+ readonly name: "value";
333
+ readonly type: "uint256";
334
+ }];
335
+ readonly name: "transferFrom";
336
+ readonly outputs: readonly [{
337
+ readonly internalType: "bool";
338
+ readonly name: "";
339
+ readonly type: "bool";
340
+ }];
341
+ readonly stateMutability: "nonpayable";
342
+ readonly type: "function";
343
+ }, {
344
+ readonly inputs: readonly [{
345
+ readonly internalType: "address";
346
+ readonly name: "newMinter";
347
+ readonly type: "address";
348
+ }];
349
+ readonly name: "transferMinter";
350
+ readonly outputs: readonly [];
351
+ readonly stateMutability: "nonpayable";
352
+ readonly type: "function";
353
+ }, {
354
+ readonly inputs: readonly [{
355
+ readonly internalType: "address";
356
+ readonly name: "newVault";
357
+ readonly type: "address";
358
+ }];
359
+ readonly name: "transferVault";
360
+ readonly outputs: readonly [];
361
+ readonly stateMutability: "nonpayable";
362
+ readonly type: "function";
363
+ }, {
364
+ readonly inputs: readonly [{
365
+ readonly internalType: "uint256";
366
+ readonly name: "delta";
367
+ readonly type: "uint256";
368
+ }];
369
+ readonly name: "updateMintQuota";
370
+ readonly outputs: readonly [];
371
+ readonly stateMutability: "nonpayable";
372
+ readonly type: "function";
373
+ }, {
374
+ readonly inputs: readonly [];
375
+ readonly name: "vault";
376
+ readonly outputs: readonly [{
377
+ readonly internalType: "address";
378
+ readonly name: "";
379
+ readonly type: "address";
380
+ }];
381
+ readonly stateMutability: "view";
382
+ readonly type: "function";
383
+ }];
384
+ /**
385
+ * Type-safe ABI for MintableERC20
386
+ */
387
+ export type MintableERC20Abi = typeof MintableERC20Abi;
388
+ /**
389
+ * Contract instance type for MintableERC20
390
+ */
391
+ export type MintableERC20Contract = any;
392
+ /**
393
+ * MintableERC20 Contract Class
394
+ *
395
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
396
+ *
397
+ * @example
398
+ * ```typescript
399
+ * import { createPublicClient, createWalletClient, http } from 'viem';
400
+ * import { mainnet } from 'viem/chains';
401
+ * import { MintableERC20 } from 'MintableERC20';
402
+ *
403
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
404
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
405
+ *
406
+ * const contract = new MintableERC20('0x...', { publicClient, walletClient });
407
+ *
408
+ * // Read functions
409
+ * const result = await contract.balanceOf('0x...');
410
+ *
411
+ * // Write functions
412
+ * const hash = await contract.transfer('0x...', 1000n);
413
+ *
414
+ * // Simulate transactions (dry-run)
415
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
416
+ * console.log('Gas estimate:', simulation.request.gas);
417
+ *
418
+ * // Watch events
419
+ * const unwatch = contract.watch.Transfer((event) => {
420
+ * console.log('Transfer event:', event);
421
+ * });
422
+ * ```
423
+ */
424
+ export declare class MintableERC20 {
425
+ private contract;
426
+ private contractAddress;
427
+ private publicClient;
428
+ constructor(address: Address, clients: {
429
+ publicClient: PublicClient;
430
+ walletClient?: WalletClient;
431
+ });
432
+ /**
433
+ * Get the contract address
434
+ */
435
+ get address(): Address;
436
+ /**
437
+ * Get the underlying viem contract instance.
438
+ */
439
+ getContract(): MintableERC20Contract;
440
+ /**
441
+ * allowance
442
+ * view
443
+ */
444
+ allowance(owner: `0x${string}`, spender: `0x${string}`): Promise<bigint>;
445
+ /**
446
+ * balanceOf
447
+ * view
448
+ */
449
+ balanceOf(account: `0x${string}`): Promise<bigint>;
450
+ /**
451
+ * decimals
452
+ * view
453
+ */
454
+ decimals(): Promise<bigint>;
455
+ /**
456
+ * mintQuota
457
+ * view
458
+ */
459
+ mintQuota(): Promise<bigint>;
460
+ /**
461
+ * minter
462
+ * view
463
+ */
464
+ minter(): Promise<`0x${string}`>;
465
+ /**
466
+ * name
467
+ * view
468
+ */
469
+ name(): Promise<string>;
470
+ /**
471
+ * symbol
472
+ * view
473
+ */
474
+ symbol(): Promise<string>;
475
+ /**
476
+ * totalSupply
477
+ * view
478
+ */
479
+ totalSupply(): Promise<bigint>;
480
+ /**
481
+ * vault
482
+ * view
483
+ */
484
+ vault(): Promise<`0x${string}`>;
485
+ /**
486
+ * approve
487
+ * nonpayable
488
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
489
+ */
490
+ approve(spender: `0x${string}`, value: bigint, options?: {
491
+ accessList?: import('viem').AccessList;
492
+ authorizationList?: import('viem').AuthorizationList;
493
+ chain?: import('viem').Chain | null;
494
+ dataSuffix?: `0x${string}`;
495
+ gas?: bigint;
496
+ gasPrice?: bigint;
497
+ maxFeePerGas?: bigint;
498
+ maxPriorityFeePerGas?: bigint;
499
+ nonce?: number;
500
+ value?: bigint;
501
+ }): Promise<`0x${string}`>;
502
+ /**
503
+ * burn
504
+ * nonpayable
505
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
506
+ */
507
+ burn(account: `0x${string}`, amount: bigint, options?: {
508
+ accessList?: import('viem').AccessList;
509
+ authorizationList?: import('viem').AuthorizationList;
510
+ chain?: import('viem').Chain | null;
511
+ dataSuffix?: `0x${string}`;
512
+ gas?: bigint;
513
+ gasPrice?: bigint;
514
+ maxFeePerGas?: bigint;
515
+ maxPriorityFeePerGas?: bigint;
516
+ nonce?: number;
517
+ value?: bigint;
518
+ }): Promise<`0x${string}`>;
519
+ /**
520
+ * mint
521
+ * nonpayable
522
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
523
+ */
524
+ mint(account: `0x${string}`, amount: bigint, options?: {
525
+ accessList?: import('viem').AccessList;
526
+ authorizationList?: import('viem').AuthorizationList;
527
+ chain?: import('viem').Chain | null;
528
+ dataSuffix?: `0x${string}`;
529
+ gas?: bigint;
530
+ gasPrice?: bigint;
531
+ maxFeePerGas?: bigint;
532
+ maxPriorityFeePerGas?: bigint;
533
+ nonce?: number;
534
+ value?: bigint;
535
+ }): Promise<`0x${string}`>;
536
+ /**
537
+ * transfer
538
+ * nonpayable
539
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
540
+ */
541
+ transfer(to: `0x${string}`, value: bigint, options?: {
542
+ accessList?: import('viem').AccessList;
543
+ authorizationList?: import('viem').AuthorizationList;
544
+ chain?: import('viem').Chain | null;
545
+ dataSuffix?: `0x${string}`;
546
+ gas?: bigint;
547
+ gasPrice?: bigint;
548
+ maxFeePerGas?: bigint;
549
+ maxPriorityFeePerGas?: bigint;
550
+ nonce?: number;
551
+ value?: bigint;
552
+ }): Promise<`0x${string}`>;
553
+ /**
554
+ * transferFrom
555
+ * nonpayable
556
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
557
+ */
558
+ transferFrom(from: `0x${string}`, to: `0x${string}`, value: bigint, options?: {
559
+ accessList?: import('viem').AccessList;
560
+ authorizationList?: import('viem').AuthorizationList;
561
+ chain?: import('viem').Chain | null;
562
+ dataSuffix?: `0x${string}`;
563
+ gas?: bigint;
564
+ gasPrice?: bigint;
565
+ maxFeePerGas?: bigint;
566
+ maxPriorityFeePerGas?: bigint;
567
+ nonce?: number;
568
+ value?: bigint;
569
+ }): Promise<`0x${string}`>;
570
+ /**
571
+ * transferMinter
572
+ * nonpayable
573
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
574
+ */
575
+ transferMinter(newMinter: `0x${string}`, options?: {
576
+ accessList?: import('viem').AccessList;
577
+ authorizationList?: import('viem').AuthorizationList;
578
+ chain?: import('viem').Chain | null;
579
+ dataSuffix?: `0x${string}`;
580
+ gas?: bigint;
581
+ gasPrice?: bigint;
582
+ maxFeePerGas?: bigint;
583
+ maxPriorityFeePerGas?: bigint;
584
+ nonce?: number;
585
+ value?: bigint;
586
+ }): Promise<`0x${string}`>;
587
+ /**
588
+ * transferVault
589
+ * nonpayable
590
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
591
+ */
592
+ transferVault(newVault: `0x${string}`, options?: {
593
+ accessList?: import('viem').AccessList;
594
+ authorizationList?: import('viem').AuthorizationList;
595
+ chain?: import('viem').Chain | null;
596
+ dataSuffix?: `0x${string}`;
597
+ gas?: bigint;
598
+ gasPrice?: bigint;
599
+ maxFeePerGas?: bigint;
600
+ maxPriorityFeePerGas?: bigint;
601
+ nonce?: number;
602
+ value?: bigint;
603
+ }): Promise<`0x${string}`>;
604
+ /**
605
+ * updateMintQuota
606
+ * nonpayable
607
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
608
+ */
609
+ updateMintQuota(delta: bigint, options?: {
610
+ accessList?: import('viem').AccessList;
611
+ authorizationList?: import('viem').AuthorizationList;
612
+ chain?: import('viem').Chain | null;
613
+ dataSuffix?: `0x${string}`;
614
+ gas?: bigint;
615
+ gasPrice?: bigint;
616
+ maxFeePerGas?: bigint;
617
+ maxPriorityFeePerGas?: bigint;
618
+ nonce?: number;
619
+ value?: bigint;
620
+ }): Promise<`0x${string}`>;
621
+ /**
622
+ * Simulate contract write operations (dry-run without sending transaction)
623
+ *
624
+ * @example
625
+ * const result = await contract.simulate.transfer('0x...', 1000n);
626
+ * console.log('Gas estimate:', result.request.gas);
627
+ * console.log('Would succeed:', result.result);
628
+ */
629
+ get simulate(): {
630
+ /**
631
+ * Simulate approve
632
+ * Returns gas estimate and result without sending transaction
633
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
634
+ */
635
+ approve(spender: `0x${string}`, value: bigint, options?: {
636
+ accessList?: import("viem").AccessList;
637
+ authorizationList?: import("viem").AuthorizationList;
638
+ chain?: import("viem").Chain | null;
639
+ dataSuffix?: `0x${string}`;
640
+ gas?: bigint;
641
+ gasPrice?: bigint;
642
+ maxFeePerGas?: bigint;
643
+ maxPriorityFeePerGas?: bigint;
644
+ nonce?: number;
645
+ value?: bigint;
646
+ }): Promise<boolean>;
647
+ /**
648
+ * Simulate burn
649
+ * Returns gas estimate and result without sending transaction
650
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
651
+ */
652
+ burn(account: `0x${string}`, amount: bigint, options?: {
653
+ accessList?: import("viem").AccessList;
654
+ authorizationList?: import("viem").AuthorizationList;
655
+ chain?: import("viem").Chain | null;
656
+ dataSuffix?: `0x${string}`;
657
+ gas?: bigint;
658
+ gasPrice?: bigint;
659
+ maxFeePerGas?: bigint;
660
+ maxPriorityFeePerGas?: bigint;
661
+ nonce?: number;
662
+ value?: bigint;
663
+ }): Promise<void>;
664
+ /**
665
+ * Simulate mint
666
+ * Returns gas estimate and result without sending transaction
667
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
668
+ */
669
+ mint(account: `0x${string}`, amount: bigint, options?: {
670
+ accessList?: import("viem").AccessList;
671
+ authorizationList?: import("viem").AuthorizationList;
672
+ chain?: import("viem").Chain | null;
673
+ dataSuffix?: `0x${string}`;
674
+ gas?: bigint;
675
+ gasPrice?: bigint;
676
+ maxFeePerGas?: bigint;
677
+ maxPriorityFeePerGas?: bigint;
678
+ nonce?: number;
679
+ value?: bigint;
680
+ }): Promise<void>;
681
+ /**
682
+ * Simulate transfer
683
+ * Returns gas estimate and result without sending transaction
684
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
685
+ */
686
+ transfer(to: `0x${string}`, value: bigint, options?: {
687
+ accessList?: import("viem").AccessList;
688
+ authorizationList?: import("viem").AuthorizationList;
689
+ chain?: import("viem").Chain | null;
690
+ dataSuffix?: `0x${string}`;
691
+ gas?: bigint;
692
+ gasPrice?: bigint;
693
+ maxFeePerGas?: bigint;
694
+ maxPriorityFeePerGas?: bigint;
695
+ nonce?: number;
696
+ value?: bigint;
697
+ }): Promise<boolean>;
698
+ /**
699
+ * Simulate transferFrom
700
+ * Returns gas estimate and result without sending transaction
701
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
702
+ */
703
+ transferFrom(from: `0x${string}`, to: `0x${string}`, value: bigint, options?: {
704
+ accessList?: import("viem").AccessList;
705
+ authorizationList?: import("viem").AuthorizationList;
706
+ chain?: import("viem").Chain | null;
707
+ dataSuffix?: `0x${string}`;
708
+ gas?: bigint;
709
+ gasPrice?: bigint;
710
+ maxFeePerGas?: bigint;
711
+ maxPriorityFeePerGas?: bigint;
712
+ nonce?: number;
713
+ value?: bigint;
714
+ }): Promise<boolean>;
715
+ /**
716
+ * Simulate transferMinter
717
+ * Returns gas estimate and result without sending transaction
718
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
719
+ */
720
+ transferMinter(newMinter: `0x${string}`, options?: {
721
+ accessList?: import("viem").AccessList;
722
+ authorizationList?: import("viem").AuthorizationList;
723
+ chain?: import("viem").Chain | null;
724
+ dataSuffix?: `0x${string}`;
725
+ gas?: bigint;
726
+ gasPrice?: bigint;
727
+ maxFeePerGas?: bigint;
728
+ maxPriorityFeePerGas?: bigint;
729
+ nonce?: number;
730
+ value?: bigint;
731
+ }): Promise<void>;
732
+ /**
733
+ * Simulate transferVault
734
+ * Returns gas estimate and result without sending transaction
735
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
736
+ */
737
+ transferVault(newVault: `0x${string}`, options?: {
738
+ accessList?: import("viem").AccessList;
739
+ authorizationList?: import("viem").AuthorizationList;
740
+ chain?: import("viem").Chain | null;
741
+ dataSuffix?: `0x${string}`;
742
+ gas?: bigint;
743
+ gasPrice?: bigint;
744
+ maxFeePerGas?: bigint;
745
+ maxPriorityFeePerGas?: bigint;
746
+ nonce?: number;
747
+ value?: bigint;
748
+ }): Promise<void>;
749
+ /**
750
+ * Simulate updateMintQuota
751
+ * Returns gas estimate and result without sending transaction
752
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
753
+ */
754
+ updateMintQuota(delta: bigint, options?: {
755
+ accessList?: import("viem").AccessList;
756
+ authorizationList?: import("viem").AuthorizationList;
757
+ chain?: import("viem").Chain | null;
758
+ dataSuffix?: `0x${string}`;
759
+ gas?: bigint;
760
+ gasPrice?: bigint;
761
+ maxFeePerGas?: bigint;
762
+ maxPriorityFeePerGas?: bigint;
763
+ nonce?: number;
764
+ value?: bigint;
765
+ }): Promise<void>;
766
+ };
767
+ /**
768
+ * Watch contract events
769
+ *
770
+ * @example
771
+ * // Watch all Transfer events
772
+ * const unwatch = contract.watch.Transfer((event) => {
773
+ * console.log('Transfer:', event);
774
+ * });
775
+ *
776
+ * // Stop watching
777
+ * unwatch();
778
+ */
779
+ get watch(): {
780
+ /**
781
+ * Watch Approval events
782
+ * @param callback Function to call when event is emitted
783
+ * @param filter Optional filter for indexed parameters
784
+ * @returns Unwatch function to stop listening
785
+ */
786
+ Approval: (callback: (event: {
787
+ owner: `0x${string}`;
788
+ spender: `0x${string}`;
789
+ value: bigint;
790
+ }) => void, filter?: {
791
+ owner?: `0x${string}` | `0x${string}`[] | null;
792
+ spender?: `0x${string}` | `0x${string}`[] | null;
793
+ }) => () => void;
794
+ /**
795
+ * Watch MinterTransferred events
796
+ * @param callback Function to call when event is emitted
797
+ * @param filter Optional filter for indexed parameters
798
+ * @returns Unwatch function to stop listening
799
+ */
800
+ MinterTransferred: (callback: (event: {
801
+ prevMinter: `0x${string}`;
802
+ newMinter: `0x${string}`;
803
+ }) => void, filter?: {
804
+ prevMinter?: `0x${string}` | `0x${string}`[] | null;
805
+ newMinter?: `0x${string}` | `0x${string}`[] | null;
806
+ }) => () => void;
807
+ /**
808
+ * Watch Transfer events
809
+ * @param callback Function to call when event is emitted
810
+ * @param filter Optional filter for indexed parameters
811
+ * @returns Unwatch function to stop listening
812
+ */
813
+ Transfer: (callback: (event: {
814
+ from: `0x${string}`;
815
+ to: `0x${string}`;
816
+ value: bigint;
817
+ }) => void, filter?: {
818
+ from?: `0x${string}` | `0x${string}`[] | null;
819
+ to?: `0x${string}` | `0x${string}`[] | null;
820
+ }) => () => void;
821
+ /**
822
+ * Watch VaultTransferred events
823
+ * @param callback Function to call when event is emitted
824
+ * @param filter Optional filter for indexed parameters
825
+ * @returns Unwatch function to stop listening
826
+ */
827
+ VaultTransferred: (callback: (event: {
828
+ prevVault: `0x${string}`;
829
+ newVault: `0x${string}`;
830
+ }) => void, filter?: {
831
+ prevVault?: `0x${string}` | `0x${string}`[] | null;
832
+ newVault?: `0x${string}` | `0x${string}`[] | null;
833
+ }) => () => void;
834
+ };
835
+ }