@mento-protocol/mento-sdk 3.0.0-beta.3 → 3.0.0-beta.30
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/README.md +132 -275
- package/dist/cache/routes.d.ts +13 -0
- package/dist/cache/routes.d.ts.map +1 -0
- package/dist/cache/routes.js +11483 -0
- package/dist/cache/routes.js.map +1 -0
- package/dist/cache/tokens.d.ts +67 -0
- package/dist/cache/tokens.d.ts.map +1 -0
- package/dist/cache/tokens.js +379 -0
- package/dist/cache/tokens.js.map +1 -0
- package/dist/core/abis/activePool.d.ts +2 -0
- package/dist/core/abis/activePool.d.ts.map +1 -0
- package/dist/core/abis/activePool.js +14 -0
- package/dist/core/abis/activePool.js.map +1 -0
- package/dist/core/abis/addressesRegistry.d.ts +2 -0
- package/dist/core/abis/addressesRegistry.d.ts.map +1 -0
- package/dist/core/abis/addressesRegistry.js +26 -0
- package/dist/core/abis/addressesRegistry.js.map +1 -0
- package/dist/core/abis/borrowerOperations.d.ts +9 -0
- package/dist/core/abis/borrowerOperations.d.ts.map +1 -0
- package/dist/core/abis/borrowerOperations.js +89 -0
- package/dist/core/abis/borrowerOperations.js.map +1 -0
- package/dist/core/abis/breakerbox.d.ts +13 -0
- package/dist/core/abis/breakerbox.d.ts.map +1 -0
- package/dist/core/abis/breakerbox.js +8 -0
- package/dist/core/abis/breakerbox.js.map +1 -0
- package/dist/core/abis/erc20.d.ts +7 -0
- package/dist/core/abis/erc20.d.ts.map +1 -1
- package/dist/core/abis/erc20.js +7 -0
- package/dist/core/abis/erc20.js.map +1 -1
- package/dist/core/abis/fpmm.d.ts +236 -0
- package/dist/core/abis/fpmm.d.ts.map +1 -1
- package/dist/core/abis/fpmm.js +38 -0
- package/dist/core/abis/fpmm.js.map +1 -1
- package/dist/core/abis/fpmmFactory.d.ts +64 -0
- package/dist/core/abis/fpmmFactory.d.ts.map +1 -1
- package/dist/core/abis/fpmmFactory.js +17 -0
- package/dist/core/abis/fpmmFactory.js.map +1 -1
- package/dist/core/abis/hintHelpers.d.ts +2 -0
- package/dist/core/abis/hintHelpers.d.ts.map +1 -0
- package/dist/core/abis/hintHelpers.js +14 -0
- package/dist/core/abis/hintHelpers.js.map +1 -0
- package/dist/core/abis/index.d.ts +12 -1
- package/dist/core/abis/index.d.ts.map +1 -1
- package/dist/core/abis/index.js +12 -1
- package/dist/core/abis/index.js.map +1 -1
- package/dist/core/abis/multiTroveGetter.d.ts +8 -0
- package/dist/core/abis/multiTroveGetter.d.ts.map +1 -0
- package/dist/core/abis/multiTroveGetter.js +15 -0
- package/dist/core/abis/multiTroveGetter.js.map +1 -0
- package/dist/core/abis/priceFeed.d.ts +7 -0
- package/dist/core/abis/priceFeed.d.ts.map +1 -0
- package/dist/core/abis/priceFeed.js +16 -0
- package/dist/core/abis/priceFeed.js.map +1 -0
- package/dist/core/abis/router.d.ts +520 -1
- package/dist/core/abis/router.d.ts.map +1 -1
- package/dist/core/abis/router.js +35 -0
- package/dist/core/abis/router.js.map +1 -1
- package/dist/core/abis/sortedTroves.d.ts +2 -0
- package/dist/core/abis/sortedTroves.d.ts.map +1 -0
- package/dist/core/abis/sortedTroves.js +15 -0
- package/dist/core/abis/sortedTroves.js.map +1 -0
- package/dist/core/abis/systemParams.d.ts +2 -0
- package/dist/core/abis/systemParams.d.ts.map +1 -0
- package/dist/core/abis/systemParams.js +14 -0
- package/dist/core/abis/systemParams.js.map +1 -0
- package/dist/core/abis/troveManager.d.ts +2 -0
- package/dist/core/abis/troveManager.d.ts.map +1 -0
- package/dist/core/abis/troveManager.js +27 -0
- package/dist/core/abis/troveManager.js.map +1 -0
- package/dist/core/abis/troveNFT.d.ts +2 -0
- package/dist/core/abis/troveNFT.d.ts.map +1 -0
- package/dist/core/abis/troveNFT.js +9 -0
- package/dist/core/abis/troveNFT.js.map +1 -0
- package/dist/core/abis/virtualPool.d.ts +40 -0
- package/dist/core/abis/virtualPool.d.ts.map +1 -1
- package/dist/core/abis/virtualPool.js +6 -1
- package/dist/core/abis/virtualPool.js.map +1 -1
- package/dist/core/abis/virtualPoolFactory.d.ts +32 -0
- package/dist/core/abis/virtualPoolFactory.d.ts.map +1 -1
- package/dist/core/abis/virtualPoolFactory.js +8 -0
- package/dist/core/abis/virtualPoolFactory.js.map +1 -1
- package/dist/core/constants/addresses.d.ts.map +1 -1
- package/dist/core/constants/addresses.js +14 -4
- package/dist/core/constants/addresses.js.map +1 -1
- package/dist/core/constants/borrowConstants.d.ts +10 -0
- package/dist/core/constants/borrowConstants.d.ts.map +1 -0
- package/dist/core/constants/borrowConstants.js +16 -0
- package/dist/core/constants/borrowConstants.js.map +1 -0
- package/dist/core/constants/borrowRegistries.d.ts +7 -0
- package/dist/core/constants/borrowRegistries.d.ts.map +1 -0
- package/dist/core/constants/borrowRegistries.js +31 -0
- package/dist/core/constants/borrowRegistries.js.map +1 -0
- package/dist/core/constants/index.d.ts +2 -3
- package/dist/core/constants/index.d.ts.map +1 -1
- package/dist/core/constants/index.js +2 -3
- package/dist/core/constants/index.js.map +1 -1
- package/dist/core/errors/index.d.ts +1 -0
- package/dist/core/errors/index.d.ts.map +1 -1
- package/dist/core/errors/index.js +1 -0
- package/dist/core/errors/index.js.map +1 -1
- package/dist/core/errors/oracle.d.ts +9 -0
- package/dist/core/errors/oracle.d.ts.map +1 -0
- package/dist/core/errors/oracle.js +15 -0
- package/dist/core/errors/oracle.js.map +1 -0
- package/dist/core/errors/router.d.ts +6 -0
- package/dist/core/errors/router.d.ts.map +1 -1
- package/dist/core/errors/router.js +11 -1
- package/dist/core/errors/router.js.map +1 -1
- package/dist/core/types/borrow.d.ts +87 -0
- package/dist/core/types/borrow.d.ts.map +1 -0
- package/dist/{services/tokens/supply/ISupplyCalculator.js → core/types/borrow.js} +1 -1
- package/dist/core/types/borrow.js.map +1 -0
- package/dist/core/types/contractAddresses.d.ts +2 -0
- package/dist/core/types/contractAddresses.d.ts.map +1 -1
- package/dist/core/types/index.d.ts +5 -1
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +5 -1
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/liquidity.d.ts +117 -0
- package/dist/core/types/liquidity.d.ts.map +1 -0
- package/dist/{services/tokens/supply/calculatorFactory.js → core/types/liquidity.js} +1 -1
- package/dist/core/types/liquidity.js.map +1 -0
- package/dist/core/types/pool.d.ts +110 -0
- package/dist/core/types/pool.d.ts.map +1 -1
- package/dist/core/types/provider.d.ts.map +1 -1
- package/dist/core/types/provider.js +0 -1
- package/dist/core/types/provider.js.map +1 -1
- package/dist/core/types/route.d.ts +3 -3
- package/dist/core/types/route.d.ts.map +1 -1
- package/dist/core/types/token.d.ts +13 -17
- package/dist/core/types/token.d.ts.map +1 -1
- package/dist/core/types/tradingLimits.d.ts +91 -0
- package/dist/core/types/tradingLimits.d.ts.map +1 -0
- package/dist/core/types/tradingLimits.js +3 -0
- package/dist/core/types/tradingLimits.js.map +1 -0
- package/dist/core/types/tradingMode.d.ts +24 -0
- package/dist/core/types/tradingMode.d.ts.map +1 -0
- package/dist/core/types/tradingMode.js +31 -0
- package/dist/core/types/tradingMode.js.map +1 -0
- package/dist/core/types/transaction.d.ts +45 -0
- package/dist/core/types/transaction.d.ts.map +1 -0
- package/dist/core/types/transaction.js +3 -0
- package/dist/core/types/transaction.js.map +1 -0
- package/dist/index.d.ts +29 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -5
- package/dist/index.js.map +1 -1
- package/dist/services/borrow/BorrowService.d.ts +54 -0
- package/dist/services/borrow/BorrowService.d.ts.map +1 -0
- package/dist/services/borrow/BorrowService.js +129 -0
- package/dist/services/borrow/BorrowService.js.map +1 -0
- package/dist/services/borrow/borrowHelpers.d.ts +4 -0
- package/dist/services/borrow/borrowHelpers.d.ts.map +1 -0
- package/dist/services/borrow/borrowHelpers.js +13 -0
- package/dist/services/borrow/borrowHelpers.js.map +1 -0
- package/dist/services/borrow/borrowMath.d.ts +13 -0
- package/dist/services/borrow/borrowMath.d.ts.map +1 -0
- package/dist/services/borrow/borrowMath.js +129 -0
- package/dist/services/borrow/borrowMath.js.map +1 -0
- package/dist/services/borrow/index.d.ts +2 -0
- package/dist/services/borrow/index.d.ts.map +1 -0
- package/dist/services/{tokens/supply → borrow}/index.js +1 -6
- package/dist/services/borrow/index.js.map +1 -0
- package/dist/services/borrow/internal/borrowApprovalService.d.ts +14 -0
- package/dist/services/borrow/internal/borrowApprovalService.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowApprovalService.js +53 -0
- package/dist/services/borrow/internal/borrowApprovalService.js.map +1 -0
- package/dist/services/borrow/internal/borrowContextStore.d.ts +11 -0
- package/dist/services/borrow/internal/borrowContextStore.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowContextStore.js +40 -0
- package/dist/services/borrow/internal/borrowContextStore.js.map +1 -0
- package/dist/services/borrow/internal/borrowErc20.d.ts +5 -0
- package/dist/services/borrow/internal/borrowErc20.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowErc20.js +43 -0
- package/dist/services/borrow/internal/borrowErc20.js.map +1 -0
- package/dist/services/borrow/internal/borrowHints.d.ts +7 -0
- package/dist/services/borrow/internal/borrowHints.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowHints.js +31 -0
- package/dist/services/borrow/internal/borrowHints.js.map +1 -0
- package/dist/services/borrow/internal/borrowPositionParser.d.ts +4 -0
- package/dist/services/borrow/internal/borrowPositionParser.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowPositionParser.js +87 -0
- package/dist/services/borrow/internal/borrowPositionParser.js.map +1 -0
- package/dist/services/borrow/internal/borrowReadService.d.ts +28 -0
- package/dist/services/borrow/internal/borrowReadService.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowReadService.js +218 -0
- package/dist/services/borrow/internal/borrowReadService.js.map +1 -0
- package/dist/services/borrow/internal/borrowRegistryReader.d.ts +5 -0
- package/dist/services/borrow/internal/borrowRegistryReader.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowRegistryReader.js +96 -0
- package/dist/services/borrow/internal/borrowRegistryReader.js.map +1 -0
- package/dist/services/borrow/internal/borrowTransactionService.d.ts +23 -0
- package/dist/services/borrow/internal/borrowTransactionService.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowTransactionService.js +276 -0
- package/dist/services/borrow/internal/borrowTransactionService.js.map +1 -0
- package/dist/services/borrow/internal/borrowTypes.d.ts +15 -0
- package/dist/services/borrow/internal/borrowTypes.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowTypes.js +3 -0
- package/dist/services/borrow/internal/borrowTypes.js.map +1 -0
- package/dist/services/borrow/internal/borrowValidation.d.ts +13 -0
- package/dist/services/borrow/internal/borrowValidation.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowValidation.js +96 -0
- package/dist/services/borrow/internal/borrowValidation.js.map +1 -0
- package/dist/services/index.d.ts +2 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/liquidity/LiquidityService.d.ts +154 -0
- package/dist/services/liquidity/LiquidityService.d.ts.map +1 -0
- package/dist/services/liquidity/LiquidityService.js +184 -0
- package/dist/services/liquidity/LiquidityService.js.map +1 -0
- package/dist/services/liquidity/basicLiquidity.d.ts +11 -0
- package/dist/services/liquidity/basicLiquidity.d.ts.map +1 -0
- package/dist/services/liquidity/basicLiquidity.js +172 -0
- package/dist/services/liquidity/basicLiquidity.js.map +1 -0
- package/dist/services/liquidity/index.d.ts +2 -0
- package/dist/services/liquidity/index.d.ts.map +1 -0
- package/dist/services/liquidity/index.js +18 -0
- package/dist/services/liquidity/index.js.map +1 -0
- package/dist/services/liquidity/liquidityHelpers.d.ts +13 -0
- package/dist/services/liquidity/liquidityHelpers.d.ts.map +1 -0
- package/dist/services/liquidity/liquidityHelpers.js +74 -0
- package/dist/services/liquidity/liquidityHelpers.js.map +1 -0
- package/dist/services/liquidity/zapHelpers.d.ts +66 -0
- package/dist/services/liquidity/zapHelpers.d.ts.map +1 -0
- package/dist/services/liquidity/zapHelpers.js +133 -0
- package/dist/services/liquidity/zapHelpers.js.map +1 -0
- package/dist/services/liquidity/zapIn.d.ts +17 -0
- package/dist/services/liquidity/zapIn.d.ts.map +1 -0
- package/dist/services/liquidity/zapIn.js +125 -0
- package/dist/services/liquidity/zapIn.js.map +1 -0
- package/dist/services/liquidity/zapOut.d.ts +17 -0
- package/dist/services/liquidity/zapOut.d.ts.map +1 -0
- package/dist/services/liquidity/zapOut.js +242 -0
- package/dist/services/liquidity/zapOut.js.map +1 -0
- package/dist/services/pools/PoolService.d.ts +35 -10
- package/dist/services/pools/PoolService.d.ts.map +1 -1
- package/dist/services/pools/PoolService.js +61 -109
- package/dist/services/pools/PoolService.js.map +1 -1
- package/dist/services/pools/poolDetails.d.ts +11 -0
- package/dist/services/pools/poolDetails.d.ts.map +1 -0
- package/dist/services/pools/poolDetails.js +151 -0
- package/dist/services/pools/poolDetails.js.map +1 -0
- package/dist/services/pools/poolDiscovery.d.ts +12 -0
- package/dist/services/pools/poolDiscovery.d.ts.map +1 -0
- package/dist/services/pools/poolDiscovery.js +114 -0
- package/dist/services/pools/poolDiscovery.js.map +1 -0
- package/dist/services/quotes/QuoteService.d.ts +21 -12
- package/dist/services/quotes/QuoteService.d.ts.map +1 -1
- package/dist/services/quotes/QuoteService.js +44 -17
- package/dist/services/quotes/QuoteService.js.map +1 -1
- package/dist/services/routes/RouteService.d.ts +3 -3
- package/dist/services/routes/RouteService.d.ts.map +1 -1
- package/dist/services/routes/RouteService.js +3 -5
- package/dist/services/routes/RouteService.js.map +1 -1
- package/dist/services/swap/SwapService.d.ts +23 -19
- package/dist/services/swap/SwapService.d.ts.map +1 -1
- package/dist/services/swap/SwapService.js +36 -15
- package/dist/services/swap/SwapService.js.map +1 -1
- package/dist/services/tokens/tokenService.d.ts +3 -3
- package/dist/services/tokens/tokenService.d.ts.map +1 -1
- package/dist/services/tokens/tokenService.js +26 -37
- package/dist/services/tokens/tokenService.js.map +1 -1
- package/dist/services/trading/TradingLimitsService.d.ts +38 -0
- package/dist/services/trading/TradingLimitsService.d.ts.map +1 -0
- package/dist/services/trading/TradingLimitsService.js +157 -0
- package/dist/services/trading/TradingLimitsService.js.map +1 -0
- package/dist/services/trading/TradingService.d.ts +110 -0
- package/dist/services/trading/TradingService.d.ts.map +1 -0
- package/dist/services/trading/TradingService.js +162 -0
- package/dist/services/trading/TradingService.js.map +1 -0
- package/dist/services/trading/index.d.ts +3 -0
- package/dist/services/trading/index.d.ts.map +1 -0
- package/dist/services/trading/index.js +19 -0
- package/dist/services/trading/index.js.map +1 -0
- package/dist/utils/costUtils.js +4 -4
- package/dist/utils/costUtils.js.map +1 -1
- package/dist/utils/deadline.d.ts +21 -0
- package/dist/utils/deadline.d.ts.map +1 -0
- package/dist/utils/deadline.js +26 -0
- package/dist/utils/deadline.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pathEncoder.d.ts +8 -2
- package/dist/utils/pathEncoder.d.ts.map +1 -1
- package/dist/utils/pathEncoder.js +19 -3
- package/dist/utils/pathEncoder.js.map +1 -1
- package/dist/utils/rateFeed.d.ts +18 -0
- package/dist/utils/rateFeed.d.ts.map +1 -0
- package/dist/utils/rateFeed.js +27 -0
- package/dist/utils/rateFeed.js.map +1 -0
- package/dist/utils/routeUtils.d.ts +53 -53
- package/dist/utils/routeUtils.d.ts.map +1 -1
- package/dist/utils/routeUtils.js +41 -41
- package/dist/utils/routeUtils.js.map +1 -1
- package/dist/utils/routes.d.ts +2 -8
- package/dist/utils/routes.d.ts.map +1 -1
- package/dist/utils/routes.js +5 -46
- package/dist/utils/routes.js.map +1 -1
- package/dist/utils/tokens.d.ts +1 -62
- package/dist/utils/tokens.d.ts.map +1 -1
- package/dist/utils/tokens.js +10 -163
- package/dist/utils/tokens.js.map +1 -1
- package/dist/utils/tradingLimits.d.ts +41 -0
- package/dist/utils/tradingLimits.d.ts.map +1 -0
- package/dist/utils/tradingLimits.js +171 -0
- package/dist/utils/tradingLimits.js.map +1 -0
- package/dist/utils/validation.d.ts +19 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +34 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +6 -6
- package/dist/cache/routes.42220.d.ts +0 -3
- package/dist/cache/routes.42220.d.ts.map +0 -1
- package/dist/cache/routes.42220.js +0 -112
- package/dist/cache/routes.42220.js.map +0 -1
- package/dist/cache/tokens.11142220.d.ts +0 -3
- package/dist/cache/tokens.11142220.d.ts.map +0 -1
- package/dist/cache/tokens.11142220.js +0 -129
- package/dist/cache/tokens.11142220.js.map +0 -1
- package/dist/cache/tokens.42220.d.ts +0 -3
- package/dist/cache/tokens.42220.d.ts.map +0 -1
- package/dist/cache/tokens.42220.js +0 -129
- package/dist/cache/tokens.42220.js.map +0 -1
- package/dist/core/abis/uniswapV3.d.ts +0 -4
- package/dist/core/abis/uniswapV3.d.ts.map +0 -1
- package/dist/core/abis/uniswapV3.js +0 -16
- package/dist/core/abis/uniswapV3.js.map +0 -1
- package/dist/core/constants/aaveConfig.d.ts +0 -7
- package/dist/core/constants/aaveConfig.d.ts.map +0 -1
- package/dist/core/constants/aaveConfig.js +0 -22
- package/dist/core/constants/aaveConfig.js.map +0 -1
- package/dist/core/constants/mentoAddresses.d.ts +0 -7
- package/dist/core/constants/mentoAddresses.d.ts.map +0 -1
- package/dist/core/constants/mentoAddresses.js +0 -10
- package/dist/core/constants/mentoAddresses.js.map +0 -1
- package/dist/core/constants/protocolAddresses.d.ts +0 -5
- package/dist/core/constants/protocolAddresses.d.ts.map +0 -1
- package/dist/core/constants/protocolAddresses.js +0 -8
- package/dist/core/constants/protocolAddresses.js.map +0 -1
- package/dist/services/tokens/supply/ISupplyCalculator.d.ts +0 -14
- package/dist/services/tokens/supply/ISupplyCalculator.d.ts.map +0 -1
- package/dist/services/tokens/supply/ISupplyCalculator.js.map +0 -1
- package/dist/services/tokens/supply/aaveSupplyCalculator.d.ts +0 -22
- package/dist/services/tokens/supply/aaveSupplyCalculator.d.ts.map +0 -1
- package/dist/services/tokens/supply/aaveSupplyCalculator.js +0 -46
- package/dist/services/tokens/supply/aaveSupplyCalculator.js.map +0 -1
- package/dist/services/tokens/supply/calculatorFactory.d.ts +0 -8
- package/dist/services/tokens/supply/calculatorFactory.d.ts.map +0 -1
- package/dist/services/tokens/supply/calculatorFactory.js.map +0 -1
- package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts +0 -9
- package/dist/services/tokens/supply/defaultCalculatorFactory.d.ts.map +0 -1
- package/dist/services/tokens/supply/defaultCalculatorFactory.js +0 -28
- package/dist/services/tokens/supply/defaultCalculatorFactory.js.map +0 -1
- package/dist/services/tokens/supply/index.d.ts +0 -7
- package/dist/services/tokens/supply/index.d.ts.map +0 -1
- package/dist/services/tokens/supply/index.js.map +0 -1
- package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts +0 -9
- package/dist/services/tokens/supply/multisigSupplyCalculator.d.ts.map +0 -1
- package/dist/services/tokens/supply/multisigSupplyCalculator.js +0 -33
- package/dist/services/tokens/supply/multisigSupplyCalculator.js.map +0 -1
- package/dist/services/tokens/supply/uniV3SupplyCalculator.d.ts +0 -21
- package/dist/services/tokens/supply/uniV3SupplyCalculator.d.ts.map +0 -1
- package/dist/services/tokens/supply/uniV3SupplyCalculator.js +0 -238
- package/dist/services/tokens/supply/uniV3SupplyCalculator.js.map +0 -1
- package/dist/services/tokens/supplyAdjustmentService.d.ts +0 -19
- package/dist/services/tokens/supplyAdjustmentService.d.ts.map +0 -1
- package/dist/services/tokens/supplyAdjustmentService.js +0 -49
- package/dist/services/tokens/supplyAdjustmentService.js.map +0 -1
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { PublicClient } from 'viem';
|
|
2
|
+
import { PoolService } from '../pools';
|
|
3
|
+
import { RouteService } from '../routes';
|
|
4
|
+
import { LiquidityOptions, AddLiquidityQuote, RemoveLiquidityQuote, AddLiquidityDetails, RemoveLiquidityDetails, AddLiquidityTransaction, RemoveLiquidityTransaction, LPTokenBalance, ZapInQuote, ZapOutQuote, ZapInDetails, ZapOutDetails, ZapInTransaction, ZapOutTransaction } from '../../core/types';
|
|
5
|
+
export declare class LiquidityService {
|
|
6
|
+
private publicClient;
|
|
7
|
+
private chainId;
|
|
8
|
+
private poolService;
|
|
9
|
+
private routeService;
|
|
10
|
+
constructor(publicClient: PublicClient, chainId: number, poolService: PoolService, routeService: RouteService);
|
|
11
|
+
/**
|
|
12
|
+
* Builds add liquidity transaction with token approvals if needed.
|
|
13
|
+
* Provide two tokens in any order - the Router handles token ordering automatically.
|
|
14
|
+
* @param poolAddress - FPMM pool address
|
|
15
|
+
* @param tokenA - First token address
|
|
16
|
+
* @param amountA - Amount of first token
|
|
17
|
+
* @param tokenB - Second token address
|
|
18
|
+
* @param amountB - Amount of second token
|
|
19
|
+
* @param recipient - Address to receive LP tokens
|
|
20
|
+
* @param owner - Address that owns the input tokens (for checking allowances)
|
|
21
|
+
* @param options - Slippage tolerance and deadline
|
|
22
|
+
* @returns Transaction with approvals (if needed) and add liquidity call
|
|
23
|
+
*/
|
|
24
|
+
buildAddLiquidityTransaction(poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<AddLiquidityTransaction>;
|
|
25
|
+
/**
|
|
26
|
+
* Builds add liquidity transaction parameters without checking token approvals.
|
|
27
|
+
* Use buildAddLiquidityTransaction if you need approval handling.
|
|
28
|
+
* @param poolAddress - FPMM pool address
|
|
29
|
+
* @param tokenA - First token address
|
|
30
|
+
* @param amountA - Amount of first token
|
|
31
|
+
* @param tokenB - Second token address
|
|
32
|
+
* @param amountB - Amount of second token
|
|
33
|
+
* @param recipient - Address to receive LP tokens
|
|
34
|
+
* @param options - Slippage tolerance and deadline
|
|
35
|
+
* @returns Transaction details with encoded call data
|
|
36
|
+
*/
|
|
37
|
+
buildAddLiquidityParams(poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint, recipient: string, options: LiquidityOptions): Promise<AddLiquidityDetails>;
|
|
38
|
+
/**
|
|
39
|
+
* Builds remove liquidity transaction with LP token approval if needed.
|
|
40
|
+
* @param poolAddress - FPMM pool address (also the LP token address)
|
|
41
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
42
|
+
* @param recipient - Address to receive the underlying tokens
|
|
43
|
+
* @param owner - Address that owns the LP tokens (for checking allowance)
|
|
44
|
+
* @param options - Slippage tolerance and deadline
|
|
45
|
+
* @returns Transaction with approval (if needed) and remove liquidity call
|
|
46
|
+
*/
|
|
47
|
+
buildRemoveLiquidityTransaction(poolAddress: string, liquidity: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<RemoveLiquidityTransaction>;
|
|
48
|
+
/**
|
|
49
|
+
* Builds remove liquidity transaction parameters without checking LP token approval.
|
|
50
|
+
* Use buildRemoveLiquidityTransaction if you need approval handling.
|
|
51
|
+
* @param poolAddress - FPMM pool address
|
|
52
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
53
|
+
* @param recipient - Address to receive the underlying tokens
|
|
54
|
+
* @param options - Slippage tolerance and deadline
|
|
55
|
+
* @returns Transaction details with encoded call data
|
|
56
|
+
*/
|
|
57
|
+
buildRemoveLiquidityParams(poolAddress: string, liquidity: bigint, recipient: string, options: LiquidityOptions): Promise<RemoveLiquidityDetails>;
|
|
58
|
+
/**
|
|
59
|
+
* Quotes an add liquidity operation (read-only call).
|
|
60
|
+
* Returns expected amounts and LP tokens based on current pool reserves.
|
|
61
|
+
* @param poolAddress - FPMM pool address
|
|
62
|
+
* @param tokenA - First token address
|
|
63
|
+
* @param amountA - Amount of first token
|
|
64
|
+
* @param tokenB - Second token address
|
|
65
|
+
* @param amountB - Amount of second token
|
|
66
|
+
* @returns Expected amounts and LP tokens to be minted
|
|
67
|
+
*/
|
|
68
|
+
quoteAddLiquidity(poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint): Promise<AddLiquidityQuote>;
|
|
69
|
+
/**
|
|
70
|
+
* Quotes a remove liquidity operation (read-only call).
|
|
71
|
+
* Returns expected token amounts based on current pool reserves.
|
|
72
|
+
* @param poolAddress - FPMM pool address
|
|
73
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
74
|
+
* @returns Expected amounts of token0 and token1
|
|
75
|
+
*/
|
|
76
|
+
quoteRemoveLiquidity(poolAddress: string, liquidity: bigint): Promise<RemoveLiquidityQuote>;
|
|
77
|
+
/**
|
|
78
|
+
* Gets LP token balance and pool share percentage for an address.
|
|
79
|
+
* @param poolAddress - FPMM pool address (also the LP token address)
|
|
80
|
+
* @param owner - Address to check balance for
|
|
81
|
+
* @returns Balance, total supply, and share percentage
|
|
82
|
+
*/
|
|
83
|
+
getLPTokenBalance(poolAddress: string, owner: string): Promise<LPTokenBalance>;
|
|
84
|
+
/**
|
|
85
|
+
* Builds zap in transaction with approval if needed.
|
|
86
|
+
* Adds liquidity using a single input token - the Router swaps it to both pool tokens automatically.
|
|
87
|
+
* @param poolAddress - FPMM pool address
|
|
88
|
+
* @param tokenIn - Input token address
|
|
89
|
+
* @param amountIn - Total input amount
|
|
90
|
+
* @param amountInSplit - How to split input between pool tokens (0-1, e.g., 0.5 for 50/50)
|
|
91
|
+
* @param recipient - Address to receive LP tokens
|
|
92
|
+
* @param owner - Address that owns the input token
|
|
93
|
+
* @param options - Slippage tolerance and deadline
|
|
94
|
+
* @returns Transaction with approval (if needed) and zap in call
|
|
95
|
+
*/
|
|
96
|
+
buildZapInTransaction(poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, recipient: string, owner: string, options: LiquidityOptions): Promise<ZapInTransaction>;
|
|
97
|
+
/**
|
|
98
|
+
* Builds zap in transaction parameters without checking approval.
|
|
99
|
+
* Use buildZapInTransaction if you need approval handling.
|
|
100
|
+
* @param poolAddress - FPMM pool address
|
|
101
|
+
* @param tokenIn - Input token address
|
|
102
|
+
* @param amountIn - Total input amount
|
|
103
|
+
* @param amountInSplit - Split ratio (0-1)
|
|
104
|
+
* @param recipient - Address to receive LP tokens
|
|
105
|
+
* @param options - Slippage tolerance and deadline
|
|
106
|
+
* @returns Transaction details with encoded call data and routing information
|
|
107
|
+
*/
|
|
108
|
+
buildZapInParams(poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, recipient: string, options: LiquidityOptions): Promise<ZapInDetails>;
|
|
109
|
+
/**
|
|
110
|
+
* Builds zap out transaction with approval if needed.
|
|
111
|
+
* Removes liquidity and swaps both tokens to a single output token.
|
|
112
|
+
* @param poolAddress - FPMM pool address
|
|
113
|
+
* @param tokenOut - Output token address
|
|
114
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
115
|
+
* @param recipient - Address to receive output tokens
|
|
116
|
+
* @param owner - Address that owns the LP tokens
|
|
117
|
+
* @param options - Slippage tolerance and deadline
|
|
118
|
+
* @returns Transaction with approval (if needed) and zap out call
|
|
119
|
+
*/
|
|
120
|
+
buildZapOutTransaction(poolAddress: string, tokenOut: string, liquidity: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<ZapOutTransaction>;
|
|
121
|
+
/**
|
|
122
|
+
* Builds zap out transaction parameters without checking approval.
|
|
123
|
+
* Use buildZapOutTransaction if you need approval handling.
|
|
124
|
+
* @param poolAddress - FPMM pool address
|
|
125
|
+
* @param tokenOut - Output token address
|
|
126
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
127
|
+
* @param recipient - Address to receive output tokens
|
|
128
|
+
* @param options - Slippage tolerance and deadline
|
|
129
|
+
* @returns Transaction details with encoded call data and routing information
|
|
130
|
+
*/
|
|
131
|
+
buildZapOutParams(poolAddress: string, tokenOut: string, liquidity: bigint, recipient: string, options: LiquidityOptions): Promise<ZapOutDetails>;
|
|
132
|
+
/**
|
|
133
|
+
* Quotes a zap in operation (read-only call).
|
|
134
|
+
* Estimates expected LP tokens and minimum amounts after swaps and slippage.
|
|
135
|
+
* @param poolAddress - FPMM pool address
|
|
136
|
+
* @param tokenIn - Input token address
|
|
137
|
+
* @param amountIn - Total input amount
|
|
138
|
+
* @param amountInSplit - Split ratio (0-1)
|
|
139
|
+
* @param options - Slippage tolerance and deadline
|
|
140
|
+
* @returns Expected LP tokens and minimum amounts for both pool tokens
|
|
141
|
+
*/
|
|
142
|
+
quoteZapIn(poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, options: LiquidityOptions): Promise<ZapInQuote>;
|
|
143
|
+
/**
|
|
144
|
+
* Quotes a zap out operation (read-only call).
|
|
145
|
+
* Estimates expected output tokens after removing liquidity and swapping.
|
|
146
|
+
* @param poolAddress - FPMM pool address
|
|
147
|
+
* @param tokenOut - Output token address
|
|
148
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
149
|
+
* @param options - Slippage tolerance and deadline
|
|
150
|
+
* @returns Expected output amount and minimum amounts after slippage
|
|
151
|
+
*/
|
|
152
|
+
quoteZapOut(poolAddress: string, tokenOut: string, liquidity: bigint, options: LiquidityOptions): Promise<ZapOutQuote>;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=LiquidityService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiquidityService.d.ts","sourceRoot":"","sources":["../../../src/services/liquidity/LiquidityService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LiquidityService = void 0;
|
|
4
|
+
const basicLiquidity_1 = require("./basicLiquidity");
|
|
5
|
+
const zapIn_1 = require("./zapIn");
|
|
6
|
+
const zapOut_1 = require("./zapOut");
|
|
7
|
+
class LiquidityService {
|
|
8
|
+
constructor(publicClient, chainId, poolService, routeService) {
|
|
9
|
+
this.publicClient = publicClient;
|
|
10
|
+
this.chainId = chainId;
|
|
11
|
+
this.poolService = poolService;
|
|
12
|
+
this.routeService = routeService;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Builds add liquidity transaction with token approvals if needed.
|
|
16
|
+
* Provide two tokens in any order - the Router handles token ordering automatically.
|
|
17
|
+
* @param poolAddress - FPMM pool address
|
|
18
|
+
* @param tokenA - First token address
|
|
19
|
+
* @param amountA - Amount of first token
|
|
20
|
+
* @param tokenB - Second token address
|
|
21
|
+
* @param amountB - Amount of second token
|
|
22
|
+
* @param recipient - Address to receive LP tokens
|
|
23
|
+
* @param owner - Address that owns the input tokens (for checking allowances)
|
|
24
|
+
* @param options - Slippage tolerance and deadline
|
|
25
|
+
* @returns Transaction with approvals (if needed) and add liquidity call
|
|
26
|
+
*/
|
|
27
|
+
async buildAddLiquidityTransaction(poolAddress, tokenA, amountA, tokenB, amountB, recipient, owner, options) {
|
|
28
|
+
return (0, basicLiquidity_1.buildAddLiquidityTransactionInternal)(this.publicClient, this.chainId, this.poolService, poolAddress, tokenA, amountA, tokenB, amountB, recipient, owner, options);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Builds add liquidity transaction parameters without checking token approvals.
|
|
32
|
+
* Use buildAddLiquidityTransaction if you need approval handling.
|
|
33
|
+
* @param poolAddress - FPMM pool address
|
|
34
|
+
* @param tokenA - First token address
|
|
35
|
+
* @param amountA - Amount of first token
|
|
36
|
+
* @param tokenB - Second token address
|
|
37
|
+
* @param amountB - Amount of second token
|
|
38
|
+
* @param recipient - Address to receive LP tokens
|
|
39
|
+
* @param options - Slippage tolerance and deadline
|
|
40
|
+
* @returns Transaction details with encoded call data
|
|
41
|
+
*/
|
|
42
|
+
async buildAddLiquidityParams(poolAddress, tokenA, amountA, tokenB, amountB, recipient, options) {
|
|
43
|
+
return (0, basicLiquidity_1.buildAddLiquidityParamsInternal)(this.publicClient, this.chainId, this.poolService, poolAddress, tokenA, amountA, tokenB, amountB, recipient, options);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Builds remove liquidity transaction with LP token approval if needed.
|
|
47
|
+
* @param poolAddress - FPMM pool address (also the LP token address)
|
|
48
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
49
|
+
* @param recipient - Address to receive the underlying tokens
|
|
50
|
+
* @param owner - Address that owns the LP tokens (for checking allowance)
|
|
51
|
+
* @param options - Slippage tolerance and deadline
|
|
52
|
+
* @returns Transaction with approval (if needed) and remove liquidity call
|
|
53
|
+
*/
|
|
54
|
+
async buildRemoveLiquidityTransaction(poolAddress, liquidity, recipient, owner, options) {
|
|
55
|
+
return (0, basicLiquidity_1.buildRemoveLiquidityTransactionInternal)(this.publicClient, this.chainId, this.poolService, poolAddress, liquidity, recipient, owner, options);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Builds remove liquidity transaction parameters without checking LP token approval.
|
|
59
|
+
* Use buildRemoveLiquidityTransaction if you need approval handling.
|
|
60
|
+
* @param poolAddress - FPMM pool address
|
|
61
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
62
|
+
* @param recipient - Address to receive the underlying tokens
|
|
63
|
+
* @param options - Slippage tolerance and deadline
|
|
64
|
+
* @returns Transaction details with encoded call data
|
|
65
|
+
*/
|
|
66
|
+
async buildRemoveLiquidityParams(poolAddress, liquidity, recipient, options) {
|
|
67
|
+
return (0, basicLiquidity_1.buildRemoveLiquidityParamsInternal)(this.publicClient, this.chainId, this.poolService, poolAddress, liquidity, recipient, options);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Quotes an add liquidity operation (read-only call).
|
|
71
|
+
* Returns expected amounts and LP tokens based on current pool reserves.
|
|
72
|
+
* @param poolAddress - FPMM pool address
|
|
73
|
+
* @param tokenA - First token address
|
|
74
|
+
* @param amountA - Amount of first token
|
|
75
|
+
* @param tokenB - Second token address
|
|
76
|
+
* @param amountB - Amount of second token
|
|
77
|
+
* @returns Expected amounts and LP tokens to be minted
|
|
78
|
+
*/
|
|
79
|
+
async quoteAddLiquidity(poolAddress, tokenA, amountA, tokenB, amountB) {
|
|
80
|
+
return (0, basicLiquidity_1.quoteAddLiquidityInternal)(this.publicClient, this.chainId, this.poolService, poolAddress, tokenA, amountA, tokenB, amountB);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Quotes a remove liquidity operation (read-only call).
|
|
84
|
+
* Returns expected token amounts based on current pool reserves.
|
|
85
|
+
* @param poolAddress - FPMM pool address
|
|
86
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
87
|
+
* @returns Expected amounts of token0 and token1
|
|
88
|
+
*/
|
|
89
|
+
async quoteRemoveLiquidity(poolAddress, liquidity) {
|
|
90
|
+
return (0, basicLiquidity_1.quoteRemoveLiquidityInternal)(this.publicClient, this.chainId, this.poolService, poolAddress, liquidity);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Gets LP token balance and pool share percentage for an address.
|
|
94
|
+
* @param poolAddress - FPMM pool address (also the LP token address)
|
|
95
|
+
* @param owner - Address to check balance for
|
|
96
|
+
* @returns Balance, total supply, and share percentage
|
|
97
|
+
*/
|
|
98
|
+
async getLPTokenBalance(poolAddress, owner) {
|
|
99
|
+
return (0, basicLiquidity_1.getLPTokenBalanceInternal)(this.publicClient, this.poolService, poolAddress, owner);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Builds zap in transaction with approval if needed.
|
|
103
|
+
* Adds liquidity using a single input token - the Router swaps it to both pool tokens automatically.
|
|
104
|
+
* @param poolAddress - FPMM pool address
|
|
105
|
+
* @param tokenIn - Input token address
|
|
106
|
+
* @param amountIn - Total input amount
|
|
107
|
+
* @param amountInSplit - How to split input between pool tokens (0-1, e.g., 0.5 for 50/50)
|
|
108
|
+
* @param recipient - Address to receive LP tokens
|
|
109
|
+
* @param owner - Address that owns the input token
|
|
110
|
+
* @param options - Slippage tolerance and deadline
|
|
111
|
+
* @returns Transaction with approval (if needed) and zap in call
|
|
112
|
+
*/
|
|
113
|
+
async buildZapInTransaction(poolAddress, tokenIn, amountIn, amountInSplit, recipient, owner, options) {
|
|
114
|
+
return (0, zapIn_1.buildZapInTransactionInternal)(this.publicClient, this.chainId, this.poolService, this.routeService, poolAddress, tokenIn, amountIn, amountInSplit, recipient, owner, options);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Builds zap in transaction parameters without checking approval.
|
|
118
|
+
* Use buildZapInTransaction if you need approval handling.
|
|
119
|
+
* @param poolAddress - FPMM pool address
|
|
120
|
+
* @param tokenIn - Input token address
|
|
121
|
+
* @param amountIn - Total input amount
|
|
122
|
+
* @param amountInSplit - Split ratio (0-1)
|
|
123
|
+
* @param recipient - Address to receive LP tokens
|
|
124
|
+
* @param options - Slippage tolerance and deadline
|
|
125
|
+
* @returns Transaction details with encoded call data and routing information
|
|
126
|
+
*/
|
|
127
|
+
async buildZapInParams(poolAddress, tokenIn, amountIn, amountInSplit, recipient, options) {
|
|
128
|
+
return (0, zapIn_1.buildZapInParamsInternal)(this.publicClient, this.chainId, this.poolService, this.routeService, poolAddress, tokenIn, amountIn, amountInSplit, recipient, options);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Builds zap out transaction with approval if needed.
|
|
132
|
+
* Removes liquidity and swaps both tokens to a single output token.
|
|
133
|
+
* @param poolAddress - FPMM pool address
|
|
134
|
+
* @param tokenOut - Output token address
|
|
135
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
136
|
+
* @param recipient - Address to receive output tokens
|
|
137
|
+
* @param owner - Address that owns the LP tokens
|
|
138
|
+
* @param options - Slippage tolerance and deadline
|
|
139
|
+
* @returns Transaction with approval (if needed) and zap out call
|
|
140
|
+
*/
|
|
141
|
+
async buildZapOutTransaction(poolAddress, tokenOut, liquidity, recipient, owner, options) {
|
|
142
|
+
return (0, zapOut_1.buildZapOutTransactionInternal)(this.publicClient, this.chainId, this.poolService, this.routeService, poolAddress, tokenOut, liquidity, recipient, owner, options);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Builds zap out transaction parameters without checking approval.
|
|
146
|
+
* Use buildZapOutTransaction if you need approval handling.
|
|
147
|
+
* @param poolAddress - FPMM pool address
|
|
148
|
+
* @param tokenOut - Output token address
|
|
149
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
150
|
+
* @param recipient - Address to receive output tokens
|
|
151
|
+
* @param options - Slippage tolerance and deadline
|
|
152
|
+
* @returns Transaction details with encoded call data and routing information
|
|
153
|
+
*/
|
|
154
|
+
async buildZapOutParams(poolAddress, tokenOut, liquidity, recipient, options) {
|
|
155
|
+
return (0, zapOut_1.buildZapOutParamsInternal)(this.publicClient, this.chainId, this.poolService, this.routeService, poolAddress, tokenOut, liquidity, recipient, options);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Quotes a zap in operation (read-only call).
|
|
159
|
+
* Estimates expected LP tokens and minimum amounts after swaps and slippage.
|
|
160
|
+
* @param poolAddress - FPMM pool address
|
|
161
|
+
* @param tokenIn - Input token address
|
|
162
|
+
* @param amountIn - Total input amount
|
|
163
|
+
* @param amountInSplit - Split ratio (0-1)
|
|
164
|
+
* @param options - Slippage tolerance and deadline
|
|
165
|
+
* @returns Expected LP tokens and minimum amounts for both pool tokens
|
|
166
|
+
*/
|
|
167
|
+
async quoteZapIn(poolAddress, tokenIn, amountIn, amountInSplit, options) {
|
|
168
|
+
return (0, zapIn_1.quoteZapInInternal)(this.publicClient, this.chainId, this.poolService, this.routeService, poolAddress, tokenIn, amountIn, amountInSplit, options);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Quotes a zap out operation (read-only call).
|
|
172
|
+
* Estimates expected output tokens after removing liquidity and swapping.
|
|
173
|
+
* @param poolAddress - FPMM pool address
|
|
174
|
+
* @param tokenOut - Output token address
|
|
175
|
+
* @param liquidity - Amount of LP tokens to burn
|
|
176
|
+
* @param options - Slippage tolerance and deadline
|
|
177
|
+
* @returns Expected output amount and minimum amounts after slippage
|
|
178
|
+
*/
|
|
179
|
+
async quoteZapOut(poolAddress, tokenOut, liquidity, options) {
|
|
180
|
+
return (0, zapOut_1.quoteZapOutInternal)(this.publicClient, this.chainId, this.poolService, this.routeService, poolAddress, tokenOut, liquidity, options);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.LiquidityService = LiquidityService;
|
|
184
|
+
//# sourceMappingURL=LiquidityService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiquidityService.js","sourceRoot":"","sources":["../../../src/services/liquidity/LiquidityService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PublicClient } from 'viem';
|
|
2
|
+
import { PoolService } from '../pools';
|
|
3
|
+
import { LiquidityOptions, AddLiquidityQuote, RemoveLiquidityQuote, AddLiquidityDetails, RemoveLiquidityDetails, AddLiquidityTransaction, RemoveLiquidityTransaction, LPTokenBalance } from '../../core/types';
|
|
4
|
+
export declare function buildAddLiquidityTransactionInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<AddLiquidityTransaction>;
|
|
5
|
+
export declare function buildAddLiquidityParamsInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint, recipient: string, options: LiquidityOptions): Promise<AddLiquidityDetails>;
|
|
6
|
+
export declare function quoteAddLiquidityInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint): Promise<AddLiquidityQuote>;
|
|
7
|
+
export declare function buildRemoveLiquidityTransactionInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, poolAddress: string, liquidity: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<RemoveLiquidityTransaction>;
|
|
8
|
+
export declare function buildRemoveLiquidityParamsInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, poolAddress: string, liquidity: bigint, recipient: string, options: LiquidityOptions): Promise<RemoveLiquidityDetails>;
|
|
9
|
+
export declare function quoteRemoveLiquidityInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, poolAddress: string, liquidity: bigint): Promise<RemoveLiquidityQuote>;
|
|
10
|
+
export declare function getLPTokenBalanceInternal(publicClient: PublicClient, poolService: PoolService, poolAddress: string, owner: string): Promise<LPTokenBalance>;
|
|
11
|
+
//# sourceMappingURL=basicLiquidity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicLiquidity.d.ts","sourceRoot":"","sources":["../../../src/services/liquidity/basicLiquidity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAsB,MAAM,MAAM,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,cAAc,EACf,MAAM,kBAAkB,CAAA;AAuCzB,wBAAsB,oCAAoC,CACxD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,uBAAuB,CAAC,CAiClC;AAED,wBAAsB,+BAA+B,CACnD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAmC9B;AAED,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAED,wBAAsB,uCAAuC,CAC3D,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,0BAA0B,CAAC,CAuBrC;AAED,wBAAsB,kCAAkC,CACtD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,sBAAsB,CAAC,CA6BjC;AAED,wBAAsB,4BAA4B,CAChD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,CAAC,CAc/B;AAED,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAgCzB"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildAddLiquidityTransactionInternal = buildAddLiquidityTransactionInternal;
|
|
4
|
+
exports.buildAddLiquidityParamsInternal = buildAddLiquidityParamsInternal;
|
|
5
|
+
exports.quoteAddLiquidityInternal = quoteAddLiquidityInternal;
|
|
6
|
+
exports.buildRemoveLiquidityTransactionInternal = buildRemoveLiquidityTransactionInternal;
|
|
7
|
+
exports.buildRemoveLiquidityParamsInternal = buildRemoveLiquidityParamsInternal;
|
|
8
|
+
exports.quoteRemoveLiquidityInternal = quoteRemoveLiquidityInternal;
|
|
9
|
+
exports.getLPTokenBalanceInternal = getLPTokenBalanceInternal;
|
|
10
|
+
const viem_1 = require("viem");
|
|
11
|
+
const abis_1 = require("../../core/abis");
|
|
12
|
+
const constants_1 = require("../../core/constants");
|
|
13
|
+
const validation_1 = require("../../utils/validation");
|
|
14
|
+
const liquidityHelpers_1 = require("./liquidityHelpers");
|
|
15
|
+
function encodeAddLiquidityCall(tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, recipient, deadline) {
|
|
16
|
+
return (0, viem_1.encodeFunctionData)({
|
|
17
|
+
abi: abis_1.ROUTER_ABI,
|
|
18
|
+
functionName: 'addLiquidity',
|
|
19
|
+
args: [tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin, recipient, deadline],
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function encodeRemoveLiquidityCall(token0, token1, liquidity, amount0Min, amount1Min, recipient, deadline) {
|
|
23
|
+
return (0, viem_1.encodeFunctionData)({
|
|
24
|
+
abi: abis_1.ROUTER_ABI,
|
|
25
|
+
functionName: 'removeLiquidity',
|
|
26
|
+
args: [token0, token1, liquidity, amount0Min, amount1Min, recipient, deadline],
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
async function buildAddLiquidityTransactionInternal(publicClient, chainId, poolService, poolAddress, tokenA, amountA, tokenB, amountB, recipient, owner, options) {
|
|
30
|
+
const addLiquidity = await buildAddLiquidityParamsInternal(publicClient, chainId, poolService, poolAddress, tokenA, amountA, tokenB, amountB, recipient, options);
|
|
31
|
+
(0, validation_1.validateAddress)(owner, 'owner');
|
|
32
|
+
const ownerAddr = owner;
|
|
33
|
+
const tokenAAddr = addLiquidity.tokenA;
|
|
34
|
+
const tokenBAddr = addLiquidity.tokenB;
|
|
35
|
+
const [allowanceA, allowanceB] = await Promise.all([
|
|
36
|
+
(0, liquidityHelpers_1.getAllowance)(publicClient, tokenAAddr, ownerAddr, chainId),
|
|
37
|
+
(0, liquidityHelpers_1.getAllowance)(publicClient, tokenBAddr, ownerAddr, chainId),
|
|
38
|
+
]);
|
|
39
|
+
const approvalA = allowanceA < amountA
|
|
40
|
+
? { token: addLiquidity.tokenA, amount: amountA, params: (0, liquidityHelpers_1.buildApprovalParams)(chainId, tokenAAddr, amountA) }
|
|
41
|
+
: null;
|
|
42
|
+
const approvalB = allowanceB < amountB
|
|
43
|
+
? { token: addLiquidity.tokenB, amount: amountB, params: (0, liquidityHelpers_1.buildApprovalParams)(chainId, tokenBAddr, amountB) }
|
|
44
|
+
: null;
|
|
45
|
+
return { approvalA, approvalB, addLiquidity };
|
|
46
|
+
}
|
|
47
|
+
async function buildAddLiquidityParamsInternal(publicClient, chainId, poolService, poolAddress, tokenA, amountA, tokenB, amountB, recipient, options) {
|
|
48
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
49
|
+
(0, validation_1.validateAddress)(tokenA, 'tokenA');
|
|
50
|
+
(0, validation_1.validateAddress)(tokenB, 'tokenB');
|
|
51
|
+
(0, validation_1.validateAddress)(recipient, 'recipient');
|
|
52
|
+
const { token0, token1, factoryAddr } = await (0, liquidityHelpers_1.getPoolInfo)(poolService, poolAddress);
|
|
53
|
+
(0, liquidityHelpers_1.validatePoolTokens)(token0, token1, tokenA, tokenB);
|
|
54
|
+
const quote = await quoteAddLiquidityInternal(publicClient, chainId, poolService, poolAddress, tokenA, amountA, tokenB, amountB);
|
|
55
|
+
const amountAMin = (0, liquidityHelpers_1.calculateMinAmount)(quote.amountA, options.slippageTolerance);
|
|
56
|
+
const amountBMin = (0, liquidityHelpers_1.calculateMinAmount)(quote.amountB, options.slippageTolerance);
|
|
57
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
58
|
+
const data = encodeAddLiquidityCall(tokenA, tokenB, amountA, amountB, amountAMin, amountBMin, recipient, options.deadline);
|
|
59
|
+
return {
|
|
60
|
+
params: {
|
|
61
|
+
to: routerAddress,
|
|
62
|
+
data,
|
|
63
|
+
value: '0',
|
|
64
|
+
},
|
|
65
|
+
poolAddress,
|
|
66
|
+
token0,
|
|
67
|
+
token1,
|
|
68
|
+
tokenA,
|
|
69
|
+
tokenB,
|
|
70
|
+
amountADesired: amountA,
|
|
71
|
+
amountBDesired: amountB,
|
|
72
|
+
amountAMin,
|
|
73
|
+
amountBMin,
|
|
74
|
+
estimatedMinLiquidity: quote.liquidity,
|
|
75
|
+
deadline: options.deadline,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function quoteAddLiquidityInternal(publicClient, chainId, poolService, poolAddress, tokenA, amountA, tokenB, amountB) {
|
|
79
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
80
|
+
(0, validation_1.validateAddress)(tokenA, 'tokenA');
|
|
81
|
+
(0, validation_1.validateAddress)(tokenB, 'tokenB');
|
|
82
|
+
const { token0, token1, factoryAddr } = await (0, liquidityHelpers_1.getPoolInfo)(poolService, poolAddress);
|
|
83
|
+
(0, liquidityHelpers_1.validatePoolTokens)(token0, token1, tokenA, tokenB);
|
|
84
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
85
|
+
const [resultAmountA, resultAmountB, liquidity] = (await publicClient.readContract({
|
|
86
|
+
address: routerAddress,
|
|
87
|
+
abi: abis_1.ROUTER_ABI,
|
|
88
|
+
functionName: 'quoteAddLiquidity',
|
|
89
|
+
args: [tokenA, tokenB, factoryAddr, amountA, amountB],
|
|
90
|
+
}));
|
|
91
|
+
return { amountA: resultAmountA, amountB: resultAmountB, liquidity };
|
|
92
|
+
}
|
|
93
|
+
async function buildRemoveLiquidityTransactionInternal(publicClient, chainId, poolService, poolAddress, liquidity, recipient, owner, options) {
|
|
94
|
+
(0, validation_1.validateAddress)(owner, 'owner');
|
|
95
|
+
// Build remove liquidity params
|
|
96
|
+
const removeLiquidity = await buildRemoveLiquidityParamsInternal(publicClient, chainId, poolService, poolAddress, liquidity, recipient, options);
|
|
97
|
+
const poolAddr = poolAddress; // Pool address IS the LP token
|
|
98
|
+
const ownerAddr = owner;
|
|
99
|
+
const currentAllowance = await (0, liquidityHelpers_1.getAllowance)(publicClient, poolAddr, ownerAddr, chainId);
|
|
100
|
+
const approval = currentAllowance < liquidity
|
|
101
|
+
? { token: poolAddress, amount: liquidity, params: (0, liquidityHelpers_1.buildApprovalParams)(chainId, poolAddr, liquidity) }
|
|
102
|
+
: null;
|
|
103
|
+
return { approval, removeLiquidity };
|
|
104
|
+
}
|
|
105
|
+
async function buildRemoveLiquidityParamsInternal(publicClient, chainId, poolService, poolAddress, liquidity, recipient, options) {
|
|
106
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
107
|
+
(0, validation_1.validateAddress)(recipient, 'recipient');
|
|
108
|
+
const { token0, token1 } = await (0, liquidityHelpers_1.getPoolInfo)(poolService, poolAddress);
|
|
109
|
+
const quote = await quoteRemoveLiquidityInternal(publicClient, chainId, poolService, poolAddress, liquidity);
|
|
110
|
+
const amount0Min = (0, liquidityHelpers_1.calculateMinAmount)(quote.amount0, options.slippageTolerance);
|
|
111
|
+
const amount1Min = (0, liquidityHelpers_1.calculateMinAmount)(quote.amount1, options.slippageTolerance);
|
|
112
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
113
|
+
const data = encodeRemoveLiquidityCall(token0, token1, liquidity, amount0Min, amount1Min, recipient, options.deadline);
|
|
114
|
+
return {
|
|
115
|
+
params: {
|
|
116
|
+
to: routerAddress,
|
|
117
|
+
data,
|
|
118
|
+
value: '0',
|
|
119
|
+
},
|
|
120
|
+
poolAddress,
|
|
121
|
+
token0,
|
|
122
|
+
token1,
|
|
123
|
+
liquidity,
|
|
124
|
+
amount0Min,
|
|
125
|
+
amount1Min,
|
|
126
|
+
expectedAmount0: quote.amount0,
|
|
127
|
+
expectedAmount1: quote.amount1,
|
|
128
|
+
deadline: options.deadline,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
async function quoteRemoveLiquidityInternal(publicClient, chainId, poolService, poolAddress, liquidity) {
|
|
132
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
133
|
+
const { token0, token1, factoryAddr } = await (0, liquidityHelpers_1.getPoolInfo)(poolService, poolAddress);
|
|
134
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
135
|
+
const [amount0, amount1] = (await publicClient.readContract({
|
|
136
|
+
address: routerAddress,
|
|
137
|
+
abi: abis_1.ROUTER_ABI,
|
|
138
|
+
functionName: 'quoteRemoveLiquidity',
|
|
139
|
+
args: [token0, token1, factoryAddr, liquidity],
|
|
140
|
+
}));
|
|
141
|
+
return { amount0, amount1 };
|
|
142
|
+
}
|
|
143
|
+
async function getLPTokenBalanceInternal(publicClient, poolService, poolAddress, owner) {
|
|
144
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
145
|
+
(0, validation_1.validateAddress)(owner, 'owner');
|
|
146
|
+
const { token0, token1 } = await (0, liquidityHelpers_1.getPoolInfo)(poolService, poolAddress);
|
|
147
|
+
// Pool address IS the LP token address (FPMM pools are ERC20)
|
|
148
|
+
const [balance, totalSupply] = await Promise.all([
|
|
149
|
+
publicClient.readContract({
|
|
150
|
+
address: poolAddress,
|
|
151
|
+
abi: abis_1.ERC20_ABI,
|
|
152
|
+
functionName: 'balanceOf',
|
|
153
|
+
args: [owner],
|
|
154
|
+
}),
|
|
155
|
+
publicClient.readContract({
|
|
156
|
+
address: poolAddress,
|
|
157
|
+
abi: abis_1.ERC20_ABI,
|
|
158
|
+
functionName: 'totalSupply',
|
|
159
|
+
args: [],
|
|
160
|
+
}),
|
|
161
|
+
]);
|
|
162
|
+
const sharePercent = totalSupply > 0n ? Number((balance * 10000n) / totalSupply) / 100 : 0;
|
|
163
|
+
return {
|
|
164
|
+
poolAddress,
|
|
165
|
+
balance,
|
|
166
|
+
token0,
|
|
167
|
+
token1,
|
|
168
|
+
totalSupply,
|
|
169
|
+
sharePercent,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=basicLiquidity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicLiquidity.js","sourceRoot":"","sources":["../../../src/services/liquidity/basicLiquidity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/liquidity/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./LiquidityService"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/liquidity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Address, PublicClient } from 'viem';
|
|
2
|
+
import { PoolService } from '../pools';
|
|
3
|
+
import { CallParams } from '../../core/types';
|
|
4
|
+
export declare function buildApprovalParams(chainId: number, token: Address, amount: bigint): CallParams;
|
|
5
|
+
export declare function getAllowance(publicClient: PublicClient, token: Address, owner: Address, chainId: number): Promise<bigint>;
|
|
6
|
+
export declare function calculateMinAmount(amount: bigint, slippageTolerance: number): bigint;
|
|
7
|
+
export declare function getPoolInfo(poolService: PoolService, poolAddress: string): Promise<{
|
|
8
|
+
token0: Address;
|
|
9
|
+
token1: Address;
|
|
10
|
+
factoryAddr: Address;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function validatePoolTokens(poolToken0: Address, poolToken1: Address, tokenA: string, tokenB: string): void;
|
|
13
|
+
//# sourceMappingURL=liquidityHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidityHelpers.d.ts","sourceRoot":"","sources":["../../../src/services/liquidity/liquidityHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAsB,MAAM,MAAM,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,UAAU,EAAY,MAAM,kBAAkB,CAAA;AAKvD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAQ/F;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAQjB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAWpF;AAED,wBAAsB,WAAW,CAC/B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;CACrB,CAAC,CAmBD;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI,CAoBN"}
|