@gitmyabi-stg/imx 0.0.1

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,933 @@
1
+ import type { Address, PublicClient, WalletClient } from 'viem';
2
+ /**
3
+ * IMXToken ABI
4
+ *
5
+ * This ABI is typed using viem's type system for full type safety.
6
+ */
7
+ export declare const IMXTokenAbi: readonly [{
8
+ readonly inputs: readonly [{
9
+ readonly internalType: "address";
10
+ readonly name: "minter";
11
+ readonly type: "address";
12
+ }];
13
+ readonly stateMutability: "nonpayable";
14
+ readonly type: "constructor";
15
+ }, {
16
+ readonly anonymous: false;
17
+ readonly inputs: readonly [{
18
+ readonly indexed: true;
19
+ readonly internalType: "address";
20
+ readonly name: "owner";
21
+ readonly type: "address";
22
+ }, {
23
+ readonly indexed: true;
24
+ readonly internalType: "address";
25
+ readonly name: "spender";
26
+ readonly type: "address";
27
+ }, {
28
+ readonly indexed: false;
29
+ readonly internalType: "uint256";
30
+ readonly name: "value";
31
+ readonly type: "uint256";
32
+ }];
33
+ readonly name: "Approval";
34
+ readonly type: "event";
35
+ }, {
36
+ readonly anonymous: false;
37
+ readonly inputs: readonly [{
38
+ readonly indexed: true;
39
+ readonly internalType: "bytes32";
40
+ readonly name: "role";
41
+ readonly type: "bytes32";
42
+ }, {
43
+ readonly indexed: true;
44
+ readonly internalType: "bytes32";
45
+ readonly name: "previousAdminRole";
46
+ readonly type: "bytes32";
47
+ }, {
48
+ readonly indexed: true;
49
+ readonly internalType: "bytes32";
50
+ readonly name: "newAdminRole";
51
+ readonly type: "bytes32";
52
+ }];
53
+ readonly name: "RoleAdminChanged";
54
+ readonly type: "event";
55
+ }, {
56
+ readonly anonymous: false;
57
+ readonly inputs: readonly [{
58
+ readonly indexed: true;
59
+ readonly internalType: "bytes32";
60
+ readonly name: "role";
61
+ readonly type: "bytes32";
62
+ }, {
63
+ readonly indexed: true;
64
+ readonly internalType: "address";
65
+ readonly name: "account";
66
+ readonly type: "address";
67
+ }, {
68
+ readonly indexed: true;
69
+ readonly internalType: "address";
70
+ readonly name: "sender";
71
+ readonly type: "address";
72
+ }];
73
+ readonly name: "RoleGranted";
74
+ readonly type: "event";
75
+ }, {
76
+ readonly anonymous: false;
77
+ readonly inputs: readonly [{
78
+ readonly indexed: true;
79
+ readonly internalType: "bytes32";
80
+ readonly name: "role";
81
+ readonly type: "bytes32";
82
+ }, {
83
+ readonly indexed: true;
84
+ readonly internalType: "address";
85
+ readonly name: "account";
86
+ readonly type: "address";
87
+ }, {
88
+ readonly indexed: true;
89
+ readonly internalType: "address";
90
+ readonly name: "sender";
91
+ readonly type: "address";
92
+ }];
93
+ readonly name: "RoleRevoked";
94
+ readonly type: "event";
95
+ }, {
96
+ readonly anonymous: false;
97
+ readonly inputs: readonly [{
98
+ readonly indexed: true;
99
+ readonly internalType: "address";
100
+ readonly name: "from";
101
+ readonly type: "address";
102
+ }, {
103
+ readonly indexed: true;
104
+ readonly internalType: "address";
105
+ readonly name: "to";
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: "Transfer";
114
+ readonly type: "event";
115
+ }, {
116
+ readonly inputs: readonly [];
117
+ readonly name: "DEFAULT_ADMIN_ROLE";
118
+ readonly outputs: readonly [{
119
+ readonly internalType: "bytes32";
120
+ readonly name: "";
121
+ readonly type: "bytes32";
122
+ }];
123
+ readonly stateMutability: "view";
124
+ readonly type: "function";
125
+ }, {
126
+ readonly inputs: readonly [];
127
+ readonly name: "MINTER_ROLE";
128
+ readonly outputs: readonly [{
129
+ readonly internalType: "bytes32";
130
+ readonly name: "";
131
+ readonly type: "bytes32";
132
+ }];
133
+ readonly stateMutability: "view";
134
+ readonly type: "function";
135
+ }, {
136
+ readonly inputs: readonly [{
137
+ readonly internalType: "address";
138
+ readonly name: "owner";
139
+ readonly type: "address";
140
+ }, {
141
+ readonly internalType: "address";
142
+ readonly name: "spender";
143
+ readonly type: "address";
144
+ }];
145
+ readonly name: "allowance";
146
+ readonly outputs: readonly [{
147
+ readonly internalType: "uint256";
148
+ readonly name: "";
149
+ readonly type: "uint256";
150
+ }];
151
+ readonly stateMutability: "view";
152
+ readonly type: "function";
153
+ }, {
154
+ readonly inputs: readonly [{
155
+ readonly internalType: "address";
156
+ readonly name: "spender";
157
+ readonly type: "address";
158
+ }, {
159
+ readonly internalType: "uint256";
160
+ readonly name: "amount";
161
+ readonly type: "uint256";
162
+ }];
163
+ readonly name: "approve";
164
+ readonly outputs: readonly [{
165
+ readonly internalType: "bool";
166
+ readonly name: "";
167
+ readonly type: "bool";
168
+ }];
169
+ readonly stateMutability: "nonpayable";
170
+ readonly type: "function";
171
+ }, {
172
+ readonly inputs: readonly [{
173
+ readonly internalType: "address";
174
+ readonly name: "account";
175
+ readonly type: "address";
176
+ }];
177
+ readonly name: "balanceOf";
178
+ readonly outputs: readonly [{
179
+ readonly internalType: "uint256";
180
+ readonly name: "";
181
+ readonly type: "uint256";
182
+ }];
183
+ readonly stateMutability: "view";
184
+ readonly type: "function";
185
+ }, {
186
+ readonly inputs: readonly [];
187
+ readonly name: "cap";
188
+ readonly outputs: readonly [{
189
+ readonly internalType: "uint256";
190
+ readonly name: "";
191
+ readonly type: "uint256";
192
+ }];
193
+ readonly stateMutability: "view";
194
+ readonly type: "function";
195
+ }, {
196
+ readonly inputs: readonly [];
197
+ readonly name: "decimals";
198
+ readonly outputs: readonly [{
199
+ readonly internalType: "uint8";
200
+ readonly name: "";
201
+ readonly type: "uint8";
202
+ }];
203
+ readonly stateMutability: "view";
204
+ readonly type: "function";
205
+ }, {
206
+ readonly inputs: readonly [{
207
+ readonly internalType: "address";
208
+ readonly name: "spender";
209
+ readonly type: "address";
210
+ }, {
211
+ readonly internalType: "uint256";
212
+ readonly name: "subtractedValue";
213
+ readonly type: "uint256";
214
+ }];
215
+ readonly name: "decreaseAllowance";
216
+ readonly outputs: readonly [{
217
+ readonly internalType: "bool";
218
+ readonly name: "";
219
+ readonly type: "bool";
220
+ }];
221
+ readonly stateMutability: "nonpayable";
222
+ readonly type: "function";
223
+ }, {
224
+ readonly inputs: readonly [{
225
+ readonly internalType: "bytes32";
226
+ readonly name: "role";
227
+ readonly type: "bytes32";
228
+ }];
229
+ readonly name: "getRoleAdmin";
230
+ readonly outputs: readonly [{
231
+ readonly internalType: "bytes32";
232
+ readonly name: "";
233
+ readonly type: "bytes32";
234
+ }];
235
+ readonly stateMutability: "view";
236
+ readonly type: "function";
237
+ }, {
238
+ readonly inputs: readonly [{
239
+ readonly internalType: "bytes32";
240
+ readonly name: "role";
241
+ readonly type: "bytes32";
242
+ }, {
243
+ readonly internalType: "address";
244
+ readonly name: "account";
245
+ readonly type: "address";
246
+ }];
247
+ readonly name: "grantRole";
248
+ readonly outputs: readonly [];
249
+ readonly stateMutability: "nonpayable";
250
+ readonly type: "function";
251
+ }, {
252
+ readonly inputs: readonly [{
253
+ readonly internalType: "bytes32";
254
+ readonly name: "role";
255
+ readonly type: "bytes32";
256
+ }, {
257
+ readonly internalType: "address";
258
+ readonly name: "account";
259
+ readonly type: "address";
260
+ }];
261
+ readonly name: "hasRole";
262
+ readonly outputs: readonly [{
263
+ readonly internalType: "bool";
264
+ readonly name: "";
265
+ readonly type: "bool";
266
+ }];
267
+ readonly stateMutability: "view";
268
+ readonly type: "function";
269
+ }, {
270
+ readonly inputs: readonly [{
271
+ readonly internalType: "address";
272
+ readonly name: "spender";
273
+ readonly type: "address";
274
+ }, {
275
+ readonly internalType: "uint256";
276
+ readonly name: "addedValue";
277
+ readonly type: "uint256";
278
+ }];
279
+ readonly name: "increaseAllowance";
280
+ readonly outputs: readonly [{
281
+ readonly internalType: "bool";
282
+ readonly name: "";
283
+ readonly type: "bool";
284
+ }];
285
+ readonly stateMutability: "nonpayable";
286
+ readonly type: "function";
287
+ }, {
288
+ readonly inputs: readonly [{
289
+ readonly internalType: "address";
290
+ readonly name: "to";
291
+ readonly type: "address";
292
+ }, {
293
+ readonly internalType: "uint256";
294
+ readonly name: "amount";
295
+ readonly type: "uint256";
296
+ }];
297
+ readonly name: "mint";
298
+ readonly outputs: readonly [];
299
+ readonly stateMutability: "nonpayable";
300
+ readonly type: "function";
301
+ }, {
302
+ readonly inputs: readonly [];
303
+ readonly name: "name";
304
+ readonly outputs: readonly [{
305
+ readonly internalType: "string";
306
+ readonly name: "";
307
+ readonly type: "string";
308
+ }];
309
+ readonly stateMutability: "view";
310
+ readonly type: "function";
311
+ }, {
312
+ readonly inputs: readonly [{
313
+ readonly internalType: "bytes32";
314
+ readonly name: "role";
315
+ readonly type: "bytes32";
316
+ }, {
317
+ readonly internalType: "address";
318
+ readonly name: "account";
319
+ readonly type: "address";
320
+ }];
321
+ readonly name: "renounceRole";
322
+ readonly outputs: readonly [];
323
+ readonly stateMutability: "nonpayable";
324
+ readonly type: "function";
325
+ }, {
326
+ readonly inputs: readonly [{
327
+ readonly internalType: "bytes32";
328
+ readonly name: "role";
329
+ readonly type: "bytes32";
330
+ }, {
331
+ readonly internalType: "address";
332
+ readonly name: "account";
333
+ readonly type: "address";
334
+ }];
335
+ readonly name: "revokeRole";
336
+ readonly outputs: readonly [];
337
+ readonly stateMutability: "nonpayable";
338
+ readonly type: "function";
339
+ }, {
340
+ readonly inputs: readonly [{
341
+ readonly internalType: "bytes4";
342
+ readonly name: "interfaceId";
343
+ readonly type: "bytes4";
344
+ }];
345
+ readonly name: "supportsInterface";
346
+ readonly outputs: readonly [{
347
+ readonly internalType: "bool";
348
+ readonly name: "";
349
+ readonly type: "bool";
350
+ }];
351
+ readonly stateMutability: "view";
352
+ readonly type: "function";
353
+ }, {
354
+ readonly inputs: readonly [];
355
+ readonly name: "symbol";
356
+ readonly outputs: readonly [{
357
+ readonly internalType: "string";
358
+ readonly name: "";
359
+ readonly type: "string";
360
+ }];
361
+ readonly stateMutability: "view";
362
+ readonly type: "function";
363
+ }, {
364
+ readonly inputs: readonly [];
365
+ readonly name: "totalSupply";
366
+ readonly outputs: readonly [{
367
+ readonly internalType: "uint256";
368
+ readonly name: "";
369
+ readonly type: "uint256";
370
+ }];
371
+ readonly stateMutability: "view";
372
+ readonly type: "function";
373
+ }, {
374
+ readonly inputs: readonly [{
375
+ readonly internalType: "address";
376
+ readonly name: "recipient";
377
+ readonly type: "address";
378
+ }, {
379
+ readonly internalType: "uint256";
380
+ readonly name: "amount";
381
+ readonly type: "uint256";
382
+ }];
383
+ readonly name: "transfer";
384
+ readonly outputs: readonly [{
385
+ readonly internalType: "bool";
386
+ readonly name: "";
387
+ readonly type: "bool";
388
+ }];
389
+ readonly stateMutability: "nonpayable";
390
+ readonly type: "function";
391
+ }, {
392
+ readonly inputs: readonly [{
393
+ readonly internalType: "address";
394
+ readonly name: "sender";
395
+ readonly type: "address";
396
+ }, {
397
+ readonly internalType: "address";
398
+ readonly name: "recipient";
399
+ readonly type: "address";
400
+ }, {
401
+ readonly internalType: "uint256";
402
+ readonly name: "amount";
403
+ readonly type: "uint256";
404
+ }];
405
+ readonly name: "transferFrom";
406
+ readonly outputs: readonly [{
407
+ readonly internalType: "bool";
408
+ readonly name: "";
409
+ readonly type: "bool";
410
+ }];
411
+ readonly stateMutability: "nonpayable";
412
+ readonly type: "function";
413
+ }];
414
+ /**
415
+ * Type-safe ABI for IMXToken
416
+ */
417
+ export type IMXTokenAbi = typeof IMXTokenAbi;
418
+ /**
419
+ * Contract instance type for IMXToken
420
+ */
421
+ export type IMXTokenContract = any;
422
+ /**
423
+ * IMXToken Contract Class
424
+ *
425
+ * Provides a class-based API similar to TypeChain for interacting with the contract.
426
+ *
427
+ * @example
428
+ * ```typescript
429
+ * import { createPublicClient, createWalletClient, http } from 'viem';
430
+ * import { mainnet } from 'viem/chains';
431
+ * import { IMXToken } from 'IMXToken';
432
+ *
433
+ * const publicClient = createPublicClient({ chain: mainnet, transport: http() });
434
+ * const walletClient = createWalletClient({ chain: mainnet, transport: http() });
435
+ *
436
+ * const contract = new IMXToken('0x...', { publicClient, walletClient });
437
+ *
438
+ * // Read functions
439
+ * const result = await contract.balanceOf('0x...');
440
+ *
441
+ * // Write functions
442
+ * const hash = await contract.transfer('0x...', 1000n);
443
+ *
444
+ * // Simulate transactions (dry-run)
445
+ * const simulation = await contract.simulate.transfer('0x...', 1000n);
446
+ * console.log('Gas estimate:', simulation.request.gas);
447
+ *
448
+ * // Watch events
449
+ * const unwatch = contract.watch.Transfer((event) => {
450
+ * console.log('Transfer event:', event);
451
+ * });
452
+ * ```
453
+ */
454
+ export declare class IMXToken {
455
+ private contract;
456
+ private contractAddress;
457
+ private publicClient;
458
+ constructor(address: Address, clients: {
459
+ publicClient: PublicClient;
460
+ walletClient?: WalletClient;
461
+ });
462
+ /**
463
+ * Get the contract address
464
+ */
465
+ get address(): Address;
466
+ /**
467
+ * Get the underlying viem contract instance.
468
+ */
469
+ getContract(): IMXTokenContract;
470
+ /**
471
+ * DEFAULT_ADMIN_ROLE
472
+ * view
473
+ */
474
+ DEFAULT_ADMIN_ROLE(): Promise<`0x${string}`>;
475
+ /**
476
+ * MINTER_ROLE
477
+ * view
478
+ */
479
+ MINTER_ROLE(): Promise<`0x${string}`>;
480
+ /**
481
+ * allowance
482
+ * view
483
+ */
484
+ allowance(owner: `0x${string}`, spender: `0x${string}`): Promise<bigint>;
485
+ /**
486
+ * balanceOf
487
+ * view
488
+ */
489
+ balanceOf(account: `0x${string}`): Promise<bigint>;
490
+ /**
491
+ * cap
492
+ * view
493
+ */
494
+ cap(): Promise<bigint>;
495
+ /**
496
+ * decimals
497
+ * view
498
+ */
499
+ decimals(): Promise<bigint>;
500
+ /**
501
+ * getRoleAdmin
502
+ * view
503
+ */
504
+ getRoleAdmin(role: `0x${string}`): Promise<`0x${string}`>;
505
+ /**
506
+ * hasRole
507
+ * view
508
+ */
509
+ hasRole(role: `0x${string}`, account: `0x${string}`): Promise<boolean>;
510
+ /**
511
+ * name
512
+ * view
513
+ */
514
+ name(): Promise<string>;
515
+ /**
516
+ * supportsInterface
517
+ * view
518
+ */
519
+ supportsInterface(interfaceId: `0x${string}`): Promise<boolean>;
520
+ /**
521
+ * symbol
522
+ * view
523
+ */
524
+ symbol(): Promise<string>;
525
+ /**
526
+ * totalSupply
527
+ * view
528
+ */
529
+ totalSupply(): Promise<bigint>;
530
+ /**
531
+ * approve
532
+ * nonpayable
533
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
534
+ */
535
+ approve(spender: `0x${string}`, amount: bigint, options?: {
536
+ accessList?: import('viem').AccessList;
537
+ authorizationList?: import('viem').AuthorizationList;
538
+ chain?: import('viem').Chain | null;
539
+ dataSuffix?: `0x${string}`;
540
+ gas?: bigint;
541
+ gasPrice?: bigint;
542
+ maxFeePerGas?: bigint;
543
+ maxPriorityFeePerGas?: bigint;
544
+ nonce?: number;
545
+ value?: bigint;
546
+ }): Promise<`0x${string}`>;
547
+ /**
548
+ * decreaseAllowance
549
+ * nonpayable
550
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
551
+ */
552
+ decreaseAllowance(spender: `0x${string}`, subtractedValue: bigint, options?: {
553
+ accessList?: import('viem').AccessList;
554
+ authorizationList?: import('viem').AuthorizationList;
555
+ chain?: import('viem').Chain | null;
556
+ dataSuffix?: `0x${string}`;
557
+ gas?: bigint;
558
+ gasPrice?: bigint;
559
+ maxFeePerGas?: bigint;
560
+ maxPriorityFeePerGas?: bigint;
561
+ nonce?: number;
562
+ value?: bigint;
563
+ }): Promise<`0x${string}`>;
564
+ /**
565
+ * grantRole
566
+ * nonpayable
567
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
568
+ */
569
+ grantRole(role: `0x${string}`, account: `0x${string}`, options?: {
570
+ accessList?: import('viem').AccessList;
571
+ authorizationList?: import('viem').AuthorizationList;
572
+ chain?: import('viem').Chain | null;
573
+ dataSuffix?: `0x${string}`;
574
+ gas?: bigint;
575
+ gasPrice?: bigint;
576
+ maxFeePerGas?: bigint;
577
+ maxPriorityFeePerGas?: bigint;
578
+ nonce?: number;
579
+ value?: bigint;
580
+ }): Promise<`0x${string}`>;
581
+ /**
582
+ * increaseAllowance
583
+ * nonpayable
584
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
585
+ */
586
+ increaseAllowance(spender: `0x${string}`, addedValue: bigint, options?: {
587
+ accessList?: import('viem').AccessList;
588
+ authorizationList?: import('viem').AuthorizationList;
589
+ chain?: import('viem').Chain | null;
590
+ dataSuffix?: `0x${string}`;
591
+ gas?: bigint;
592
+ gasPrice?: bigint;
593
+ maxFeePerGas?: bigint;
594
+ maxPriorityFeePerGas?: bigint;
595
+ nonce?: number;
596
+ value?: bigint;
597
+ }): Promise<`0x${string}`>;
598
+ /**
599
+ * mint
600
+ * nonpayable
601
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
602
+ */
603
+ mint(to: `0x${string}`, amount: bigint, options?: {
604
+ accessList?: import('viem').AccessList;
605
+ authorizationList?: import('viem').AuthorizationList;
606
+ chain?: import('viem').Chain | null;
607
+ dataSuffix?: `0x${string}`;
608
+ gas?: bigint;
609
+ gasPrice?: bigint;
610
+ maxFeePerGas?: bigint;
611
+ maxPriorityFeePerGas?: bigint;
612
+ nonce?: number;
613
+ value?: bigint;
614
+ }): Promise<`0x${string}`>;
615
+ /**
616
+ * renounceRole
617
+ * nonpayable
618
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
619
+ */
620
+ renounceRole(role: `0x${string}`, account: `0x${string}`, options?: {
621
+ accessList?: import('viem').AccessList;
622
+ authorizationList?: import('viem').AuthorizationList;
623
+ chain?: import('viem').Chain | null;
624
+ dataSuffix?: `0x${string}`;
625
+ gas?: bigint;
626
+ gasPrice?: bigint;
627
+ maxFeePerGas?: bigint;
628
+ maxPriorityFeePerGas?: bigint;
629
+ nonce?: number;
630
+ value?: bigint;
631
+ }): Promise<`0x${string}`>;
632
+ /**
633
+ * revokeRole
634
+ * nonpayable
635
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
636
+ */
637
+ revokeRole(role: `0x${string}`, account: `0x${string}`, options?: {
638
+ accessList?: import('viem').AccessList;
639
+ authorizationList?: import('viem').AuthorizationList;
640
+ chain?: import('viem').Chain | null;
641
+ dataSuffix?: `0x${string}`;
642
+ gas?: bigint;
643
+ gasPrice?: bigint;
644
+ maxFeePerGas?: bigint;
645
+ maxPriorityFeePerGas?: bigint;
646
+ nonce?: number;
647
+ value?: bigint;
648
+ }): Promise<`0x${string}`>;
649
+ /**
650
+ * transfer
651
+ * nonpayable
652
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
653
+ */
654
+ transfer(recipient: `0x${string}`, amount: bigint, options?: {
655
+ accessList?: import('viem').AccessList;
656
+ authorizationList?: import('viem').AuthorizationList;
657
+ chain?: import('viem').Chain | null;
658
+ dataSuffix?: `0x${string}`;
659
+ gas?: bigint;
660
+ gasPrice?: bigint;
661
+ maxFeePerGas?: bigint;
662
+ maxPriorityFeePerGas?: bigint;
663
+ nonce?: number;
664
+ value?: bigint;
665
+ }): Promise<`0x${string}`>;
666
+ /**
667
+ * transferFrom
668
+ * nonpayable
669
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
670
+ */
671
+ transferFrom(sender: `0x${string}`, recipient: `0x${string}`, amount: bigint, options?: {
672
+ accessList?: import('viem').AccessList;
673
+ authorizationList?: import('viem').AuthorizationList;
674
+ chain?: import('viem').Chain | null;
675
+ dataSuffix?: `0x${string}`;
676
+ gas?: bigint;
677
+ gasPrice?: bigint;
678
+ maxFeePerGas?: bigint;
679
+ maxPriorityFeePerGas?: bigint;
680
+ nonce?: number;
681
+ value?: bigint;
682
+ }): Promise<`0x${string}`>;
683
+ /**
684
+ * Simulate contract write operations (dry-run without sending transaction)
685
+ *
686
+ * @example
687
+ * const result = await contract.simulate.transfer('0x...', 1000n);
688
+ * console.log('Gas estimate:', result.request.gas);
689
+ * console.log('Would succeed:', result.result);
690
+ */
691
+ get simulate(): {
692
+ /**
693
+ * Simulate approve
694
+ * Returns gas estimate and result without sending transaction
695
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
696
+ */
697
+ approve(spender: `0x${string}`, amount: 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<boolean>;
709
+ /**
710
+ * Simulate decreaseAllowance
711
+ * Returns gas estimate and result without sending transaction
712
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
713
+ */
714
+ decreaseAllowance(spender: `0x${string}`, subtractedValue: 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<boolean>;
726
+ /**
727
+ * Simulate grantRole
728
+ * Returns gas estimate and result without sending transaction
729
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
730
+ */
731
+ grantRole(role: `0x${string}`, account: `0x${string}`, 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<void>;
743
+ /**
744
+ * Simulate increaseAllowance
745
+ * Returns gas estimate and result without sending transaction
746
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
747
+ */
748
+ increaseAllowance(spender: `0x${string}`, addedValue: 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<boolean>;
760
+ /**
761
+ * Simulate mint
762
+ * Returns gas estimate and result without sending transaction
763
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
764
+ */
765
+ mint(to: `0x${string}`, amount: bigint, 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<void>;
777
+ /**
778
+ * Simulate renounceRole
779
+ * Returns gas estimate and result without sending transaction
780
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
781
+ */
782
+ renounceRole(role: `0x${string}`, account: `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<void>;
794
+ /**
795
+ * Simulate revokeRole
796
+ * Returns gas estimate and result without sending transaction
797
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
798
+ */
799
+ revokeRole(role: `0x${string}`, account: `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<void>;
811
+ /**
812
+ * Simulate transfer
813
+ * Returns gas estimate and result without sending transaction
814
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
815
+ */
816
+ transfer(recipient: `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<boolean>;
828
+ /**
829
+ * Simulate transferFrom
830
+ * Returns gas estimate and result without sending transaction
831
+ * @param options Optional transaction parameters (value, gas, nonce, etc.)
832
+ */
833
+ transferFrom(sender: `0x${string}`, recipient: `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<boolean>;
845
+ };
846
+ /**
847
+ * Watch contract events
848
+ *
849
+ * @example
850
+ * // Watch all Transfer events
851
+ * const unwatch = contract.watch.Transfer((event) => {
852
+ * console.log('Transfer:', event);
853
+ * });
854
+ *
855
+ * // Stop watching
856
+ * unwatch();
857
+ */
858
+ get watch(): {
859
+ /**
860
+ * Watch Approval events
861
+ * @param callback Function to call when event is emitted
862
+ * @param filter Optional filter for indexed parameters
863
+ * @returns Unwatch function to stop listening
864
+ */
865
+ Approval: (callback: (event: {
866
+ owner: `0x${string}`;
867
+ spender: `0x${string}`;
868
+ value: bigint;
869
+ }) => void, filter?: {
870
+ owner?: `0x${string}` | `0x${string}`[] | null;
871
+ spender?: `0x${string}` | `0x${string}`[] | null;
872
+ }) => () => void;
873
+ /**
874
+ * Watch RoleAdminChanged events
875
+ * @param callback Function to call when event is emitted
876
+ * @param filter Optional filter for indexed parameters
877
+ * @returns Unwatch function to stop listening
878
+ */
879
+ RoleAdminChanged: (callback: (event: {
880
+ role: `0x${string}`;
881
+ previousAdminRole: `0x${string}`;
882
+ newAdminRole: `0x${string}`;
883
+ }) => void, filter?: {
884
+ role?: `0x${string}` | `0x${string}`[] | null;
885
+ previousAdminRole?: `0x${string}` | `0x${string}`[] | null;
886
+ newAdminRole?: `0x${string}` | `0x${string}`[] | null;
887
+ }) => () => void;
888
+ /**
889
+ * Watch RoleGranted events
890
+ * @param callback Function to call when event is emitted
891
+ * @param filter Optional filter for indexed parameters
892
+ * @returns Unwatch function to stop listening
893
+ */
894
+ RoleGranted: (callback: (event: {
895
+ role: `0x${string}`;
896
+ account: `0x${string}`;
897
+ sender: `0x${string}`;
898
+ }) => void, filter?: {
899
+ role?: `0x${string}` | `0x${string}`[] | null;
900
+ account?: `0x${string}` | `0x${string}`[] | null;
901
+ sender?: `0x${string}` | `0x${string}`[] | null;
902
+ }) => () => void;
903
+ /**
904
+ * Watch RoleRevoked events
905
+ * @param callback Function to call when event is emitted
906
+ * @param filter Optional filter for indexed parameters
907
+ * @returns Unwatch function to stop listening
908
+ */
909
+ RoleRevoked: (callback: (event: {
910
+ role: `0x${string}`;
911
+ account: `0x${string}`;
912
+ sender: `0x${string}`;
913
+ }) => void, filter?: {
914
+ role?: `0x${string}` | `0x${string}`[] | null;
915
+ account?: `0x${string}` | `0x${string}`[] | null;
916
+ sender?: `0x${string}` | `0x${string}`[] | null;
917
+ }) => () => void;
918
+ /**
919
+ * Watch Transfer events
920
+ * @param callback Function to call when event is emitted
921
+ * @param filter Optional filter for indexed parameters
922
+ * @returns Unwatch function to stop listening
923
+ */
924
+ Transfer: (callback: (event: {
925
+ from: `0x${string}`;
926
+ to: `0x${string}`;
927
+ value: bigint;
928
+ }) => void, filter?: {
929
+ from?: `0x${string}` | `0x${string}`[] | null;
930
+ to?: `0x${string}` | `0x${string}`[] | null;
931
+ }) => () => void;
932
+ };
933
+ }