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