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