@mento-protocol/mento-sdk 3.0.0-beta.3 → 3.0.0-beta.31
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 +12 -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 +30 -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 +35 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -14
- 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 -112
- 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 -6
- 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 +42 -17
- 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
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { type PublicClient } from 'viem';
|
|
1
2
|
import { ContractAddresses } from './core/types';
|
|
2
3
|
import { TokenService } from './services/tokens';
|
|
3
4
|
import { PoolService } from './services/pools';
|
|
4
5
|
import { RouteService } from './services/routes';
|
|
5
6
|
import { QuoteService } from './services/quotes';
|
|
6
7
|
import { SwapService } from './services/swap';
|
|
8
|
+
import { TradingService } from './services/trading';
|
|
9
|
+
import { LiquidityService } from './services/liquidity';
|
|
10
|
+
import { BorrowService } from './services/borrow';
|
|
7
11
|
/**
|
|
8
12
|
* @class Mento
|
|
9
13
|
* @description The main class for the Mento SDK. Initializes a viem PublicClient internally
|
|
@@ -12,6 +16,8 @@ import { SwapService } from './services/swap';
|
|
|
12
16
|
* const mento = await Mento.create(ChainId.CELO);
|
|
13
17
|
* // or with custom RPC URL
|
|
14
18
|
* const mento = await Mento.create(ChainId.CELO, 'https://custom-rpc-url.com');
|
|
19
|
+
* // or with an existing viem PublicClient
|
|
20
|
+
* const mento = await Mento.create(ChainId.CELO, myPublicClient);
|
|
15
21
|
*
|
|
16
22
|
* // Get all stable tokens
|
|
17
23
|
* const stableTokens = await mento.tokens.getStableTokens();
|
|
@@ -23,13 +29,32 @@ import { SwapService } from './services/swap';
|
|
|
23
29
|
* const pools = await mento.pools.getPools();
|
|
24
30
|
*
|
|
25
31
|
* // Find a route between tokens
|
|
26
|
-
* const route = await mento.routes.findRoute(
|
|
32
|
+
* const route = await mento.routes.findRoute(USDm, CELO);
|
|
27
33
|
*
|
|
28
34
|
* // Get a quote for a swap
|
|
29
|
-
* const amountOut = await mento.quotes.getAmountOut(
|
|
35
|
+
* const amountOut = await mento.quotes.getAmountOut(USDm, CELO, amountIn);
|
|
30
36
|
*
|
|
31
37
|
* // Build swap parameters
|
|
32
|
-
* const swapDetails = await mento.swap.buildSwapParams(
|
|
38
|
+
* const swapDetails = await mento.swap.buildSwapParams(USDm, CELO, amountIn, recipient, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) });
|
|
39
|
+
*
|
|
40
|
+
* // Check if a pair is tradable (circuit breaker check)
|
|
41
|
+
* const isTradable = await mento.trading.isPairTradable(USDm, CELO);
|
|
42
|
+
*
|
|
43
|
+
* // Get trading limits for a pool
|
|
44
|
+
* const limits = await mento.trading.getPoolTradingLimits(pool);
|
|
45
|
+
*
|
|
46
|
+
* // Get full tradability status (circuit breaker + limits)
|
|
47
|
+
* const status = await mento.trading.getPoolTradabilityStatus(pool);
|
|
48
|
+
*
|
|
49
|
+
* // Add liquidity to a pool
|
|
50
|
+
* const { approval0, approval1, addLiquidity } = await mento.liquidity.buildAddLiquidityTransaction(
|
|
51
|
+
* poolAddress, amount0, amount1, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
|
|
52
|
+
* );
|
|
53
|
+
*
|
|
54
|
+
* // Add liquidity using a single token (zap in)
|
|
55
|
+
* const { approval, zapIn } = await mento.liquidity.buildZapInTransaction(
|
|
56
|
+
* poolAddress, tokenIn, amountIn, 0.5, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
|
|
57
|
+
* );
|
|
33
58
|
*/
|
|
34
59
|
export declare class Mento {
|
|
35
60
|
private chainId;
|
|
@@ -38,14 +63,18 @@ export declare class Mento {
|
|
|
38
63
|
routes: RouteService;
|
|
39
64
|
quotes: QuoteService;
|
|
40
65
|
swap: SwapService;
|
|
66
|
+
trading: TradingService;
|
|
67
|
+
liquidity: LiquidityService;
|
|
68
|
+
borrow: BorrowService;
|
|
41
69
|
private constructor();
|
|
42
70
|
/**
|
|
43
71
|
* Create a new Mento SDK instance
|
|
44
72
|
* @param chainId - The chain ID (e.g., ChainId.CELO, ChainId.CELO_SEPOLIA)
|
|
45
|
-
* @param
|
|
73
|
+
* @param rpcUrlOrClient - Optional RPC URL string or an existing viem PublicClient.
|
|
74
|
+
* If not provided, uses the default RPC URL for the chain.
|
|
46
75
|
* @returns A new Mento instance
|
|
47
76
|
*/
|
|
48
|
-
static create(chainId: number,
|
|
77
|
+
static create(chainId: number, rpcUrlOrClient?: string | PublicClient): Promise<Mento>;
|
|
49
78
|
/**
|
|
50
79
|
* Get the address of a contract for the current chain
|
|
51
80
|
* @param contractName - The contract name
|
|
@@ -54,6 +83,7 @@ export declare class Mento {
|
|
|
54
83
|
getContractAddress(contractName: keyof ContractAddresses): string;
|
|
55
84
|
}
|
|
56
85
|
export * from './core/constants';
|
|
86
|
+
export * from './core/errors';
|
|
57
87
|
export * from './core/types';
|
|
58
88
|
export * from './core/abis';
|
|
59
89
|
export * from './services';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,KAAK;IAEd,OAAO,CAAC,OAAO;IACR,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IAC3B,MAAM,EAAE,aAAa;IAT9B,OAAO;IAYP;;;;;;OAMG;WACiB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;IA4CnG;;;;OAIG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,iBAAiB,GAAG,MAAM;CAGzE;AAED,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Mento = void 0;
|
|
18
18
|
const viem_1 = require("viem");
|
|
19
|
+
const chainId_1 = require("./core/constants/chainId");
|
|
19
20
|
const addresses_1 = require("./core/constants/addresses");
|
|
20
21
|
const chainConfig_1 = require("./utils/chainConfig");
|
|
21
22
|
const tokens_1 = require("./services/tokens");
|
|
@@ -23,6 +24,9 @@ const pools_1 = require("./services/pools");
|
|
|
23
24
|
const routes_1 = require("./services/routes");
|
|
24
25
|
const quotes_1 = require("./services/quotes");
|
|
25
26
|
const swap_1 = require("./services/swap");
|
|
27
|
+
const trading_1 = require("./services/trading");
|
|
28
|
+
const liquidity_1 = require("./services/liquidity");
|
|
29
|
+
const borrow_1 = require("./services/borrow");
|
|
26
30
|
/**
|
|
27
31
|
* @class Mento
|
|
28
32
|
* @description The main class for the Mento SDK. Initializes a viem PublicClient internally
|
|
@@ -31,6 +35,8 @@ const swap_1 = require("./services/swap");
|
|
|
31
35
|
* const mento = await Mento.create(ChainId.CELO);
|
|
32
36
|
* // or with custom RPC URL
|
|
33
37
|
* const mento = await Mento.create(ChainId.CELO, 'https://custom-rpc-url.com');
|
|
38
|
+
* // or with an existing viem PublicClient
|
|
39
|
+
* const mento = await Mento.create(ChainId.CELO, myPublicClient);
|
|
34
40
|
*
|
|
35
41
|
* // Get all stable tokens
|
|
36
42
|
* const stableTokens = await mento.tokens.getStableTokens();
|
|
@@ -42,44 +48,80 @@ const swap_1 = require("./services/swap");
|
|
|
42
48
|
* const pools = await mento.pools.getPools();
|
|
43
49
|
*
|
|
44
50
|
* // Find a route between tokens
|
|
45
|
-
* const route = await mento.routes.findRoute(
|
|
51
|
+
* const route = await mento.routes.findRoute(USDm, CELO);
|
|
46
52
|
*
|
|
47
53
|
* // Get a quote for a swap
|
|
48
|
-
* const amountOut = await mento.quotes.getAmountOut(
|
|
54
|
+
* const amountOut = await mento.quotes.getAmountOut(USDm, CELO, amountIn);
|
|
49
55
|
*
|
|
50
56
|
* // Build swap parameters
|
|
51
|
-
* const swapDetails = await mento.swap.buildSwapParams(
|
|
57
|
+
* const swapDetails = await mento.swap.buildSwapParams(USDm, CELO, amountIn, recipient, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) });
|
|
58
|
+
*
|
|
59
|
+
* // Check if a pair is tradable (circuit breaker check)
|
|
60
|
+
* const isTradable = await mento.trading.isPairTradable(USDm, CELO);
|
|
61
|
+
*
|
|
62
|
+
* // Get trading limits for a pool
|
|
63
|
+
* const limits = await mento.trading.getPoolTradingLimits(pool);
|
|
64
|
+
*
|
|
65
|
+
* // Get full tradability status (circuit breaker + limits)
|
|
66
|
+
* const status = await mento.trading.getPoolTradabilityStatus(pool);
|
|
67
|
+
*
|
|
68
|
+
* // Add liquidity to a pool
|
|
69
|
+
* const { approval0, approval1, addLiquidity } = await mento.liquidity.buildAddLiquidityTransaction(
|
|
70
|
+
* poolAddress, amount0, amount1, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
|
|
71
|
+
* );
|
|
72
|
+
*
|
|
73
|
+
* // Add liquidity using a single token (zap in)
|
|
74
|
+
* const { approval, zapIn } = await mento.liquidity.buildZapInTransaction(
|
|
75
|
+
* poolAddress, tokenIn, amountIn, 0.5, recipient, owner, { slippageTolerance: 0.5, deadline: deadlineFromMinutes(5) }
|
|
76
|
+
* );
|
|
52
77
|
*/
|
|
53
78
|
class Mento {
|
|
54
|
-
constructor(chainId, tokens, pools, routes, quotes, swap) {
|
|
79
|
+
constructor(chainId, tokens, pools, routes, quotes, swap, trading, liquidity, borrow) {
|
|
55
80
|
this.chainId = chainId;
|
|
56
81
|
this.tokens = tokens;
|
|
57
82
|
this.pools = pools;
|
|
58
83
|
this.routes = routes;
|
|
59
84
|
this.quotes = quotes;
|
|
60
85
|
this.swap = swap;
|
|
86
|
+
this.trading = trading;
|
|
87
|
+
this.liquidity = liquidity;
|
|
88
|
+
this.borrow = borrow;
|
|
61
89
|
}
|
|
62
90
|
/**
|
|
63
91
|
* Create a new Mento SDK instance
|
|
64
92
|
* @param chainId - The chain ID (e.g., ChainId.CELO, ChainId.CELO_SEPOLIA)
|
|
65
|
-
* @param
|
|
93
|
+
* @param rpcUrlOrClient - Optional RPC URL string or an existing viem PublicClient.
|
|
94
|
+
* If not provided, uses the default RPC URL for the chain.
|
|
66
95
|
* @returns A new Mento instance
|
|
67
96
|
*/
|
|
68
|
-
static async create(chainId,
|
|
69
|
-
//
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
97
|
+
static async create(chainId, rpcUrlOrClient) {
|
|
98
|
+
// Validate chainId is supported
|
|
99
|
+
const supportedChainIds = Object.values(chainId_1.ChainId).filter((v) => typeof v === 'number');
|
|
100
|
+
if (!supportedChainIds.includes(chainId)) {
|
|
101
|
+
throw new Error(`ChainId ${chainId} is not supported. ` +
|
|
102
|
+
`Supported chains: ${supportedChainIds.map((id) => `${id} (${chainId_1.ChainId[id]})`).join(', ')}`);
|
|
103
|
+
}
|
|
104
|
+
let publicClient;
|
|
105
|
+
if (rpcUrlOrClient && typeof rpcUrlOrClient !== 'string') {
|
|
106
|
+
publicClient = rpcUrlOrClient;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const transport = (0, viem_1.http)(rpcUrlOrClient || (0, chainConfig_1.getDefaultRpcUrl)(chainId));
|
|
110
|
+
publicClient = (0, viem_1.createPublicClient)({
|
|
111
|
+
chain: (0, chainConfig_1.getChainConfig)(chainId),
|
|
112
|
+
transport,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
76
115
|
const tokenService = new tokens_1.TokenService(publicClient, chainId);
|
|
77
116
|
const poolService = new pools_1.PoolService(publicClient, chainId);
|
|
78
117
|
const routeService = new routes_1.RouteService(publicClient, chainId, poolService);
|
|
79
118
|
const quoteService = new quotes_1.QuoteService(publicClient, chainId, routeService);
|
|
80
119
|
const swapService = new swap_1.SwapService(publicClient, chainId, routeService, quoteService);
|
|
120
|
+
const tradingService = new trading_1.TradingService(publicClient, chainId, routeService);
|
|
121
|
+
const liquidityService = new liquidity_1.LiquidityService(publicClient, chainId, poolService, routeService);
|
|
122
|
+
const borrowService = new borrow_1.BorrowService(publicClient, chainId);
|
|
81
123
|
// Return new mento
|
|
82
|
-
return new Mento(chainId, tokenService, poolService, routeService, quoteService, swapService);
|
|
124
|
+
return new Mento(chainId, tokenService, poolService, routeService, quoteService, swapService, tradingService, liquidityService, borrowService);
|
|
83
125
|
}
|
|
84
126
|
/**
|
|
85
127
|
* Get the address of a contract for the current chain
|
|
@@ -92,6 +134,7 @@ class Mento {
|
|
|
92
134
|
}
|
|
93
135
|
exports.Mento = Mento;
|
|
94
136
|
__exportStar(require("./core/constants"), exports);
|
|
137
|
+
__exportStar(require("./core/errors"), exports);
|
|
95
138
|
__exportStar(require("./core/types"), exports);
|
|
96
139
|
__exportStar(require("./core/abis"), exports);
|
|
97
140
|
__exportStar(require("./services"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAAkE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { PublicClient } from 'viem';
|
|
2
|
+
import { AdjustTroveParams, BorrowPosition, CallParams, InterestRateBracket, OpenTroveParams, SystemParams } from '../../core/types';
|
|
3
|
+
export declare class BorrowService {
|
|
4
|
+
private contextStore;
|
|
5
|
+
private txService;
|
|
6
|
+
private approvalService;
|
|
7
|
+
private readService;
|
|
8
|
+
constructor(publicClient: PublicClient, chainId: number);
|
|
9
|
+
buildOpenTroveTransaction(debtTokenSymbol: string, params: OpenTroveParams): Promise<CallParams>;
|
|
10
|
+
buildAdjustTroveTransaction(debtTokenSymbol: string, params: AdjustTroveParams): Promise<CallParams>;
|
|
11
|
+
buildAdjustZombieTroveTransaction(debtTokenSymbol: string, params: AdjustTroveParams): Promise<CallParams>;
|
|
12
|
+
buildCloseTroveTransaction(debtTokenSymbol: string, troveId: string): Promise<CallParams>;
|
|
13
|
+
buildAddCollTransaction(debtTokenSymbol: string, troveId: string, amount: bigint): Promise<CallParams>;
|
|
14
|
+
buildWithdrawCollTransaction(debtTokenSymbol: string, troveId: string, amount: bigint): Promise<CallParams>;
|
|
15
|
+
buildBorrowMoreTransaction(debtTokenSymbol: string, troveId: string, amount: bigint, maxFee: bigint): Promise<CallParams>;
|
|
16
|
+
buildRepayDebtTransaction(debtTokenSymbol: string, troveId: string, amount: bigint): Promise<CallParams>;
|
|
17
|
+
buildAdjustInterestRateTransaction(debtTokenSymbol: string, troveId: string, newRate: bigint, maxFee: bigint): Promise<CallParams>;
|
|
18
|
+
buildClaimCollateralTransaction(debtTokenSymbol: string): Promise<CallParams>;
|
|
19
|
+
buildSetBatchManagerTransaction(debtTokenSymbol: string, troveId: string, manager: string, maxFee: bigint): Promise<CallParams>;
|
|
20
|
+
buildRemoveFromBatchTransaction(debtTokenSymbol: string, troveId: string, newRate: bigint, maxFee: bigint): Promise<CallParams>;
|
|
21
|
+
buildSwitchBatchManagerTransaction(debtTokenSymbol: string, troveId: string, newManager: string, maxFee: bigint): Promise<CallParams>;
|
|
22
|
+
buildSetInterestDelegateTransaction(debtTokenSymbol: string, troveId: string, delegate: string, minRate: bigint, maxRate: bigint, newRate: bigint, maxFee: bigint, minChangePeriod: bigint): Promise<CallParams>;
|
|
23
|
+
buildRemoveInterestDelegateTransaction(debtTokenSymbol: string, troveId: string): Promise<CallParams>;
|
|
24
|
+
buildCollateralApprovalParams(debtTokenSymbol: string, amount: bigint): Promise<CallParams>;
|
|
25
|
+
buildDebtApprovalParams(debtTokenSymbol: string, spender: string, amount: bigint): Promise<CallParams>;
|
|
26
|
+
buildGasCompensationApprovalParams(debtTokenSymbol: string, amount?: bigint): Promise<CallParams>;
|
|
27
|
+
getCollateralAllowance(debtTokenSymbol: string, owner: string): Promise<bigint>;
|
|
28
|
+
getDebtAllowance(debtTokenSymbol: string, owner: string, spender: string): Promise<bigint>;
|
|
29
|
+
getGasTokenAllowance(debtTokenSymbol: string, owner: string): Promise<bigint>;
|
|
30
|
+
getTroveData(debtTokenSymbol: string, troveId: string): Promise<BorrowPosition>;
|
|
31
|
+
getUserTroves(debtTokenSymbol: string, owner: string): Promise<BorrowPosition[]>;
|
|
32
|
+
getCollateralPrice(debtTokenSymbol: string): Promise<bigint>;
|
|
33
|
+
getSystemParams(debtTokenSymbol: string): Promise<SystemParams>;
|
|
34
|
+
isSystemShutDown(debtTokenSymbol: string): Promise<boolean>;
|
|
35
|
+
getBranchStats(debtTokenSymbol: string): Promise<{
|
|
36
|
+
totalColl: bigint;
|
|
37
|
+
totalDebt: bigint;
|
|
38
|
+
}>;
|
|
39
|
+
getInterestRateBrackets(debtTokenSymbol: string): Promise<InterestRateBracket[]>;
|
|
40
|
+
getAverageInterestRate(debtTokenSymbol: string): Promise<bigint>;
|
|
41
|
+
getBatchManagerInfo(debtTokenSymbol: string, address: string): Promise<{
|
|
42
|
+
minRate: bigint;
|
|
43
|
+
maxRate: bigint;
|
|
44
|
+
minChangePeriod: bigint;
|
|
45
|
+
} | null>;
|
|
46
|
+
predictOpenTroveUpfrontFee(debtTokenSymbol: string, amount: bigint, rate: bigint): Promise<bigint>;
|
|
47
|
+
predictAdjustUpfrontFee(debtTokenSymbol: string, troveId: string, debtIncrease: bigint): Promise<bigint>;
|
|
48
|
+
predictAdjustInterestRateUpfrontFee(debtTokenSymbol: string, troveId: string, newRate: bigint): Promise<bigint>;
|
|
49
|
+
predictJoinBatchUpfrontFee(debtTokenSymbol: string, troveId: string, batchAddress: string): Promise<bigint>;
|
|
50
|
+
getNextOwnerIndex(debtTokenSymbol: string, owner: string): Promise<number>;
|
|
51
|
+
private withContext;
|
|
52
|
+
private ensureInitialized;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=BorrowService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BorrowService.d.ts","sourceRoot":"","sources":["../../../src/services/borrow/BorrowService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,YAAY,EACb,MAAM,kBAAkB,CAAA;AAOzB,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,WAAW,CAAmB;gBAGpC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM;IAQjB,yBAAyB,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAIhG,2BAA2B,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpG,iCAAiC,CAC/B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,UAAU,CAAC;IAMtB,0BAA0B,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIzF,uBAAuB,CACrB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,4BAA4B,CAC1B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,0BAA0B,CACxB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,yBAAyB,CACvB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,kCAAkC,CAChC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,+BAA+B,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI7E,+BAA+B,CAC7B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,+BAA+B,CAC7B,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,kCAAkC,CAChC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,mCAAmC,CACjC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,UAAU,CAAC;IAetB,sCAAsC,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;IAMtB,6BAA6B,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM3F,uBAAuB,CACrB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,CAAC;IAMtB,kCAAkC,CAChC,eAAe,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;IAMtB,sBAAsB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/E,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1F,oBAAoB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7E,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI/E,aAAa,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAIhF,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,eAAe,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1F,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAIhF,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE,mBAAmB,CACjB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAIhF,0BAA0B,CACxB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAMlB,uBAAuB,CACrB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IAMlB,mCAAmC,CACjC,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAMlB,0BAA0B,CACxB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IAMlB,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAI5D,WAAW;IAQzB,OAAO,CAAC,iBAAiB;CAG1B"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BorrowService = void 0;
|
|
4
|
+
const borrowApprovalService_1 = require("./internal/borrowApprovalService");
|
|
5
|
+
const borrowContextStore_1 = require("./internal/borrowContextStore");
|
|
6
|
+
const borrowReadService_1 = require("./internal/borrowReadService");
|
|
7
|
+
const borrowTransactionService_1 = require("./internal/borrowTransactionService");
|
|
8
|
+
class BorrowService {
|
|
9
|
+
constructor(publicClient, chainId) {
|
|
10
|
+
this.contextStore = new borrowContextStore_1.BorrowContextStore(publicClient, chainId);
|
|
11
|
+
this.txService = new borrowTransactionService_1.BorrowTransactionService(publicClient);
|
|
12
|
+
this.approvalService = new borrowApprovalService_1.BorrowApprovalService(publicClient);
|
|
13
|
+
this.readService = new borrowReadService_1.BorrowReadService(publicClient);
|
|
14
|
+
}
|
|
15
|
+
buildOpenTroveTransaction(debtTokenSymbol, params) {
|
|
16
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildOpenTroveTransaction(ctx, params));
|
|
17
|
+
}
|
|
18
|
+
buildAdjustTroveTransaction(debtTokenSymbol, params) {
|
|
19
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAdjustTroveTransaction(ctx, params));
|
|
20
|
+
}
|
|
21
|
+
buildAdjustZombieTroveTransaction(debtTokenSymbol, params) {
|
|
22
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAdjustZombieTroveTransaction(ctx, params));
|
|
23
|
+
}
|
|
24
|
+
buildCloseTroveTransaction(debtTokenSymbol, troveId) {
|
|
25
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildCloseTroveTransaction(ctx, troveId));
|
|
26
|
+
}
|
|
27
|
+
buildAddCollTransaction(debtTokenSymbol, troveId, amount) {
|
|
28
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAddCollTransaction(ctx, troveId, amount));
|
|
29
|
+
}
|
|
30
|
+
buildWithdrawCollTransaction(debtTokenSymbol, troveId, amount) {
|
|
31
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildWithdrawCollTransaction(ctx, troveId, amount));
|
|
32
|
+
}
|
|
33
|
+
buildBorrowMoreTransaction(debtTokenSymbol, troveId, amount, maxFee) {
|
|
34
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildBorrowMoreTransaction(ctx, troveId, amount, maxFee));
|
|
35
|
+
}
|
|
36
|
+
buildRepayDebtTransaction(debtTokenSymbol, troveId, amount) {
|
|
37
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildRepayDebtTransaction(ctx, troveId, amount));
|
|
38
|
+
}
|
|
39
|
+
buildAdjustInterestRateTransaction(debtTokenSymbol, troveId, newRate, maxFee) {
|
|
40
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildAdjustInterestRateTransaction(ctx, troveId, newRate, maxFee));
|
|
41
|
+
}
|
|
42
|
+
buildClaimCollateralTransaction(debtTokenSymbol) {
|
|
43
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildClaimCollateralTransaction(ctx));
|
|
44
|
+
}
|
|
45
|
+
buildSetBatchManagerTransaction(debtTokenSymbol, troveId, manager, maxFee) {
|
|
46
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildSetBatchManagerTransaction(ctx, troveId, manager, maxFee));
|
|
47
|
+
}
|
|
48
|
+
buildRemoveFromBatchTransaction(debtTokenSymbol, troveId, newRate, maxFee) {
|
|
49
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildRemoveFromBatchTransaction(ctx, troveId, newRate, maxFee));
|
|
50
|
+
}
|
|
51
|
+
buildSwitchBatchManagerTransaction(debtTokenSymbol, troveId, newManager, maxFee) {
|
|
52
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildSwitchBatchManagerTransaction(ctx, troveId, newManager, maxFee));
|
|
53
|
+
}
|
|
54
|
+
buildSetInterestDelegateTransaction(debtTokenSymbol, troveId, delegate, minRate, maxRate, newRate, maxFee, minChangePeriod) {
|
|
55
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildSetInterestDelegateTransaction(ctx, troveId, delegate, minRate, maxRate, newRate, maxFee, minChangePeriod));
|
|
56
|
+
}
|
|
57
|
+
buildRemoveInterestDelegateTransaction(debtTokenSymbol, troveId) {
|
|
58
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.txService.buildRemoveInterestDelegateTransaction(ctx, troveId));
|
|
59
|
+
}
|
|
60
|
+
buildCollateralApprovalParams(debtTokenSymbol, amount) {
|
|
61
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.buildCollateralApprovalParams(ctx, amount));
|
|
62
|
+
}
|
|
63
|
+
buildDebtApprovalParams(debtTokenSymbol, spender, amount) {
|
|
64
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.buildDebtApprovalParams(ctx, spender, amount));
|
|
65
|
+
}
|
|
66
|
+
buildGasCompensationApprovalParams(debtTokenSymbol, amount) {
|
|
67
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.buildGasCompensationApprovalParams(ctx, amount));
|
|
68
|
+
}
|
|
69
|
+
getCollateralAllowance(debtTokenSymbol, owner) {
|
|
70
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.getCollateralAllowance(ctx, owner));
|
|
71
|
+
}
|
|
72
|
+
getDebtAllowance(debtTokenSymbol, owner, spender) {
|
|
73
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.getDebtAllowance(ctx, owner, spender));
|
|
74
|
+
}
|
|
75
|
+
getGasTokenAllowance(debtTokenSymbol, owner) {
|
|
76
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.approvalService.getGasTokenAllowance(ctx, owner));
|
|
77
|
+
}
|
|
78
|
+
getTroveData(debtTokenSymbol, troveId) {
|
|
79
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getTroveData(ctx, troveId));
|
|
80
|
+
}
|
|
81
|
+
getUserTroves(debtTokenSymbol, owner) {
|
|
82
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getUserTroves(ctx, owner));
|
|
83
|
+
}
|
|
84
|
+
getCollateralPrice(debtTokenSymbol) {
|
|
85
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getCollateralPrice(ctx));
|
|
86
|
+
}
|
|
87
|
+
getSystemParams(debtTokenSymbol) {
|
|
88
|
+
return this.withContext(debtTokenSymbol, (ctx) => ({ ...ctx.systemParams }));
|
|
89
|
+
}
|
|
90
|
+
isSystemShutDown(debtTokenSymbol) {
|
|
91
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.isSystemShutDown(ctx));
|
|
92
|
+
}
|
|
93
|
+
getBranchStats(debtTokenSymbol) {
|
|
94
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getBranchStats(ctx));
|
|
95
|
+
}
|
|
96
|
+
getInterestRateBrackets(debtTokenSymbol) {
|
|
97
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getInterestRateBrackets(ctx));
|
|
98
|
+
}
|
|
99
|
+
getAverageInterestRate(debtTokenSymbol) {
|
|
100
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getAverageInterestRate(ctx));
|
|
101
|
+
}
|
|
102
|
+
getBatchManagerInfo(debtTokenSymbol, address) {
|
|
103
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getBatchManagerInfo(ctx, address));
|
|
104
|
+
}
|
|
105
|
+
predictOpenTroveUpfrontFee(debtTokenSymbol, amount, rate) {
|
|
106
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictOpenTroveUpfrontFee(ctx, amount, rate));
|
|
107
|
+
}
|
|
108
|
+
predictAdjustUpfrontFee(debtTokenSymbol, troveId, debtIncrease) {
|
|
109
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictAdjustUpfrontFee(ctx, troveId, debtIncrease));
|
|
110
|
+
}
|
|
111
|
+
predictAdjustInterestRateUpfrontFee(debtTokenSymbol, troveId, newRate) {
|
|
112
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictAdjustInterestRateUpfrontFee(ctx, troveId, newRate));
|
|
113
|
+
}
|
|
114
|
+
predictJoinBatchUpfrontFee(debtTokenSymbol, troveId, batchAddress) {
|
|
115
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.predictJoinBatchUpfrontFee(ctx, troveId, batchAddress));
|
|
116
|
+
}
|
|
117
|
+
getNextOwnerIndex(debtTokenSymbol, owner) {
|
|
118
|
+
return this.withContext(debtTokenSymbol, (ctx) => this.readService.getNextOwnerIndex(ctx, owner));
|
|
119
|
+
}
|
|
120
|
+
async withContext(debtTokenSymbol, callback) {
|
|
121
|
+
const ctx = await this.ensureInitialized(debtTokenSymbol);
|
|
122
|
+
return callback(ctx);
|
|
123
|
+
}
|
|
124
|
+
ensureInitialized(debtTokenSymbol) {
|
|
125
|
+
return this.contextStore.ensureInitialized(debtTokenSymbol);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.BorrowService = BorrowService;
|
|
129
|
+
//# sourceMappingURL=BorrowService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BorrowService.js","sourceRoot":"","sources":["../../../src/services/borrow/BorrowService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { resolveAddressesFromRegistry, readSystemParams, } from './internal/borrowRegistryReader';
|
|
2
|
+
export { buildErc20ApprovalParams as buildCollateralApprovalParams, readErc20Allowance as getCollateralAllowance, } from './internal/borrowErc20';
|
|
3
|
+
export { mapTroveStatus, parseBorrowPosition } from './internal/borrowPositionParser';
|
|
4
|
+
//# sourceMappingURL=borrowHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"borrowHelpers.d.ts","sourceRoot":"","sources":["../../../src/services/borrow/borrowHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,wBAAwB,IAAI,6BAA6B,EACzD,kBAAkB,IAAI,sBAAsB,GAC7C,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseBorrowPosition = exports.mapTroveStatus = exports.getCollateralAllowance = exports.buildCollateralApprovalParams = exports.readSystemParams = exports.resolveAddressesFromRegistry = void 0;
|
|
4
|
+
var borrowRegistryReader_1 = require("./internal/borrowRegistryReader");
|
|
5
|
+
Object.defineProperty(exports, "resolveAddressesFromRegistry", { enumerable: true, get: function () { return borrowRegistryReader_1.resolveAddressesFromRegistry; } });
|
|
6
|
+
Object.defineProperty(exports, "readSystemParams", { enumerable: true, get: function () { return borrowRegistryReader_1.readSystemParams; } });
|
|
7
|
+
var borrowErc20_1 = require("./internal/borrowErc20");
|
|
8
|
+
Object.defineProperty(exports, "buildCollateralApprovalParams", { enumerable: true, get: function () { return borrowErc20_1.buildErc20ApprovalParams; } });
|
|
9
|
+
Object.defineProperty(exports, "getCollateralAllowance", { enumerable: true, get: function () { return borrowErc20_1.readErc20Allowance; } });
|
|
10
|
+
var borrowPositionParser_1 = require("./internal/borrowPositionParser");
|
|
11
|
+
Object.defineProperty(exports, "mapTroveStatus", { enumerable: true, get: function () { return borrowPositionParser_1.mapTroveStatus; } });
|
|
12
|
+
Object.defineProperty(exports, "parseBorrowPosition", { enumerable: true, get: function () { return borrowPositionParser_1.parseBorrowPosition; } });
|
|
13
|
+
//# sourceMappingURL=borrowHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"borrowHelpers.js","sourceRoot":"","sources":["../../../src/services/borrow/borrowHelpers.ts"],"names":[],"mappings":";;;AAAA,wEAGwC;AAFtC,oIAAA,4BAA4B,OAAA;AAC5B,wHAAA,gBAAgB,OAAA;AAGlB,sDAG+B;AAF7B,4HAAA,wBAAwB,OAAiC;AACzD,qHAAA,kBAAkB,OAA0B;AAG9C,wEAAqF;AAA5E,sHAAA,cAAc,OAAA;AAAE,2HAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LoanDetails, RiskLevel } from '../../core/types';
|
|
2
|
+
export declare function getLtv(collateral: bigint, debt: bigint, collPrice: bigint): bigint | null;
|
|
3
|
+
export declare function getLiquidationPrice(collateral: bigint, debt: bigint, mcr: bigint): bigint | null;
|
|
4
|
+
export declare function getLiquidationRisk(ltv: bigint, maxLtv: bigint): RiskLevel;
|
|
5
|
+
export declare function getRedemptionRisk(debtInFront: bigint, totalDebt: bigint): RiskLevel | null;
|
|
6
|
+
export declare function calculateMaxDebt(collateralUsd: bigint, maxLtv: bigint): bigint;
|
|
7
|
+
export declare function calculateDebtSuggestions(maxDebt: bigint, minDebt: bigint): {
|
|
8
|
+
amount: bigint;
|
|
9
|
+
ltv: bigint;
|
|
10
|
+
risk: RiskLevel;
|
|
11
|
+
}[];
|
|
12
|
+
export declare function getLoanDetails(collateral: bigint | null, debt: bigint | null, interestRate: bigint | null, collPrice: bigint | null, mcr: bigint): LoanDetails;
|
|
13
|
+
//# sourceMappingURL=borrowMath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"borrowMath.d.ts","sourceRoot":"","sources":["../../../src/services/borrow/borrowMath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAc9D,wBAAgB,MAAM,CACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAIf;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAKf;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAOzE;AAED,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,SAAS,GAAG,IAAI,CAOlB;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,EAAE,CAmCpD;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,EAAE,MAAM,GACV,WAAW,CAyDb"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLtv = getLtv;
|
|
4
|
+
exports.getLiquidationPrice = getLiquidationPrice;
|
|
5
|
+
exports.getLiquidationRisk = getLiquidationRisk;
|
|
6
|
+
exports.getRedemptionRisk = getRedemptionRisk;
|
|
7
|
+
exports.calculateMaxDebt = calculateMaxDebt;
|
|
8
|
+
exports.calculateDebtSuggestions = calculateDebtSuggestions;
|
|
9
|
+
exports.getLoanDetails = getLoanDetails;
|
|
10
|
+
const constants_1 = require("../../core/constants");
|
|
11
|
+
const DECIMAL_PRECISION = 10n ** 18n;
|
|
12
|
+
const THOUSAND = 1000n;
|
|
13
|
+
const NORMALIZED_MAX_LTV = DECIMAL_PRECISION;
|
|
14
|
+
const DEBT_SUGGESTION_RATIOS = [300n, 600n, 800n];
|
|
15
|
+
function getLtv(collateral, debt, collPrice) {
|
|
16
|
+
const collateralUsd = (collateral * collPrice) / DECIMAL_PRECISION;
|
|
17
|
+
if (collateralUsd === 0n)
|
|
18
|
+
return null;
|
|
19
|
+
return (debt * DECIMAL_PRECISION) / collateralUsd;
|
|
20
|
+
}
|
|
21
|
+
function getLiquidationPrice(collateral, debt, mcr) {
|
|
22
|
+
if (collateral <= 0n || debt <= 0n)
|
|
23
|
+
return null;
|
|
24
|
+
if (mcr <= DECIMAL_PRECISION)
|
|
25
|
+
return null;
|
|
26
|
+
// liquidationPrice = (debt * mcr) / collateral
|
|
27
|
+
return (debt * mcr) / collateral;
|
|
28
|
+
}
|
|
29
|
+
function getLiquidationRisk(ltv, maxLtv) {
|
|
30
|
+
if (maxLtv <= 0n)
|
|
31
|
+
return 'low';
|
|
32
|
+
// Compare using cross-multiplication to avoid floor-division drift.
|
|
33
|
+
if (ltv * THOUSAND > maxLtv * constants_1.LTV_RISK_HIGH)
|
|
34
|
+
return 'high';
|
|
35
|
+
if (ltv * THOUSAND > maxLtv * constants_1.LTV_RISK_MEDIUM)
|
|
36
|
+
return 'medium';
|
|
37
|
+
return 'low';
|
|
38
|
+
}
|
|
39
|
+
function getRedemptionRisk(debtInFront, totalDebt) {
|
|
40
|
+
if (totalDebt === 0n)
|
|
41
|
+
return null;
|
|
42
|
+
// Compare using cross-multiplication to avoid floor-division drift.
|
|
43
|
+
if (debtInFront * THOUSAND > totalDebt * constants_1.REDEMPTION_RISK_LOW)
|
|
44
|
+
return 'low';
|
|
45
|
+
if (debtInFront * THOUSAND > totalDebt * constants_1.REDEMPTION_RISK_MEDIUM)
|
|
46
|
+
return 'medium';
|
|
47
|
+
return 'high';
|
|
48
|
+
}
|
|
49
|
+
function calculateMaxDebt(collateralUsd, maxLtv) {
|
|
50
|
+
return (collateralUsd * maxLtv) / DECIMAL_PRECISION;
|
|
51
|
+
}
|
|
52
|
+
function calculateDebtSuggestions(maxDebt, minDebt) {
|
|
53
|
+
if (maxDebt <= 0n)
|
|
54
|
+
return [];
|
|
55
|
+
const suggestions = [];
|
|
56
|
+
for (let i = 0; i < DEBT_SUGGESTION_RATIOS.length; i++) {
|
|
57
|
+
let amount = (maxDebt * DEBT_SUGGESTION_RATIOS[i]) / THOUSAND;
|
|
58
|
+
// Mirror frontend behavior:
|
|
59
|
+
// - First suggestion is clamped up to minDebt.
|
|
60
|
+
// - Later suggestions below minDebt are omitted.
|
|
61
|
+
if (amount < minDebt) {
|
|
62
|
+
if (i === 0) {
|
|
63
|
+
amount = minDebt;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// ltv relative to maxLtv (normalized to 1e18 where 1e18 === maxLtv)
|
|
70
|
+
const ltv = (amount * DECIMAL_PRECISION) / maxDebt;
|
|
71
|
+
// Hide suggestions that exceed maxLtv.
|
|
72
|
+
if (ltv > NORMALIZED_MAX_LTV) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
suggestions.push({
|
|
76
|
+
amount,
|
|
77
|
+
ltv,
|
|
78
|
+
risk: getLiquidationRisk(ltv, NORMALIZED_MAX_LTV),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return suggestions;
|
|
82
|
+
}
|
|
83
|
+
function getLoanDetails(collateral, debt, interestRate, collPrice, mcr) {
|
|
84
|
+
// maxLtv = 1 / MCR (MCR is e.g. 1.1e18 meaning 110%)
|
|
85
|
+
const maxLtv = (DECIMAL_PRECISION * DECIMAL_PRECISION) / mcr;
|
|
86
|
+
// maxLtvAllowed = maxLtv * MAX_LTV_ALLOWED_RATIO / 1000
|
|
87
|
+
const maxLtvAllowed = (maxLtv * constants_1.MAX_LTV_ALLOWED_RATIO) / THOUSAND;
|
|
88
|
+
const collateralUsd = collateral !== null && collPrice !== null
|
|
89
|
+
? (collateral * collPrice) / DECIMAL_PRECISION
|
|
90
|
+
: null;
|
|
91
|
+
const ltv = debt !== null && collateralUsd !== null && collateralUsd > 0n
|
|
92
|
+
? (debt * DECIMAL_PRECISION) / collateralUsd
|
|
93
|
+
: collateral !== null && collateral < 0n
|
|
94
|
+
? DECIMAL_PRECISION
|
|
95
|
+
: null;
|
|
96
|
+
const status = ltv === null
|
|
97
|
+
? null
|
|
98
|
+
: collateral !== null && (collateral < 0n || ltv > DECIMAL_PRECISION)
|
|
99
|
+
? 'underwater'
|
|
100
|
+
: ltv > maxLtv
|
|
101
|
+
? 'liquidatable'
|
|
102
|
+
: ltv > maxLtvAllowed
|
|
103
|
+
? 'at-risk'
|
|
104
|
+
: 'healthy';
|
|
105
|
+
const maxDebt = collateralUsd !== null ? calculateMaxDebt(collateralUsd, maxLtv) : null;
|
|
106
|
+
const maxDebtAllowed = collateralUsd !== null && collateralUsd > 0n
|
|
107
|
+
? (collateralUsd * maxLtvAllowed) / DECIMAL_PRECISION
|
|
108
|
+
: null;
|
|
109
|
+
const liquidationRisk = ltv !== null ? getLiquidationRisk(ltv, maxLtv) : null;
|
|
110
|
+
const liquidationPrice = collateral !== null && debt !== null && collateral > 0n
|
|
111
|
+
? getLiquidationPrice(collateral, debt, mcr)
|
|
112
|
+
: null;
|
|
113
|
+
return {
|
|
114
|
+
collateral,
|
|
115
|
+
collateralUsd,
|
|
116
|
+
collPrice,
|
|
117
|
+
debt,
|
|
118
|
+
interestRate,
|
|
119
|
+
ltv,
|
|
120
|
+
maxLtv,
|
|
121
|
+
maxLtvAllowed,
|
|
122
|
+
liquidationPrice,
|
|
123
|
+
liquidationRisk,
|
|
124
|
+
maxDebt,
|
|
125
|
+
maxDebtAllowed,
|
|
126
|
+
status,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=borrowMath.js.map
|