@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,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildApprovalParams = buildApprovalParams;
|
|
4
|
+
exports.getAllowance = getAllowance;
|
|
5
|
+
exports.calculateMinAmount = calculateMinAmount;
|
|
6
|
+
exports.getPoolInfo = getPoolInfo;
|
|
7
|
+
exports.validatePoolTokens = validatePoolTokens;
|
|
8
|
+
const viem_1 = require("viem");
|
|
9
|
+
const types_1 = require("../../core/types");
|
|
10
|
+
const abis_1 = require("../../core/abis");
|
|
11
|
+
const constants_1 = require("../../core/constants");
|
|
12
|
+
const validation_1 = require("../../utils/validation");
|
|
13
|
+
function buildApprovalParams(chainId, token, amount) {
|
|
14
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
15
|
+
const data = (0, viem_1.encodeFunctionData)({
|
|
16
|
+
abi: abis_1.ERC20_ABI,
|
|
17
|
+
functionName: 'approve',
|
|
18
|
+
args: [routerAddress, amount],
|
|
19
|
+
});
|
|
20
|
+
return { to: token, data, value: '0' };
|
|
21
|
+
}
|
|
22
|
+
async function getAllowance(publicClient, token, owner, chainId) {
|
|
23
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
24
|
+
return (await publicClient.readContract({
|
|
25
|
+
address: token,
|
|
26
|
+
abi: abis_1.ERC20_ABI,
|
|
27
|
+
functionName: 'allowance',
|
|
28
|
+
args: [owner, routerAddress],
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
function calculateMinAmount(amount, slippageTolerance) {
|
|
32
|
+
if (slippageTolerance < 0) {
|
|
33
|
+
throw new Error('Slippage tolerance cannot be negative');
|
|
34
|
+
}
|
|
35
|
+
if (slippageTolerance > 100) {
|
|
36
|
+
throw new Error('Slippage tolerance cannot exceed 100%');
|
|
37
|
+
}
|
|
38
|
+
const basisPoints = BigInt(Math.floor(slippageTolerance * 100));
|
|
39
|
+
const slippageMultiplier = 10000n - basisPoints;
|
|
40
|
+
return (amount * slippageMultiplier) / 10000n;
|
|
41
|
+
}
|
|
42
|
+
async function getPoolInfo(poolService, poolAddress) {
|
|
43
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
44
|
+
const pools = await poolService.getPools();
|
|
45
|
+
const pool = pools.find((p) => p.poolAddr.toLowerCase() === poolAddress.toLowerCase());
|
|
46
|
+
if (!pool) {
|
|
47
|
+
throw new Error(`Pool not found: ${poolAddress}. Ensure the address is a valid FPMM pool.`);
|
|
48
|
+
}
|
|
49
|
+
if (pool.poolType !== types_1.PoolType.FPMM) {
|
|
50
|
+
throw new Error(`Pool ${poolAddress} is type ${pool.poolType}. Only FPMM pools support liquidity provision.`);
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
token0: pool.token0,
|
|
54
|
+
token1: pool.token1,
|
|
55
|
+
factoryAddr: pool.factoryAddr,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function validatePoolTokens(poolToken0, poolToken1, tokenA, tokenB) {
|
|
59
|
+
const tokenALower = tokenA.toLowerCase();
|
|
60
|
+
const tokenBLower = tokenB.toLowerCase();
|
|
61
|
+
const token0Lower = poolToken0.toLowerCase();
|
|
62
|
+
const token1Lower = poolToken1.toLowerCase();
|
|
63
|
+
// Ensure both tokens belong to pool
|
|
64
|
+
const aInPool = tokenALower === token0Lower || tokenALower === token1Lower;
|
|
65
|
+
const bInPool = tokenBLower === token0Lower || tokenBLower === token1Lower;
|
|
66
|
+
if (!aInPool || !bInPool) {
|
|
67
|
+
throw new Error(`Tokens don't match pool. Pool has ${poolToken0} and ${poolToken1}, but received ${tokenA} and ${tokenB}`);
|
|
68
|
+
}
|
|
69
|
+
// Ensure tokens are different
|
|
70
|
+
if (tokenALower === tokenBLower) {
|
|
71
|
+
throw new Error('tokenA and tokenB must be different');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=liquidityHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquidityHelpers.js","sourceRoot":"","sources":["../../../src/services/liquidity/liquidityHelpers.ts"],"names":[],"mappings":";;AAOA,kDAQC;AAED,oCAaC;AAED,gDAWC;AAED,kCA0BC;AAED,gDAyBC;AAlGD,+BAAgE;AAEhE,4CAAuD;AACvD,0CAA2C;AAC3C,oDAAkE;AAClE,uDAAwD;AAExD,SAAgB,mBAAmB,CAAC,OAAe,EAAE,KAAc,EAAE,MAAc;IACjF,MAAM,aAAa,GAAG,IAAA,8BAAkB,EAAC,OAAkB,EAAE,QAAQ,CAAC,CAAA;IACtE,MAAM,IAAI,GAAG,IAAA,yBAAkB,EAAC;QAC9B,GAAG,EAAE,gBAAS;QACd,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAA;IACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;AACxC,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,YAA0B,EAC1B,KAAc,EACd,KAAc,EACd,OAAe;IAEf,MAAM,aAAa,GAAG,IAAA,8BAAkB,EAAC,OAAkB,EAAE,QAAQ,CAAC,CAAA;IACtE,OAAO,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;QACtC,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,gBAAS;QACd,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC;KAC7B,CAAC,CAAW,CAAA;AACf,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAAc,EAAE,iBAAyB;IAC1E,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IACD,IAAI,iBAAiB,GAAG,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAA;IAC/D,MAAM,kBAAkB,GAAG,MAAM,GAAG,WAAW,CAAA;IAC/C,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC,GAAG,MAAM,CAAA;AAC/C,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,WAAwB,EACxB,WAAmB;IAMnB,IAAA,4BAAe,EAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAE3C,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAA;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;IAEtF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,4CAA4C,CAAC,CAAA;IAC7F,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,QAAQ,WAAW,YAAY,IAAI,CAAC,QAAQ,gDAAgD,CAAC,CAAA;IAC/G,CAAC;IAED,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAiB;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAiB;QAC9B,WAAW,EAAE,IAAI,CAAC,WAAsB;KACzC,CAAA;AACH,CAAC;AAED,SAAgB,kBAAkB,CAChC,UAAmB,EACnB,UAAmB,EACnB,MAAc,EACd,MAAc;IAEd,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;IAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;IAE5C,oCAAoC;IACpC,MAAM,OAAO,GAAG,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,WAAW,CAAA;IAC1E,MAAM,OAAO,GAAG,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,WAAW,CAAA;IAE1E,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,qCAAqC,UAAU,QAAQ,UAAU,kBAAkB,MAAM,QAAQ,MAAM,EAAE,CAC1G,CAAA;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACxD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Address } from 'viem';
|
|
2
|
+
import { RouteService } from '../routes';
|
|
3
|
+
import { ZapParams } from '../../core/types';
|
|
4
|
+
import { RouterRoute } from '../../utils/pathEncoder';
|
|
5
|
+
/**
|
|
6
|
+
* Encodes the zapIn function call for the Router contract
|
|
7
|
+
*/
|
|
8
|
+
export declare function encodeZapInCall(tokenIn: Address, amountInA: bigint, amountInB: bigint, zapParams: ZapParams, routesA: RouterRoute[], routesB: RouterRoute[], recipient: Address): string;
|
|
9
|
+
/**
|
|
10
|
+
* Encodes the zapOut function call for the Router contract
|
|
11
|
+
*/
|
|
12
|
+
export declare function encodeZapOutCall(tokenOut: Address, liquidity: bigint, zapParams: ZapParams, routesA: RouterRoute[], routesB: RouterRoute[]): string;
|
|
13
|
+
/**
|
|
14
|
+
* Finds routes for zap in operations (from tokenIn to both pool tokens)
|
|
15
|
+
*
|
|
16
|
+
* @param routeService - Route service for finding swap paths
|
|
17
|
+
* @param tokenIn - Input token address
|
|
18
|
+
* @param token0 - Pool's token0 address
|
|
19
|
+
* @param token1 - Pool's token1 address
|
|
20
|
+
* @returns Routes from tokenIn to token0 and token1
|
|
21
|
+
*/
|
|
22
|
+
export declare function findZapInRoutes(routeService: RouteService, tokenIn: string, token0: string, token1: string): Promise<{
|
|
23
|
+
routesA: RouterRoute[];
|
|
24
|
+
routesB: RouterRoute[];
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Finds routes for zap out operations (from both pool tokens to tokenOut)
|
|
28
|
+
*
|
|
29
|
+
* @param routeService - Route service for finding swap paths
|
|
30
|
+
* @param token0 - Pool's token0 address
|
|
31
|
+
* @param token1 - Pool's token1 address
|
|
32
|
+
* @param tokenOut - Output token address
|
|
33
|
+
* @returns Routes from token0 and token1 to tokenOut
|
|
34
|
+
*/
|
|
35
|
+
export declare function findZapOutRoutes(routeService: RouteService, token0: string, token1: string, tokenOut: string): Promise<{
|
|
36
|
+
routesA: RouterRoute[];
|
|
37
|
+
routesB: RouterRoute[];
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Splits an amount into two parts based on a ratio
|
|
41
|
+
*
|
|
42
|
+
* @param amountIn - Total input amount
|
|
43
|
+
* @param splitRatio - Ratio for splitting (0-1, e.g., 0.5 for 50/50)
|
|
44
|
+
* @returns Split amounts for each part
|
|
45
|
+
*/
|
|
46
|
+
export declare function splitAmount(amountIn: bigint, splitRatio: number): {
|
|
47
|
+
amountA: bigint;
|
|
48
|
+
amountB: bigint;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Estimates minimum LP tokens from zap in amounts.
|
|
52
|
+
*
|
|
53
|
+
* This is a conservative lower-bound estimate. The inputs are slippage-adjusted
|
|
54
|
+
* minimums, not expected amounts. Actual LP tokens minted on-chain may be higher
|
|
55
|
+
* because the router uses balanceOf(address(this)) after swaps, which can exceed
|
|
56
|
+
* the pre-calculated minimums.
|
|
57
|
+
*
|
|
58
|
+
* @param amountOutA - Minimum amount of token0 after swap (slippage-adjusted)
|
|
59
|
+
* @param amountOutB - Minimum amount of token1 after swap (slippage-adjusted)
|
|
60
|
+
* @param reserve0 - Current reserve of token0 in pool
|
|
61
|
+
* @param reserve1 - Current reserve of token1 in pool
|
|
62
|
+
* @param totalSupply - Total LP token supply
|
|
63
|
+
* @returns Conservative estimate of minimum LP tokens to be minted
|
|
64
|
+
*/
|
|
65
|
+
export declare function estimateLiquidityFromZapIn(amountOutA: bigint, amountOutB: bigint, reserve0: bigint, reserve1: bigint, totalSupply: bigint): bigint;
|
|
66
|
+
//# sourceMappingURL=zapHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zapHelpers.d.ts","sourceRoot":"","sources":["../../../src/services/liquidity/zapHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAsB,MAAM,MAAM,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAmB,WAAW,EAAwB,MAAM,yBAAyB,CAAA;AAI5F;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE,WAAW,EAAE,EACtB,SAAS,EAAE,OAAO,GACjB,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE,WAAW,EAAE,GACrB,MAAM,CAMR;AAID;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAiB7D;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAiB7D;AAID;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAStG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,CAiBR"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeZapInCall = encodeZapInCall;
|
|
4
|
+
exports.encodeZapOutCall = encodeZapOutCall;
|
|
5
|
+
exports.findZapInRoutes = findZapInRoutes;
|
|
6
|
+
exports.findZapOutRoutes = findZapOutRoutes;
|
|
7
|
+
exports.splitAmount = splitAmount;
|
|
8
|
+
exports.estimateLiquidityFromZapIn = estimateLiquidityFromZapIn;
|
|
9
|
+
const viem_1 = require("viem");
|
|
10
|
+
const abis_1 = require("../../core/abis");
|
|
11
|
+
const pathEncoder_1 = require("../../utils/pathEncoder");
|
|
12
|
+
// ========== ENCODING FUNCTIONS ==========
|
|
13
|
+
/**
|
|
14
|
+
* Encodes the zapIn function call for the Router contract
|
|
15
|
+
*/
|
|
16
|
+
function encodeZapInCall(tokenIn, amountInA, amountInB, zapParams, routesA, routesB, recipient) {
|
|
17
|
+
return (0, viem_1.encodeFunctionData)({
|
|
18
|
+
abi: abis_1.ROUTER_ABI,
|
|
19
|
+
functionName: 'zapIn',
|
|
20
|
+
args: [tokenIn, amountInA, amountInB, zapParams, routesA, routesB, recipient],
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Encodes the zapOut function call for the Router contract
|
|
25
|
+
*/
|
|
26
|
+
function encodeZapOutCall(tokenOut, liquidity, zapParams, routesA, routesB) {
|
|
27
|
+
return (0, viem_1.encodeFunctionData)({
|
|
28
|
+
abi: abis_1.ROUTER_ABI,
|
|
29
|
+
functionName: 'zapOut',
|
|
30
|
+
args: [tokenOut, liquidity, zapParams, routesA, routesB],
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// ========== ROUTING FUNCTIONS ==========
|
|
34
|
+
/**
|
|
35
|
+
* Finds routes for zap in operations (from tokenIn to both pool tokens)
|
|
36
|
+
*
|
|
37
|
+
* @param routeService - Route service for finding swap paths
|
|
38
|
+
* @param tokenIn - Input token address
|
|
39
|
+
* @param token0 - Pool's token0 address
|
|
40
|
+
* @param token1 - Pool's token1 address
|
|
41
|
+
* @returns Routes from tokenIn to token0 and token1
|
|
42
|
+
*/
|
|
43
|
+
async function findZapInRoutes(routeService, tokenIn, token0, token1) {
|
|
44
|
+
let routesA = [];
|
|
45
|
+
let routesB = [];
|
|
46
|
+
// Find route from tokenIn to token0 (if different)
|
|
47
|
+
if (tokenIn.toLowerCase() !== token0.toLowerCase()) {
|
|
48
|
+
const routeA = await routeService.findRoute(tokenIn, token0);
|
|
49
|
+
routesA = (0, pathEncoder_1.encodeRoutePath)(routeA.path, tokenIn, token0);
|
|
50
|
+
}
|
|
51
|
+
// Find route from tokenIn to token1 (if different)
|
|
52
|
+
if (tokenIn.toLowerCase() !== token1.toLowerCase()) {
|
|
53
|
+
const routeB = await routeService.findRoute(tokenIn, token1);
|
|
54
|
+
routesB = (0, pathEncoder_1.encodeRoutePath)(routeB.path, tokenIn, token1);
|
|
55
|
+
}
|
|
56
|
+
return { routesA, routesB };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Finds routes for zap out operations (from both pool tokens to tokenOut)
|
|
60
|
+
*
|
|
61
|
+
* @param routeService - Route service for finding swap paths
|
|
62
|
+
* @param token0 - Pool's token0 address
|
|
63
|
+
* @param token1 - Pool's token1 address
|
|
64
|
+
* @param tokenOut - Output token address
|
|
65
|
+
* @returns Routes from token0 and token1 to tokenOut
|
|
66
|
+
*/
|
|
67
|
+
async function findZapOutRoutes(routeService, token0, token1, tokenOut) {
|
|
68
|
+
let routesA = [];
|
|
69
|
+
let routesB = [];
|
|
70
|
+
// Find route from token0 to tokenOut (if different)
|
|
71
|
+
if (token0.toLowerCase() !== tokenOut.toLowerCase()) {
|
|
72
|
+
const routeA = await routeService.findRoute(token0, tokenOut);
|
|
73
|
+
routesA = (0, pathEncoder_1.encodeRoutePath)(routeA.path, token0, tokenOut);
|
|
74
|
+
}
|
|
75
|
+
// Find route from token1 to tokenOut (if different)
|
|
76
|
+
if (token1.toLowerCase() !== tokenOut.toLowerCase()) {
|
|
77
|
+
const routeB = await routeService.findRoute(token1, tokenOut);
|
|
78
|
+
routesB = (0, pathEncoder_1.encodeRoutePath)(routeB.path, token1, tokenOut);
|
|
79
|
+
}
|
|
80
|
+
return { routesA, routesB };
|
|
81
|
+
}
|
|
82
|
+
// ========== CALCULATION FUNCTIONS ==========
|
|
83
|
+
/**
|
|
84
|
+
* Splits an amount into two parts based on a ratio
|
|
85
|
+
*
|
|
86
|
+
* @param amountIn - Total input amount
|
|
87
|
+
* @param splitRatio - Ratio for splitting (0-1, e.g., 0.5 for 50/50)
|
|
88
|
+
* @returns Split amounts for each part
|
|
89
|
+
*/
|
|
90
|
+
function splitAmount(amountIn, splitRatio) {
|
|
91
|
+
if (splitRatio < 0 || splitRatio > 1) {
|
|
92
|
+
throw new Error('Split ratio must be between 0 and 1');
|
|
93
|
+
}
|
|
94
|
+
const amountA = (amountIn * BigInt(Math.floor(splitRatio * 10000))) / 10000n;
|
|
95
|
+
const amountB = amountIn - amountA;
|
|
96
|
+
return { amountA, amountB };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Estimates minimum LP tokens from zap in amounts.
|
|
100
|
+
*
|
|
101
|
+
* This is a conservative lower-bound estimate. The inputs are slippage-adjusted
|
|
102
|
+
* minimums, not expected amounts. Actual LP tokens minted on-chain may be higher
|
|
103
|
+
* because the router uses balanceOf(address(this)) after swaps, which can exceed
|
|
104
|
+
* the pre-calculated minimums.
|
|
105
|
+
*
|
|
106
|
+
* @param amountOutA - Minimum amount of token0 after swap (slippage-adjusted)
|
|
107
|
+
* @param amountOutB - Minimum amount of token1 after swap (slippage-adjusted)
|
|
108
|
+
* @param reserve0 - Current reserve of token0 in pool
|
|
109
|
+
* @param reserve1 - Current reserve of token1 in pool
|
|
110
|
+
* @param totalSupply - Total LP token supply
|
|
111
|
+
* @returns Conservative estimate of minimum LP tokens to be minted
|
|
112
|
+
*/
|
|
113
|
+
function estimateLiquidityFromZapIn(amountOutA, amountOutB, reserve0, reserve1, totalSupply) {
|
|
114
|
+
if (totalSupply === 0n) {
|
|
115
|
+
// First liquidity provision - use geometric mean with BigInt sqrt
|
|
116
|
+
// to avoid precision loss from Number() conversion on 18-decimal values
|
|
117
|
+
const product = amountOutA * amountOutB;
|
|
118
|
+
if (product === 0n)
|
|
119
|
+
return 0n;
|
|
120
|
+
let x = product;
|
|
121
|
+
let y = (x + 1n) / 2n;
|
|
122
|
+
while (y < x) {
|
|
123
|
+
x = y;
|
|
124
|
+
y = (x + product / x) / 2n;
|
|
125
|
+
}
|
|
126
|
+
return x;
|
|
127
|
+
}
|
|
128
|
+
// Existing pool - calculate based on smaller ratio
|
|
129
|
+
const liquidityA = (amountOutA * totalSupply) / reserve0;
|
|
130
|
+
const liquidityB = (amountOutB * totalSupply) / reserve1;
|
|
131
|
+
return liquidityA < liquidityB ? liquidityA : liquidityB;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=zapHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zapHelpers.js","sourceRoot":"","sources":["../../../src/services/liquidity/zapHelpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PublicClient } from 'viem';
|
|
2
|
+
import { PoolService } from '../pools';
|
|
3
|
+
import { RouteService } from '../routes';
|
|
4
|
+
import { LiquidityOptions, ZapInQuote, ZapInDetails, ZapInTransaction } from '../../core/types';
|
|
5
|
+
/**
|
|
6
|
+
* Builds a complete zap in transaction including approval if needed
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildZapInTransactionInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, routeService: RouteService, poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, recipient: string, owner: string, options: LiquidityOptions): Promise<ZapInTransaction>;
|
|
9
|
+
/**
|
|
10
|
+
* Builds zap in transaction parameters without checking approval
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildZapInParamsInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, routeService: RouteService, poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, recipient: string, options: LiquidityOptions): Promise<ZapInDetails>;
|
|
13
|
+
/**
|
|
14
|
+
* Quotes a zap in operation (read-only)
|
|
15
|
+
*/
|
|
16
|
+
export declare function quoteZapInInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, routeService: RouteService, poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, options: LiquidityOptions): Promise<ZapInQuote>;
|
|
17
|
+
//# sourceMappingURL=zapIn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zapIn.d.ts","sourceRoot":"","sources":["../../../src/services/liquidity/zapIn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,YAAY,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAEjB,MAAM,kBAAkB,CAAA;AAezB;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,YAAY,CAAC,CAyEvB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CA0CrB"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildZapInTransactionInternal = buildZapInTransactionInternal;
|
|
4
|
+
exports.buildZapInParamsInternal = buildZapInParamsInternal;
|
|
5
|
+
exports.quoteZapInInternal = quoteZapInInternal;
|
|
6
|
+
const abis_1 = require("../../core/abis");
|
|
7
|
+
const constants_1 = require("../../core/constants");
|
|
8
|
+
const validation_1 = require("../../utils/validation");
|
|
9
|
+
const liquidityHelpers_1 = require("./liquidityHelpers");
|
|
10
|
+
const zapHelpers_1 = require("./zapHelpers");
|
|
11
|
+
// ========== ZAP IN OPERATIONS ==========
|
|
12
|
+
/**
|
|
13
|
+
* Builds a complete zap in transaction including approval if needed
|
|
14
|
+
*/
|
|
15
|
+
async function buildZapInTransactionInternal(publicClient, chainId, poolService, routeService, poolAddress, tokenIn, amountIn, amountInSplit, recipient, owner, options) {
|
|
16
|
+
(0, validation_1.validateAddress)(owner, 'owner');
|
|
17
|
+
// Build zap in params
|
|
18
|
+
const zapIn = await buildZapInParamsInternal(publicClient, chainId, poolService, routeService, poolAddress, tokenIn, amountIn, amountInSplit, recipient, options);
|
|
19
|
+
// Check allowance for input token
|
|
20
|
+
const tokenInAddr = tokenIn;
|
|
21
|
+
const ownerAddr = owner;
|
|
22
|
+
const currentAllowance = await (0, liquidityHelpers_1.getAllowance)(publicClient, tokenInAddr, ownerAddr, chainId);
|
|
23
|
+
// Build approval if needed
|
|
24
|
+
const approval = currentAllowance < amountIn
|
|
25
|
+
? { token: tokenIn, amount: amountIn, params: (0, liquidityHelpers_1.buildApprovalParams)(chainId, tokenInAddr, amountIn) }
|
|
26
|
+
: null;
|
|
27
|
+
return { approval, zapIn };
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Builds zap in transaction parameters without checking approval
|
|
31
|
+
*/
|
|
32
|
+
async function buildZapInParamsInternal(publicClient, chainId, poolService, routeService, poolAddress, tokenIn, amountIn, amountInSplit, recipient, options) {
|
|
33
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
34
|
+
(0, validation_1.validateAddress)(tokenIn, 'tokenIn');
|
|
35
|
+
(0, validation_1.validateAddress)(recipient, 'recipient');
|
|
36
|
+
// Get pool info
|
|
37
|
+
const { token0, token1, factoryAddr } = await (0, liquidityHelpers_1.getPoolInfo)(poolService, poolAddress);
|
|
38
|
+
// Split input amount
|
|
39
|
+
const { amountA: amountInA, amountB: amountInB } = (0, zapHelpers_1.splitAmount)(amountIn, amountInSplit);
|
|
40
|
+
// Find routes for swapping
|
|
41
|
+
const { routesA, routesB } = await (0, zapHelpers_1.findZapInRoutes)(routeService, tokenIn, token0, token1);
|
|
42
|
+
// Generate zap parameters using Router helper
|
|
43
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
44
|
+
const [amountOutMinA, amountOutMinB, amountAMin, amountBMin] = (await publicClient.readContract({
|
|
45
|
+
address: routerAddress,
|
|
46
|
+
abi: abis_1.ROUTER_ABI,
|
|
47
|
+
functionName: 'generateZapInParams',
|
|
48
|
+
args: [token0, token1, factoryAddr, amountInA, amountInB, routesA, routesB],
|
|
49
|
+
}));
|
|
50
|
+
// Apply slippage to all minimum amounts
|
|
51
|
+
const finalAmountAMin = (0, liquidityHelpers_1.calculateMinAmount)(amountAMin, options.slippageTolerance);
|
|
52
|
+
const finalAmountBMin = (0, liquidityHelpers_1.calculateMinAmount)(amountBMin, options.slippageTolerance);
|
|
53
|
+
const finalAmountOutMinA = (0, liquidityHelpers_1.calculateMinAmount)(amountOutMinA, options.slippageTolerance);
|
|
54
|
+
const finalAmountOutMinB = (0, liquidityHelpers_1.calculateMinAmount)(amountOutMinB, options.slippageTolerance);
|
|
55
|
+
// Estimate expected liquidity
|
|
56
|
+
const poolDetails = await poolService.getPoolDetails(poolAddress);
|
|
57
|
+
const totalSupply = (await publicClient.readContract({
|
|
58
|
+
address: poolAddress,
|
|
59
|
+
abi: abis_1.ERC20_ABI,
|
|
60
|
+
functionName: 'totalSupply',
|
|
61
|
+
args: [],
|
|
62
|
+
}));
|
|
63
|
+
const expectedLiquidity = (0, zapHelpers_1.estimateLiquidityFromZapIn)(finalAmountOutMinA, finalAmountOutMinB, poolDetails.reserve0, poolDetails.reserve1, totalSupply);
|
|
64
|
+
const zapParams = {
|
|
65
|
+
tokenA: token0,
|
|
66
|
+
tokenB: token1,
|
|
67
|
+
factory: factoryAddr,
|
|
68
|
+
amountAMin: finalAmountAMin,
|
|
69
|
+
amountBMin: finalAmountBMin,
|
|
70
|
+
amountOutMinA: finalAmountOutMinA,
|
|
71
|
+
amountOutMinB: finalAmountOutMinB,
|
|
72
|
+
};
|
|
73
|
+
const data = (0, zapHelpers_1.encodeZapInCall)(tokenIn, amountInA, amountInB, zapParams, routesA, routesB, recipient);
|
|
74
|
+
return {
|
|
75
|
+
params: {
|
|
76
|
+
to: routerAddress,
|
|
77
|
+
data,
|
|
78
|
+
value: '0',
|
|
79
|
+
},
|
|
80
|
+
poolAddress,
|
|
81
|
+
tokenIn,
|
|
82
|
+
amountIn,
|
|
83
|
+
amountInA,
|
|
84
|
+
amountInB,
|
|
85
|
+
routesA,
|
|
86
|
+
routesB,
|
|
87
|
+
zapParams,
|
|
88
|
+
estimatedMinLiquidity: expectedLiquidity,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Quotes a zap in operation (read-only)
|
|
93
|
+
*/
|
|
94
|
+
async function quoteZapInInternal(publicClient, chainId, poolService, routeService, poolAddress, tokenIn, amountIn, amountInSplit, options) {
|
|
95
|
+
(0, validation_1.validateAddress)(poolAddress, 'poolAddress');
|
|
96
|
+
(0, validation_1.validateAddress)(tokenIn, 'tokenIn');
|
|
97
|
+
const { token0, token1, factoryAddr } = await (0, liquidityHelpers_1.getPoolInfo)(poolService, poolAddress);
|
|
98
|
+
const { amountA: amountInA, amountB: amountInB } = (0, zapHelpers_1.splitAmount)(amountIn, amountInSplit);
|
|
99
|
+
const { routesA, routesB } = await (0, zapHelpers_1.findZapInRoutes)(routeService, tokenIn, token0, token1);
|
|
100
|
+
const routerAddress = (0, constants_1.getContractAddress)(chainId, 'Router');
|
|
101
|
+
const [amountOutMinA, amountOutMinB, amountAMin, amountBMin] = (await publicClient.readContract({
|
|
102
|
+
address: routerAddress,
|
|
103
|
+
abi: abis_1.ROUTER_ABI,
|
|
104
|
+
functionName: 'generateZapInParams',
|
|
105
|
+
args: [token0, token1, factoryAddr, amountInA, amountInB, routesA, routesB],
|
|
106
|
+
}));
|
|
107
|
+
const poolDetails = await poolService.getPoolDetails(poolAddress);
|
|
108
|
+
const totalSupply = (await publicClient.readContract({
|
|
109
|
+
address: poolAddress,
|
|
110
|
+
abi: abis_1.ERC20_ABI,
|
|
111
|
+
functionName: 'totalSupply',
|
|
112
|
+
args: [],
|
|
113
|
+
}));
|
|
114
|
+
const finalAmountOutMinA = (0, liquidityHelpers_1.calculateMinAmount)(amountOutMinA, options.slippageTolerance);
|
|
115
|
+
const finalAmountOutMinB = (0, liquidityHelpers_1.calculateMinAmount)(amountOutMinB, options.slippageTolerance);
|
|
116
|
+
const expectedLiquidity = (0, zapHelpers_1.estimateLiquidityFromZapIn)(finalAmountOutMinA, finalAmountOutMinB, poolDetails.reserve0, poolDetails.reserve1, totalSupply);
|
|
117
|
+
return {
|
|
118
|
+
amountOutMinA: finalAmountOutMinA,
|
|
119
|
+
amountOutMinB: finalAmountOutMinB,
|
|
120
|
+
amountAMin: (0, liquidityHelpers_1.calculateMinAmount)(amountAMin, options.slippageTolerance),
|
|
121
|
+
amountBMin: (0, liquidityHelpers_1.calculateMinAmount)(amountBMin, options.slippageTolerance),
|
|
122
|
+
estimatedMinLiquidity: expectedLiquidity,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=zapIn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zapIn.js","sourceRoot":"","sources":["../../../src/services/liquidity/zapIn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PublicClient } from 'viem';
|
|
2
|
+
import { PoolService } from '../pools';
|
|
3
|
+
import { RouteService } from '../routes';
|
|
4
|
+
import { LiquidityOptions, ZapOutQuote, ZapOutDetails, ZapOutTransaction } from '../../core/types';
|
|
5
|
+
/**
|
|
6
|
+
* Builds a complete zap out transaction including approval if needed
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildZapOutTransactionInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, routeService: RouteService, poolAddress: string, tokenOut: string, liquidity: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<ZapOutTransaction>;
|
|
9
|
+
/**
|
|
10
|
+
* Builds zap out transaction parameters without checking approval
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildZapOutParamsInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, routeService: RouteService, poolAddress: string, tokenOut: string, liquidity: bigint, recipient: string, options: LiquidityOptions): Promise<ZapOutDetails>;
|
|
13
|
+
/**
|
|
14
|
+
* Quotes a zap out operation (read-only)
|
|
15
|
+
*/
|
|
16
|
+
export declare function quoteZapOutInternal(publicClient: PublicClient, chainId: number, poolService: PoolService, routeService: RouteService, poolAddress: string, tokenOut: string, liquidity: bigint, options: LiquidityOptions): Promise<ZapOutQuote>;
|
|
17
|
+
//# sourceMappingURL=zapOut.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zapOut.d.ts","sourceRoot":"","sources":["../../../src/services/liquidity/zapOut.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,MAAM,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,gBAAgB,EAGhB,WAAW,EACX,aAAa,EACb,iBAAiB,EAElB,MAAM,kBAAkB,CAAA;AAezB;;GAEG;AACH,wBAAsB,8BAA8B,CAClD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAqD5B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,WAAW,CAAC,CA2BtB"}
|