@aspan/sdk 0.1.8 → 0.2.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.
package/dist/index.d.mts CHANGED
@@ -197,6 +197,200 @@ interface TransactionReceipt {
197
197
  transactionHash: Hash;
198
198
  status: "success" | "reverted";
199
199
  }
200
+ /** Router swap parameters */
201
+ interface RouterSwapParams {
202
+ /** Input token address (address(0) for native BNB) */
203
+ inputToken: Address;
204
+ /** Amount of input token */
205
+ inputAmount: bigint;
206
+ /** Target LST address (address(0) uses default LST) */
207
+ targetLST: Address;
208
+ /** Minimum LST to receive from swap (slippage protection) */
209
+ minLSTOut: bigint;
210
+ /** PancakeSwap V3 pool fee tier (500, 2500, 10000) */
211
+ poolFee: number;
212
+ /** true = PancakeSwap V2, false = V3 */
213
+ useV2: boolean;
214
+ }
215
+ /** Router mint parameters */
216
+ interface RouterMintParams {
217
+ /** true = mint xBNB, false = mint apUSD */
218
+ mintXBNB: boolean;
219
+ /** Minimum output to receive (slippage protection) */
220
+ minMintOut: bigint;
221
+ /** Recipient of minted tokens (address(0) = msg.sender) */
222
+ recipient: Address;
223
+ /** Transaction deadline timestamp */
224
+ deadline: bigint;
225
+ }
226
+ /** Parameters for swapAndMint functions */
227
+ interface SwapAndMintParams {
228
+ swapParams: RouterSwapParams;
229
+ mintParams: RouterMintParams;
230
+ }
231
+ /** Parameters for stakeAndMint function */
232
+ interface StakeAndMintParams {
233
+ /** Target LST (slisBNB, asBNB, wclisBNB) */
234
+ targetLST: Address;
235
+ /** true = mint xBNB, false = mint apUSD */
236
+ mintXBNB: boolean;
237
+ /** Minimum output to receive */
238
+ minMintOut: bigint;
239
+ /** Transaction deadline timestamp */
240
+ deadline: bigint;
241
+ /** Native BNB amount to stake */
242
+ value: bigint;
243
+ }
244
+ /** Parameters for simplified swap and mint functions */
245
+ interface SwapAndMintDefaultParams {
246
+ /** Input token address (address(0) for native BNB) */
247
+ inputToken: Address;
248
+ /** Amount of input token */
249
+ inputAmount: bigint;
250
+ /** Minimum output to receive */
251
+ minMintOut: bigint;
252
+ /** Transaction deadline timestamp */
253
+ deadline: bigint;
254
+ /** Native BNB amount (if inputToken is address(0)) */
255
+ value?: bigint;
256
+ }
257
+ /** Parameters for router direct mint functions */
258
+ interface RouterMintApUSDParams {
259
+ /** LST token address */
260
+ lst: Address;
261
+ /** Amount of LST to deposit */
262
+ lstAmount: bigint;
263
+ /** Minimum apUSD to receive */
264
+ minOut?: bigint;
265
+ }
266
+ /** Parameters for router direct mint xBNB functions */
267
+ interface RouterMintXBNBParams {
268
+ /** LST token address */
269
+ lst: Address;
270
+ /** Amount of LST to deposit */
271
+ lstAmount: bigint;
272
+ /** Minimum xBNB to receive */
273
+ minOut?: bigint;
274
+ }
275
+ /** Parameters for router redeem apUSD functions */
276
+ interface RouterRedeemApUSDParams {
277
+ /** LST token to receive */
278
+ lst: Address;
279
+ /** Amount of apUSD to redeem */
280
+ apUSDAmount: bigint;
281
+ /** Minimum LST to receive */
282
+ minOut?: bigint;
283
+ }
284
+ /** Parameters for router redeem xBNB functions */
285
+ interface RouterRedeemXBNBParams {
286
+ /** LST token to receive */
287
+ lst: Address;
288
+ /** Amount of xBNB to redeem */
289
+ xBNBAmount: bigint;
290
+ /** Minimum LST to receive */
291
+ minOut?: bigint;
292
+ }
293
+ /** Parameters for redeemAndSwap functions */
294
+ interface RouterRedeemAndSwapParams {
295
+ /** LST to redeem */
296
+ lst: Address;
297
+ /** Amount to redeem (apUSD or xBNB) */
298
+ amount: bigint;
299
+ /** Output token (address(0) for native BNB) */
300
+ outputToken: Address;
301
+ /** Minimum output to receive */
302
+ minOut: bigint;
303
+ /** Transaction deadline timestamp */
304
+ deadline: bigint;
305
+ /** true = PancakeSwap V2, false = V3 */
306
+ useV2: boolean;
307
+ /** V3 pool fee tier (ignored if useV2) */
308
+ poolFee: number;
309
+ }
310
+ /** Parameters for redeemAndUnstake functions */
311
+ interface RouterRedeemAndUnstakeParams {
312
+ /** LST to redeem */
313
+ lst: Address;
314
+ /** Amount to redeem (apUSD or xBNB) */
315
+ amount: bigint;
316
+ /** Minimum BNB to receive */
317
+ minBNBOut: bigint;
318
+ /** Transaction deadline timestamp */
319
+ deadline: bigint;
320
+ }
321
+ /** Withdrawal request status */
322
+ interface WithdrawalRequestInfo {
323
+ /** Whether the request can be claimed */
324
+ isClaimable: boolean;
325
+ /** Amount of BNB to receive */
326
+ bnbAmount: bigint;
327
+ }
328
+ /** Expected output from swap and mint */
329
+ interface ExpectedOutput {
330
+ /** Expected LST from swap */
331
+ expectedLST: bigint;
332
+ /** Expected apUSD/xBNB from mint */
333
+ expectedMint: bigint;
334
+ }
335
+ /** SwapAndMint event */
336
+ interface SwapAndMintEvent {
337
+ user: Address;
338
+ inputToken: Address;
339
+ inputAmount: bigint;
340
+ targetLST: Address;
341
+ lstAmount: bigint;
342
+ mintedToken: Address;
343
+ mintedAmount: bigint;
344
+ }
345
+ /** StakeAndMint event */
346
+ interface StakeAndMintEvent {
347
+ user: Address;
348
+ bnbAmount: bigint;
349
+ targetLST: Address;
350
+ lstAmount: bigint;
351
+ mintedToken: Address;
352
+ mintedAmount: bigint;
353
+ }
354
+ /** Router Mint event */
355
+ interface RouterMintEvent {
356
+ user: Address;
357
+ lst: Address;
358
+ lstAmount: bigint;
359
+ mintedToken: Address;
360
+ mintedAmount: bigint;
361
+ }
362
+ /** Router Redeem event */
363
+ interface RouterRedeemEvent {
364
+ user: Address;
365
+ redeemedToken: Address;
366
+ redeemedAmount: bigint;
367
+ lst: Address;
368
+ lstAmount: bigint;
369
+ }
370
+ /** RedeemAndSwap event */
371
+ interface RedeemAndSwapEvent {
372
+ user: Address;
373
+ redeemedToken: Address;
374
+ redeemedAmount: bigint;
375
+ lst: Address;
376
+ lstAmount: bigint;
377
+ outputToken: Address;
378
+ outputAmount: bigint;
379
+ }
380
+ /** UnstakeRequested event */
381
+ interface UnstakeRequestedEvent {
382
+ user: Address;
383
+ requestIndex: bigint;
384
+ redeemedToken: Address;
385
+ redeemedAmount: bigint;
386
+ slisBNBAmount: bigint;
387
+ }
388
+ /** UnstakeClaimed event */
389
+ interface UnstakeClaimedEvent {
390
+ user: Address;
391
+ requestIndex: bigint;
392
+ bnbAmount: bigint;
393
+ }
200
394
 
201
395
  interface AspanClientConfig {
202
396
  /** Diamond contract address */
@@ -358,6 +552,165 @@ declare function createAspanTestnetReadClient(diamondAddress: Address, rpcUrl?:
358
552
  */
359
553
  declare function createAspanTestnetClient(diamondAddress: Address, account: Account, rpcUrl?: string): AspanClient;
360
554
 
555
+ interface AspanRouterClientConfig {
556
+ /** Router contract address */
557
+ routerAddress: Address;
558
+ /** Chain to connect to */
559
+ chain?: Chain;
560
+ /** RPC URL (optional, uses default if not provided) */
561
+ rpcUrl?: string;
562
+ }
563
+ interface AspanRouterWriteClientConfig extends AspanRouterClientConfig {
564
+ /** Account for signing transactions (required if walletClient not provided) */
565
+ account?: Account;
566
+ /** External wallet client (for browser environments with wagmi/rainbowkit) */
567
+ walletClient?: WalletClient<Transport, Chain, Account>;
568
+ }
569
+ /**
570
+ * Read-only client for querying AspanRouter state
571
+ */
572
+ declare class AspanRouterReadClient {
573
+ protected readonly publicClient: PublicClient;
574
+ protected readonly routerAddress: Address;
575
+ protected readonly chain: Chain;
576
+ constructor(config: AspanRouterClientConfig);
577
+ /**
578
+ * Get the default LST address
579
+ */
580
+ getDefaultLST(): Promise<Address>;
581
+ /**
582
+ * Check if an input token is supported
583
+ */
584
+ isSupportedInputToken(token: Address): Promise<boolean>;
585
+ /**
586
+ * Check if an LST is supported
587
+ */
588
+ isSupportedLST(lst: Address): Promise<boolean>;
589
+ /**
590
+ * Get the Diamond contract address
591
+ */
592
+ getDiamond(): Promise<Address>;
593
+ /**
594
+ * Get expected output from a swap and mint operation
595
+ */
596
+ getExpectedOutput(inputToken: Address, inputAmount: bigint, targetLST: Address, mintXBNB: boolean): Promise<ExpectedOutput>;
597
+ /**
598
+ * Get user's withdrawal request indices
599
+ */
600
+ getUserWithdrawalIndices(user: Address): Promise<bigint[]>;
601
+ /**
602
+ * Get withdrawal request status
603
+ */
604
+ getWithdrawalStatus(requestIndex: bigint): Promise<WithdrawalRequestInfo>;
605
+ getWBNB(): Promise<Address>;
606
+ getUSDT(): Promise<Address>;
607
+ getUSDC(): Promise<Address>;
608
+ getSlisBNB(): Promise<Address>;
609
+ getAsBNB(): Promise<Address>;
610
+ getWclisBNB(): Promise<Address>;
611
+ getApUSD(): Promise<Address>;
612
+ getXBNB(): Promise<Address>;
613
+ }
614
+ /**
615
+ * Full client with write capabilities for AspanRouter
616
+ */
617
+ declare class AspanRouterClient extends AspanRouterReadClient {
618
+ private readonly walletClient;
619
+ constructor(config: AspanRouterWriteClientConfig);
620
+ /**
621
+ * Swap input token to LST and mint apUSD
622
+ */
623
+ swapAndMintApUSD(params: SwapAndMintParams): Promise<Hash>;
624
+ /**
625
+ * Swap input token to LST and mint xBNB
626
+ */
627
+ swapAndMintXBNB(params: SwapAndMintParams): Promise<Hash>;
628
+ /**
629
+ * Stake native BNB directly to LST and mint
630
+ */
631
+ stakeAndMint(params: StakeAndMintParams): Promise<Hash>;
632
+ /**
633
+ * Swap input token and mint apUSD using default LST
634
+ */
635
+ swapAndMintApUSDDefault(params: SwapAndMintDefaultParams): Promise<Hash>;
636
+ /**
637
+ * Swap input token and mint xBNB using default LST
638
+ */
639
+ swapAndMintXBNBDefault(params: SwapAndMintDefaultParams): Promise<Hash>;
640
+ /**
641
+ * Stake native BNB and mint apUSD using default LST
642
+ */
643
+ stakeAndMintApUSD(minMintOut: bigint, value: bigint): Promise<Hash>;
644
+ /**
645
+ * Stake native BNB and mint xBNB using default LST
646
+ */
647
+ stakeAndMintXBNB(minMintOut: bigint, value: bigint): Promise<Hash>;
648
+ /**
649
+ * Mint apUSD by providing LST directly (no swap)
650
+ */
651
+ mintApUSD(params: RouterMintApUSDParams): Promise<Hash>;
652
+ /**
653
+ * Mint xBNB by providing LST directly (no swap)
654
+ */
655
+ mintXBNB(params: RouterMintXBNBParams): Promise<Hash>;
656
+ /**
657
+ * Redeem apUSD for LST (no swap)
658
+ */
659
+ redeemApUSD(params: RouterRedeemApUSDParams): Promise<Hash>;
660
+ /**
661
+ * Redeem xBNB for LST (no swap)
662
+ */
663
+ redeemXBNB(params: RouterRedeemXBNBParams): Promise<Hash>;
664
+ /**
665
+ * Redeem apUSD and swap LST to output token
666
+ */
667
+ redeemApUSDAndSwap(params: RouterRedeemAndSwapParams): Promise<Hash>;
668
+ /**
669
+ * Redeem xBNB and swap LST to output token
670
+ */
671
+ redeemXBNBAndSwap(params: RouterRedeemAndSwapParams): Promise<Hash>;
672
+ /**
673
+ * Redeem apUSD and instantly unstake LST to native BNB via DEX
674
+ */
675
+ redeemApUSDAndUnstake(params: RouterRedeemAndUnstakeParams): Promise<Hash>;
676
+ /**
677
+ * Redeem xBNB and instantly unstake LST to native BNB via DEX
678
+ */
679
+ redeemXBNBAndUnstake(params: RouterRedeemAndUnstakeParams): Promise<Hash>;
680
+ /**
681
+ * Redeem apUSD and request native unstake from Lista (starts unbonding period)
682
+ */
683
+ redeemApUSDAndRequestUnstake(apUSDAmount: bigint): Promise<Hash>;
684
+ /**
685
+ * Redeem xBNB and request native unstake from Lista (starts unbonding period)
686
+ */
687
+ redeemXBNBAndRequestUnstake(xBNBAmount: bigint): Promise<Hash>;
688
+ /**
689
+ * Claim BNB after unbonding period completes
690
+ */
691
+ claimUnstake(requestIndex: bigint): Promise<Hash>;
692
+ /**
693
+ * Wait for transaction confirmation
694
+ */
695
+ waitForTransaction(hash: Hash): Promise<viem.TransactionReceipt>;
696
+ }
697
+ /**
698
+ * Create a read-only router client for BSC mainnet
699
+ */
700
+ declare function createRouterReadClient(routerAddress: Address, rpcUrl?: string): AspanRouterReadClient;
701
+ /**
702
+ * Create a full router client for BSC mainnet
703
+ */
704
+ declare function createRouterClient(routerAddress: Address, account: Account, rpcUrl?: string): AspanRouterClient;
705
+ /**
706
+ * Create a read-only router client for BSC testnet
707
+ */
708
+ declare function createRouterTestnetReadClient(routerAddress: Address, rpcUrl?: string): AspanRouterReadClient;
709
+ /**
710
+ * Create a full router client for BSC testnet
711
+ */
712
+ declare function createRouterTestnetClient(routerAddress: Address, account: Account, rpcUrl?: string): AspanRouterClient;
713
+
361
714
  /**
362
715
  * Combined Diamond ABI - includes all facet functions
363
716
  * This ABI is used to interact with the Aspan Diamond contract
@@ -1297,6 +1650,835 @@ declare const DiamondABI: readonly [{
1297
1650
  readonly stateMutability: "view";
1298
1651
  }];
1299
1652
 
1653
+ /**
1654
+ * AspanRouter ABI
1655
+ * Periphery contract for one-click swap+mint operations
1656
+ */
1657
+ declare const RouterABI: readonly [{
1658
+ readonly type: "function";
1659
+ readonly name: "swapAndMintApUSD";
1660
+ readonly inputs: readonly [{
1661
+ readonly name: "swapParams";
1662
+ readonly type: "tuple";
1663
+ readonly components: readonly [{
1664
+ readonly name: "inputToken";
1665
+ readonly type: "address";
1666
+ }, {
1667
+ readonly name: "inputAmount";
1668
+ readonly type: "uint256";
1669
+ }, {
1670
+ readonly name: "targetLST";
1671
+ readonly type: "address";
1672
+ }, {
1673
+ readonly name: "minLSTOut";
1674
+ readonly type: "uint256";
1675
+ }, {
1676
+ readonly name: "poolFee";
1677
+ readonly type: "uint24";
1678
+ }, {
1679
+ readonly name: "useV2";
1680
+ readonly type: "bool";
1681
+ }];
1682
+ }, {
1683
+ readonly name: "mintParams";
1684
+ readonly type: "tuple";
1685
+ readonly components: readonly [{
1686
+ readonly name: "mintXBNB";
1687
+ readonly type: "bool";
1688
+ }, {
1689
+ readonly name: "minMintOut";
1690
+ readonly type: "uint256";
1691
+ }, {
1692
+ readonly name: "recipient";
1693
+ readonly type: "address";
1694
+ }, {
1695
+ readonly name: "deadline";
1696
+ readonly type: "uint256";
1697
+ }];
1698
+ }];
1699
+ readonly outputs: readonly [{
1700
+ readonly name: "lstAmount";
1701
+ readonly type: "uint256";
1702
+ }, {
1703
+ readonly name: "apUSDAmount";
1704
+ readonly type: "uint256";
1705
+ }];
1706
+ readonly stateMutability: "payable";
1707
+ }, {
1708
+ readonly type: "function";
1709
+ readonly name: "swapAndMintXBNB";
1710
+ readonly inputs: readonly [{
1711
+ readonly name: "swapParams";
1712
+ readonly type: "tuple";
1713
+ readonly components: readonly [{
1714
+ readonly name: "inputToken";
1715
+ readonly type: "address";
1716
+ }, {
1717
+ readonly name: "inputAmount";
1718
+ readonly type: "uint256";
1719
+ }, {
1720
+ readonly name: "targetLST";
1721
+ readonly type: "address";
1722
+ }, {
1723
+ readonly name: "minLSTOut";
1724
+ readonly type: "uint256";
1725
+ }, {
1726
+ readonly name: "poolFee";
1727
+ readonly type: "uint24";
1728
+ }, {
1729
+ readonly name: "useV2";
1730
+ readonly type: "bool";
1731
+ }];
1732
+ }, {
1733
+ readonly name: "mintParams";
1734
+ readonly type: "tuple";
1735
+ readonly components: readonly [{
1736
+ readonly name: "mintXBNB";
1737
+ readonly type: "bool";
1738
+ }, {
1739
+ readonly name: "minMintOut";
1740
+ readonly type: "uint256";
1741
+ }, {
1742
+ readonly name: "recipient";
1743
+ readonly type: "address";
1744
+ }, {
1745
+ readonly name: "deadline";
1746
+ readonly type: "uint256";
1747
+ }];
1748
+ }];
1749
+ readonly outputs: readonly [{
1750
+ readonly name: "lstAmount";
1751
+ readonly type: "uint256";
1752
+ }, {
1753
+ readonly name: "xBNBAmount";
1754
+ readonly type: "uint256";
1755
+ }];
1756
+ readonly stateMutability: "payable";
1757
+ }, {
1758
+ readonly type: "function";
1759
+ readonly name: "stakeAndMint";
1760
+ readonly inputs: readonly [{
1761
+ readonly name: "targetLST";
1762
+ readonly type: "address";
1763
+ }, {
1764
+ readonly name: "mintXBNB";
1765
+ readonly type: "bool";
1766
+ }, {
1767
+ readonly name: "minMintOut";
1768
+ readonly type: "uint256";
1769
+ }, {
1770
+ readonly name: "deadline";
1771
+ readonly type: "uint256";
1772
+ }];
1773
+ readonly outputs: readonly [{
1774
+ readonly name: "lstAmount";
1775
+ readonly type: "uint256";
1776
+ }, {
1777
+ readonly name: "mintedAmount";
1778
+ readonly type: "uint256";
1779
+ }];
1780
+ readonly stateMutability: "payable";
1781
+ }, {
1782
+ readonly type: "function";
1783
+ readonly name: "swapAndMintApUSDDefault";
1784
+ readonly inputs: readonly [{
1785
+ readonly name: "inputToken";
1786
+ readonly type: "address";
1787
+ }, {
1788
+ readonly name: "inputAmount";
1789
+ readonly type: "uint256";
1790
+ }, {
1791
+ readonly name: "minMintOut";
1792
+ readonly type: "uint256";
1793
+ }, {
1794
+ readonly name: "deadline";
1795
+ readonly type: "uint256";
1796
+ }];
1797
+ readonly outputs: readonly [{
1798
+ readonly name: "apUSDAmount";
1799
+ readonly type: "uint256";
1800
+ }];
1801
+ readonly stateMutability: "payable";
1802
+ }, {
1803
+ readonly type: "function";
1804
+ readonly name: "swapAndMintXBNBDefault";
1805
+ readonly inputs: readonly [{
1806
+ readonly name: "inputToken";
1807
+ readonly type: "address";
1808
+ }, {
1809
+ readonly name: "inputAmount";
1810
+ readonly type: "uint256";
1811
+ }, {
1812
+ readonly name: "minMintOut";
1813
+ readonly type: "uint256";
1814
+ }, {
1815
+ readonly name: "deadline";
1816
+ readonly type: "uint256";
1817
+ }];
1818
+ readonly outputs: readonly [{
1819
+ readonly name: "xBNBAmount";
1820
+ readonly type: "uint256";
1821
+ }];
1822
+ readonly stateMutability: "payable";
1823
+ }, {
1824
+ readonly type: "function";
1825
+ readonly name: "stakeAndMintApUSD";
1826
+ readonly inputs: readonly [{
1827
+ readonly name: "minMintOut";
1828
+ readonly type: "uint256";
1829
+ }];
1830
+ readonly outputs: readonly [{
1831
+ readonly name: "apUSDAmount";
1832
+ readonly type: "uint256";
1833
+ }];
1834
+ readonly stateMutability: "payable";
1835
+ }, {
1836
+ readonly type: "function";
1837
+ readonly name: "stakeAndMintXBNB";
1838
+ readonly inputs: readonly [{
1839
+ readonly name: "minMintOut";
1840
+ readonly type: "uint256";
1841
+ }];
1842
+ readonly outputs: readonly [{
1843
+ readonly name: "xBNBAmount";
1844
+ readonly type: "uint256";
1845
+ }];
1846
+ readonly stateMutability: "payable";
1847
+ }, {
1848
+ readonly type: "function";
1849
+ readonly name: "mintApUSD";
1850
+ readonly inputs: readonly [{
1851
+ readonly name: "lst";
1852
+ readonly type: "address";
1853
+ }, {
1854
+ readonly name: "lstAmount";
1855
+ readonly type: "uint256";
1856
+ }, {
1857
+ readonly name: "minOut";
1858
+ readonly type: "uint256";
1859
+ }];
1860
+ readonly outputs: readonly [{
1861
+ readonly name: "apUSDAmount";
1862
+ readonly type: "uint256";
1863
+ }];
1864
+ readonly stateMutability: "nonpayable";
1865
+ }, {
1866
+ readonly type: "function";
1867
+ readonly name: "mintXBNB";
1868
+ readonly inputs: readonly [{
1869
+ readonly name: "lst";
1870
+ readonly type: "address";
1871
+ }, {
1872
+ readonly name: "lstAmount";
1873
+ readonly type: "uint256";
1874
+ }, {
1875
+ readonly name: "minOut";
1876
+ readonly type: "uint256";
1877
+ }];
1878
+ readonly outputs: readonly [{
1879
+ readonly name: "xBNBAmount";
1880
+ readonly type: "uint256";
1881
+ }];
1882
+ readonly stateMutability: "nonpayable";
1883
+ }, {
1884
+ readonly type: "function";
1885
+ readonly name: "redeemApUSD";
1886
+ readonly inputs: readonly [{
1887
+ readonly name: "lst";
1888
+ readonly type: "address";
1889
+ }, {
1890
+ readonly name: "apUSDAmount";
1891
+ readonly type: "uint256";
1892
+ }, {
1893
+ readonly name: "minOut";
1894
+ readonly type: "uint256";
1895
+ }];
1896
+ readonly outputs: readonly [{
1897
+ readonly name: "lstAmount";
1898
+ readonly type: "uint256";
1899
+ }];
1900
+ readonly stateMutability: "nonpayable";
1901
+ }, {
1902
+ readonly type: "function";
1903
+ readonly name: "redeemXBNB";
1904
+ readonly inputs: readonly [{
1905
+ readonly name: "lst";
1906
+ readonly type: "address";
1907
+ }, {
1908
+ readonly name: "xBNBAmount";
1909
+ readonly type: "uint256";
1910
+ }, {
1911
+ readonly name: "minOut";
1912
+ readonly type: "uint256";
1913
+ }];
1914
+ readonly outputs: readonly [{
1915
+ readonly name: "lstAmount";
1916
+ readonly type: "uint256";
1917
+ }];
1918
+ readonly stateMutability: "nonpayable";
1919
+ }, {
1920
+ readonly type: "function";
1921
+ readonly name: "redeemApUSDAndSwap";
1922
+ readonly inputs: readonly [{
1923
+ readonly name: "lst";
1924
+ readonly type: "address";
1925
+ }, {
1926
+ readonly name: "apUSDAmount";
1927
+ readonly type: "uint256";
1928
+ }, {
1929
+ readonly name: "outputToken";
1930
+ readonly type: "address";
1931
+ }, {
1932
+ readonly name: "minOut";
1933
+ readonly type: "uint256";
1934
+ }, {
1935
+ readonly name: "deadline";
1936
+ readonly type: "uint256";
1937
+ }, {
1938
+ readonly name: "useV2";
1939
+ readonly type: "bool";
1940
+ }, {
1941
+ readonly name: "poolFee";
1942
+ readonly type: "uint24";
1943
+ }];
1944
+ readonly outputs: readonly [{
1945
+ readonly name: "outputAmount";
1946
+ readonly type: "uint256";
1947
+ }];
1948
+ readonly stateMutability: "nonpayable";
1949
+ }, {
1950
+ readonly type: "function";
1951
+ readonly name: "redeemXBNBAndSwap";
1952
+ readonly inputs: readonly [{
1953
+ readonly name: "lst";
1954
+ readonly type: "address";
1955
+ }, {
1956
+ readonly name: "xBNBAmount";
1957
+ readonly type: "uint256";
1958
+ }, {
1959
+ readonly name: "outputToken";
1960
+ readonly type: "address";
1961
+ }, {
1962
+ readonly name: "minOut";
1963
+ readonly type: "uint256";
1964
+ }, {
1965
+ readonly name: "deadline";
1966
+ readonly type: "uint256";
1967
+ }, {
1968
+ readonly name: "useV2";
1969
+ readonly type: "bool";
1970
+ }, {
1971
+ readonly name: "poolFee";
1972
+ readonly type: "uint24";
1973
+ }];
1974
+ readonly outputs: readonly [{
1975
+ readonly name: "outputAmount";
1976
+ readonly type: "uint256";
1977
+ }];
1978
+ readonly stateMutability: "nonpayable";
1979
+ }, {
1980
+ readonly type: "function";
1981
+ readonly name: "redeemApUSDAndUnstake";
1982
+ readonly inputs: readonly [{
1983
+ readonly name: "lst";
1984
+ readonly type: "address";
1985
+ }, {
1986
+ readonly name: "apUSDAmount";
1987
+ readonly type: "uint256";
1988
+ }, {
1989
+ readonly name: "minBNBOut";
1990
+ readonly type: "uint256";
1991
+ }, {
1992
+ readonly name: "deadline";
1993
+ readonly type: "uint256";
1994
+ }];
1995
+ readonly outputs: readonly [{
1996
+ readonly name: "bnbAmount";
1997
+ readonly type: "uint256";
1998
+ }];
1999
+ readonly stateMutability: "nonpayable";
2000
+ }, {
2001
+ readonly type: "function";
2002
+ readonly name: "redeemXBNBAndUnstake";
2003
+ readonly inputs: readonly [{
2004
+ readonly name: "lst";
2005
+ readonly type: "address";
2006
+ }, {
2007
+ readonly name: "xBNBAmount";
2008
+ readonly type: "uint256";
2009
+ }, {
2010
+ readonly name: "minBNBOut";
2011
+ readonly type: "uint256";
2012
+ }, {
2013
+ readonly name: "deadline";
2014
+ readonly type: "uint256";
2015
+ }];
2016
+ readonly outputs: readonly [{
2017
+ readonly name: "bnbAmount";
2018
+ readonly type: "uint256";
2019
+ }];
2020
+ readonly stateMutability: "nonpayable";
2021
+ }, {
2022
+ readonly type: "function";
2023
+ readonly name: "redeemApUSDAndRequestUnstake";
2024
+ readonly inputs: readonly [{
2025
+ readonly name: "apUSDAmount";
2026
+ readonly type: "uint256";
2027
+ }];
2028
+ readonly outputs: readonly [{
2029
+ readonly name: "requestIndex";
2030
+ readonly type: "uint256";
2031
+ }, {
2032
+ readonly name: "slisBNBAmount";
2033
+ readonly type: "uint256";
2034
+ }];
2035
+ readonly stateMutability: "nonpayable";
2036
+ }, {
2037
+ readonly type: "function";
2038
+ readonly name: "redeemXBNBAndRequestUnstake";
2039
+ readonly inputs: readonly [{
2040
+ readonly name: "xBNBAmount";
2041
+ readonly type: "uint256";
2042
+ }];
2043
+ readonly outputs: readonly [{
2044
+ readonly name: "requestIndex";
2045
+ readonly type: "uint256";
2046
+ }, {
2047
+ readonly name: "slisBNBAmount";
2048
+ readonly type: "uint256";
2049
+ }];
2050
+ readonly stateMutability: "nonpayable";
2051
+ }, {
2052
+ readonly type: "function";
2053
+ readonly name: "claimUnstake";
2054
+ readonly inputs: readonly [{
2055
+ readonly name: "requestIndex";
2056
+ readonly type: "uint256";
2057
+ }];
2058
+ readonly outputs: readonly [{
2059
+ readonly name: "bnbAmount";
2060
+ readonly type: "uint256";
2061
+ }];
2062
+ readonly stateMutability: "nonpayable";
2063
+ }, {
2064
+ readonly type: "function";
2065
+ readonly name: "defaultLST";
2066
+ readonly inputs: readonly [];
2067
+ readonly outputs: readonly [{
2068
+ readonly name: "";
2069
+ readonly type: "address";
2070
+ }];
2071
+ readonly stateMutability: "view";
2072
+ }, {
2073
+ readonly type: "function";
2074
+ readonly name: "supportedInputTokens";
2075
+ readonly inputs: readonly [{
2076
+ readonly name: "token";
2077
+ readonly type: "address";
2078
+ }];
2079
+ readonly outputs: readonly [{
2080
+ readonly name: "";
2081
+ readonly type: "bool";
2082
+ }];
2083
+ readonly stateMutability: "view";
2084
+ }, {
2085
+ readonly type: "function";
2086
+ readonly name: "supportedLSTs";
2087
+ readonly inputs: readonly [{
2088
+ readonly name: "lst";
2089
+ readonly type: "address";
2090
+ }];
2091
+ readonly outputs: readonly [{
2092
+ readonly name: "";
2093
+ readonly type: "bool";
2094
+ }];
2095
+ readonly stateMutability: "view";
2096
+ }, {
2097
+ readonly type: "function";
2098
+ readonly name: "diamond";
2099
+ readonly inputs: readonly [];
2100
+ readonly outputs: readonly [{
2101
+ readonly name: "";
2102
+ readonly type: "address";
2103
+ }];
2104
+ readonly stateMutability: "view";
2105
+ }, {
2106
+ readonly type: "function";
2107
+ readonly name: "getExpectedOutput";
2108
+ readonly inputs: readonly [{
2109
+ readonly name: "inputToken";
2110
+ readonly type: "address";
2111
+ }, {
2112
+ readonly name: "inputAmount";
2113
+ readonly type: "uint256";
2114
+ }, {
2115
+ readonly name: "targetLST";
2116
+ readonly type: "address";
2117
+ }, {
2118
+ readonly name: "mintXBNB";
2119
+ readonly type: "bool";
2120
+ }];
2121
+ readonly outputs: readonly [{
2122
+ readonly name: "expectedLST";
2123
+ readonly type: "uint256";
2124
+ }, {
2125
+ readonly name: "expectedMint";
2126
+ readonly type: "uint256";
2127
+ }];
2128
+ readonly stateMutability: "view";
2129
+ }, {
2130
+ readonly type: "function";
2131
+ readonly name: "getUserWithdrawalIndices";
2132
+ readonly inputs: readonly [{
2133
+ readonly name: "user";
2134
+ readonly type: "address";
2135
+ }];
2136
+ readonly outputs: readonly [{
2137
+ readonly name: "";
2138
+ readonly type: "uint256[]";
2139
+ }];
2140
+ readonly stateMutability: "view";
2141
+ }, {
2142
+ readonly type: "function";
2143
+ readonly name: "getWithdrawalStatus";
2144
+ readonly inputs: readonly [{
2145
+ readonly name: "requestIndex";
2146
+ readonly type: "uint256";
2147
+ }];
2148
+ readonly outputs: readonly [{
2149
+ readonly name: "isClaimable";
2150
+ readonly type: "bool";
2151
+ }, {
2152
+ readonly name: "bnbAmount";
2153
+ readonly type: "uint256";
2154
+ }];
2155
+ readonly stateMutability: "view";
2156
+ }, {
2157
+ readonly type: "function";
2158
+ readonly name: "wbnb";
2159
+ readonly inputs: readonly [];
2160
+ readonly outputs: readonly [{
2161
+ readonly name: "";
2162
+ readonly type: "address";
2163
+ }];
2164
+ readonly stateMutability: "view";
2165
+ }, {
2166
+ readonly type: "function";
2167
+ readonly name: "usdt";
2168
+ readonly inputs: readonly [];
2169
+ readonly outputs: readonly [{
2170
+ readonly name: "";
2171
+ readonly type: "address";
2172
+ }];
2173
+ readonly stateMutability: "view";
2174
+ }, {
2175
+ readonly type: "function";
2176
+ readonly name: "usdc";
2177
+ readonly inputs: readonly [];
2178
+ readonly outputs: readonly [{
2179
+ readonly name: "";
2180
+ readonly type: "address";
2181
+ }];
2182
+ readonly stateMutability: "view";
2183
+ }, {
2184
+ readonly type: "function";
2185
+ readonly name: "slisBNB";
2186
+ readonly inputs: readonly [];
2187
+ readonly outputs: readonly [{
2188
+ readonly name: "";
2189
+ readonly type: "address";
2190
+ }];
2191
+ readonly stateMutability: "view";
2192
+ }, {
2193
+ readonly type: "function";
2194
+ readonly name: "asBNB";
2195
+ readonly inputs: readonly [];
2196
+ readonly outputs: readonly [{
2197
+ readonly name: "";
2198
+ readonly type: "address";
2199
+ }];
2200
+ readonly stateMutability: "view";
2201
+ }, {
2202
+ readonly type: "function";
2203
+ readonly name: "wclisBNB";
2204
+ readonly inputs: readonly [];
2205
+ readonly outputs: readonly [{
2206
+ readonly name: "";
2207
+ readonly type: "address";
2208
+ }];
2209
+ readonly stateMutability: "view";
2210
+ }, {
2211
+ readonly type: "function";
2212
+ readonly name: "apUSD";
2213
+ readonly inputs: readonly [];
2214
+ readonly outputs: readonly [{
2215
+ readonly name: "";
2216
+ readonly type: "address";
2217
+ }];
2218
+ readonly stateMutability: "view";
2219
+ }, {
2220
+ readonly type: "function";
2221
+ readonly name: "xBNB";
2222
+ readonly inputs: readonly [];
2223
+ readonly outputs: readonly [{
2224
+ readonly name: "";
2225
+ readonly type: "address";
2226
+ }];
2227
+ readonly stateMutability: "view";
2228
+ }, {
2229
+ readonly type: "event";
2230
+ readonly name: "SwapAndMint";
2231
+ readonly inputs: readonly [{
2232
+ readonly name: "user";
2233
+ readonly type: "address";
2234
+ readonly indexed: true;
2235
+ }, {
2236
+ readonly name: "inputToken";
2237
+ readonly type: "address";
2238
+ readonly indexed: true;
2239
+ }, {
2240
+ readonly name: "inputAmount";
2241
+ readonly type: "uint256";
2242
+ readonly indexed: false;
2243
+ }, {
2244
+ readonly name: "targetLST";
2245
+ readonly type: "address";
2246
+ readonly indexed: true;
2247
+ }, {
2248
+ readonly name: "lstAmount";
2249
+ readonly type: "uint256";
2250
+ readonly indexed: false;
2251
+ }, {
2252
+ readonly name: "mintedToken";
2253
+ readonly type: "address";
2254
+ readonly indexed: false;
2255
+ }, {
2256
+ readonly name: "mintedAmount";
2257
+ readonly type: "uint256";
2258
+ readonly indexed: false;
2259
+ }];
2260
+ }, {
2261
+ readonly type: "event";
2262
+ readonly name: "StakeAndMint";
2263
+ readonly inputs: readonly [{
2264
+ readonly name: "user";
2265
+ readonly type: "address";
2266
+ readonly indexed: true;
2267
+ }, {
2268
+ readonly name: "bnbAmount";
2269
+ readonly type: "uint256";
2270
+ readonly indexed: false;
2271
+ }, {
2272
+ readonly name: "targetLST";
2273
+ readonly type: "address";
2274
+ readonly indexed: true;
2275
+ }, {
2276
+ readonly name: "lstAmount";
2277
+ readonly type: "uint256";
2278
+ readonly indexed: false;
2279
+ }, {
2280
+ readonly name: "mintedToken";
2281
+ readonly type: "address";
2282
+ readonly indexed: true;
2283
+ }, {
2284
+ readonly name: "mintedAmount";
2285
+ readonly type: "uint256";
2286
+ readonly indexed: false;
2287
+ }];
2288
+ }, {
2289
+ readonly type: "event";
2290
+ readonly name: "Mint";
2291
+ readonly inputs: readonly [{
2292
+ readonly name: "user";
2293
+ readonly type: "address";
2294
+ readonly indexed: true;
2295
+ }, {
2296
+ readonly name: "lst";
2297
+ readonly type: "address";
2298
+ readonly indexed: true;
2299
+ }, {
2300
+ readonly name: "lstAmount";
2301
+ readonly type: "uint256";
2302
+ readonly indexed: false;
2303
+ }, {
2304
+ readonly name: "mintedToken";
2305
+ readonly type: "address";
2306
+ readonly indexed: true;
2307
+ }, {
2308
+ readonly name: "mintedAmount";
2309
+ readonly type: "uint256";
2310
+ readonly indexed: false;
2311
+ }];
2312
+ }, {
2313
+ readonly type: "event";
2314
+ readonly name: "Redeem";
2315
+ readonly inputs: readonly [{
2316
+ readonly name: "user";
2317
+ readonly type: "address";
2318
+ readonly indexed: true;
2319
+ }, {
2320
+ readonly name: "redeemedToken";
2321
+ readonly type: "address";
2322
+ readonly indexed: true;
2323
+ }, {
2324
+ readonly name: "redeemedAmount";
2325
+ readonly type: "uint256";
2326
+ readonly indexed: false;
2327
+ }, {
2328
+ readonly name: "lst";
2329
+ readonly type: "address";
2330
+ readonly indexed: true;
2331
+ }, {
2332
+ readonly name: "lstAmount";
2333
+ readonly type: "uint256";
2334
+ readonly indexed: false;
2335
+ }];
2336
+ }, {
2337
+ readonly type: "event";
2338
+ readonly name: "RedeemAndSwap";
2339
+ readonly inputs: readonly [{
2340
+ readonly name: "user";
2341
+ readonly type: "address";
2342
+ readonly indexed: true;
2343
+ }, {
2344
+ readonly name: "redeemedToken";
2345
+ readonly type: "address";
2346
+ readonly indexed: false;
2347
+ }, {
2348
+ readonly name: "redeemedAmount";
2349
+ readonly type: "uint256";
2350
+ readonly indexed: false;
2351
+ }, {
2352
+ readonly name: "lst";
2353
+ readonly type: "address";
2354
+ readonly indexed: false;
2355
+ }, {
2356
+ readonly name: "lstAmount";
2357
+ readonly type: "uint256";
2358
+ readonly indexed: false;
2359
+ }, {
2360
+ readonly name: "outputToken";
2361
+ readonly type: "address";
2362
+ readonly indexed: true;
2363
+ }, {
2364
+ readonly name: "outputAmount";
2365
+ readonly type: "uint256";
2366
+ readonly indexed: false;
2367
+ }];
2368
+ }, {
2369
+ readonly type: "event";
2370
+ readonly name: "UnstakeRequested";
2371
+ readonly inputs: readonly [{
2372
+ readonly name: "user";
2373
+ readonly type: "address";
2374
+ readonly indexed: true;
2375
+ }, {
2376
+ readonly name: "requestIndex";
2377
+ readonly type: "uint256";
2378
+ readonly indexed: true;
2379
+ }, {
2380
+ readonly name: "redeemedToken";
2381
+ readonly type: "address";
2382
+ readonly indexed: false;
2383
+ }, {
2384
+ readonly name: "redeemedAmount";
2385
+ readonly type: "uint256";
2386
+ readonly indexed: false;
2387
+ }, {
2388
+ readonly name: "slisBNBAmount";
2389
+ readonly type: "uint256";
2390
+ readonly indexed: false;
2391
+ }];
2392
+ }, {
2393
+ readonly type: "event";
2394
+ readonly name: "UnstakeClaimed";
2395
+ readonly inputs: readonly [{
2396
+ readonly name: "user";
2397
+ readonly type: "address";
2398
+ readonly indexed: true;
2399
+ }, {
2400
+ readonly name: "requestIndex";
2401
+ readonly type: "uint256";
2402
+ readonly indexed: true;
2403
+ }, {
2404
+ readonly name: "bnbAmount";
2405
+ readonly type: "uint256";
2406
+ readonly indexed: false;
2407
+ }];
2408
+ }, {
2409
+ readonly type: "event";
2410
+ readonly name: "DefaultLSTUpdated";
2411
+ readonly inputs: readonly [{
2412
+ readonly name: "oldLST";
2413
+ readonly type: "address";
2414
+ readonly indexed: true;
2415
+ }, {
2416
+ readonly name: "newLST";
2417
+ readonly type: "address";
2418
+ readonly indexed: true;
2419
+ }];
2420
+ }, {
2421
+ readonly type: "error";
2422
+ readonly name: "UnsupportedInputToken";
2423
+ readonly inputs: readonly [];
2424
+ }, {
2425
+ readonly type: "error";
2426
+ readonly name: "UnsupportedLST";
2427
+ readonly inputs: readonly [];
2428
+ }, {
2429
+ readonly type: "error";
2430
+ readonly name: "DeadlineExpired";
2431
+ readonly inputs: readonly [];
2432
+ }, {
2433
+ readonly type: "error";
2434
+ readonly name: "InsufficientOutput";
2435
+ readonly inputs: readonly [];
2436
+ }, {
2437
+ readonly type: "error";
2438
+ readonly name: "ZeroAmount";
2439
+ readonly inputs: readonly [];
2440
+ }, {
2441
+ readonly type: "error";
2442
+ readonly name: "InvalidRecipient";
2443
+ readonly inputs: readonly [];
2444
+ }, {
2445
+ readonly type: "error";
2446
+ readonly name: "SwapFailed";
2447
+ readonly inputs: readonly [];
2448
+ }, {
2449
+ readonly type: "error";
2450
+ readonly name: "MintFailed";
2451
+ readonly inputs: readonly [];
2452
+ }, {
2453
+ readonly type: "error";
2454
+ readonly name: "NativeTransferFailed";
2455
+ readonly inputs: readonly [];
2456
+ }, {
2457
+ readonly type: "error";
2458
+ readonly name: "InvalidPoolFee";
2459
+ readonly inputs: readonly [];
2460
+ }, {
2461
+ readonly type: "error";
2462
+ readonly name: "DefaultLSTNotSet";
2463
+ readonly inputs: readonly [];
2464
+ }, {
2465
+ readonly type: "error";
2466
+ readonly name: "InvalidWithdrawalRequest";
2467
+ readonly inputs: readonly [];
2468
+ }, {
2469
+ readonly type: "error";
2470
+ readonly name: "WithdrawalNotClaimable";
2471
+ readonly inputs: readonly [];
2472
+ }, {
2473
+ readonly type: "error";
2474
+ readonly name: "WithdrawalAlreadyClaimed";
2475
+ readonly inputs: readonly [];
2476
+ }, {
2477
+ readonly type: "error";
2478
+ readonly name: "OnlySlisBNBSupported";
2479
+ readonly inputs: readonly [];
2480
+ }];
2481
+
1300
2482
  /**
1301
2483
  * Aspan SDK
1302
2484
  * TypeScript SDK for interacting with the Aspan Protocol on BNB Chain
@@ -1347,4 +2529,4 @@ declare function formatPriceUSD(price: bigint): string;
1347
2529
  */
1348
2530
  declare function calculateAPY(previousRate: bigint, currentRate: bigint, periodDays: number): number;
1349
2531
 
1350
- export { type ApUSDMintedEvent, type ApUSDRedeemedEvent, AspanClient, type AspanClientConfig, AspanReadClient, type AspanWriteClientConfig, BPS_PRECISION, type BigIntString, type CurrentFeeTier, type CurrentFees, type DepositParams, type DepositedEvent, DiamondABI, type FeeTier, type LSTInfo, type LSTYieldInfo, type MintApUSDParams, type MintXBNBParams, type OracleBounds, PRECISION, PRICE_PRECISION, type ProtocolStats, type RedeemApUSDParams, type RedeemXBNBParams, type StabilityMode2Info, type StabilityModeInfo, type StabilityPoolStats, type TokenAddresses, type TransactionReceipt, type TransactionResult, type UserStabilityPoolPosition, type WithdrawAssetsParams, type WithdrawParams, type WithdrawnEvent, type XBNBMintedEvent, type XBNBRedeemedEvent, type YieldHarvestedEvent, type YieldStats, calculateAPY, createAspanClient, createAspanReadClient, createAspanTestnetClient, createAspanTestnetReadClient, formatAmount, formatCR, formatFeeBPS, formatPriceUSD, parseAmount };
2532
+ export { type ApUSDMintedEvent, type ApUSDRedeemedEvent, AspanClient, type AspanClientConfig, AspanReadClient, AspanRouterClient, type AspanRouterClientConfig, AspanRouterReadClient, type AspanRouterWriteClientConfig, type AspanWriteClientConfig, BPS_PRECISION, type BigIntString, type CurrentFeeTier, type CurrentFees, type DepositParams, type DepositedEvent, DiamondABI, type ExpectedOutput, type FeeTier, type LSTInfo, type LSTYieldInfo, type MintApUSDParams, type MintXBNBParams, type OracleBounds, PRECISION, PRICE_PRECISION, type ProtocolStats, type RedeemAndSwapEvent, type RedeemApUSDParams, type RedeemXBNBParams, RouterABI, type RouterMintApUSDParams, type RouterMintEvent, type RouterMintParams, type RouterMintXBNBParams, type RouterRedeemAndSwapParams, type RouterRedeemAndUnstakeParams, type RouterRedeemApUSDParams, type RouterRedeemEvent, type RouterRedeemXBNBParams, type RouterSwapParams, type StabilityMode2Info, type StabilityModeInfo, type StabilityPoolStats, type StakeAndMintEvent, type StakeAndMintParams, type SwapAndMintDefaultParams, type SwapAndMintEvent, type SwapAndMintParams, type TokenAddresses, type TransactionReceipt, type TransactionResult, type UnstakeClaimedEvent, type UnstakeRequestedEvent, type UserStabilityPoolPosition, type WithdrawAssetsParams, type WithdrawParams, type WithdrawalRequestInfo, type WithdrawnEvent, type XBNBMintedEvent, type XBNBRedeemedEvent, type YieldHarvestedEvent, type YieldStats, calculateAPY, createAspanClient, createAspanReadClient, createAspanTestnetClient, createAspanTestnetReadClient, createRouterClient, createRouterReadClient, createRouterTestnetClient, createRouterTestnetReadClient, formatAmount, formatCR, formatFeeBPS, formatPriceUSD, parseAmount };