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