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