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