@mento-protocol/mento-sdk 3.2.3 → 3.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cache/routes.d.ts +13 -0
- package/dist/cache/routes.js +14089 -0
- package/dist/cache/tokens.d.ts +68 -0
- package/dist/cache/tokens.js +460 -0
- package/dist/core/abis/activePool.d.ts +2 -0
- package/dist/core/abis/activePool.js +14 -0
- package/dist/core/abis/addressesRegistry.d.ts +2 -0
- package/dist/core/abis/addressesRegistry.js +26 -0
- package/dist/core/abis/bipoolmanager.d.ts +34 -0
- package/dist/core/abis/bipoolmanager.js +72 -0
- package/dist/core/abis/borrowerOperations.d.ts +9 -0
- package/dist/core/abis/borrowerOperations.js +89 -0
- package/dist/core/abis/breakerbox.d.ts +13 -0
- package/dist/core/abis/breakerbox.js +8 -0
- package/dist/core/abis/broker.d.ts +2 -0
- package/dist/core/abis/broker.js +9 -0
- package/dist/core/abis/erc20.d.ts +9 -0
- package/dist/core/abis/erc20.js +21 -0
- package/dist/core/abis/fpmm.d.ts +270 -0
- package/dist/core/abis/fpmm.js +49 -0
- package/dist/core/abis/fpmmFactory.d.ts +85 -0
- package/dist/core/abis/fpmmFactory.js +26 -0
- package/dist/core/abis/hintHelpers.d.ts +2 -0
- package/dist/core/abis/hintHelpers.js +14 -0
- package/dist/core/abis/index.d.ts +22 -0
- package/dist/core/abis/index.js +38 -0
- package/dist/core/abis/liquidityStrategy.d.ts +132 -0
- package/dist/core/abis/liquidityStrategy.js +10 -0
- package/dist/core/abis/multiTroveGetter.d.ts +8 -0
- package/dist/core/abis/multiTroveGetter.js +15 -0
- package/dist/core/abis/priceFeed.d.ts +7 -0
- package/dist/core/abis/priceFeed.js +16 -0
- package/dist/core/abis/pricingmodule.d.ts +2 -0
- package/dist/core/abis/pricingmodule.js +6 -0
- package/dist/core/abis/reserve.d.ts +3 -0
- package/dist/core/abis/reserve.js +18 -0
- package/dist/core/abis/router.d.ts +521 -0
- package/dist/core/abis/router.js +45 -0
- package/dist/core/abis/sortedTroves.d.ts +2 -0
- package/dist/core/abis/sortedTroves.js +15 -0
- package/dist/core/abis/systemParams.d.ts +2 -0
- package/dist/core/abis/systemParams.js +14 -0
- package/dist/core/abis/troveManager.d.ts +2 -0
- package/dist/core/abis/troveManager.js +27 -0
- package/dist/core/abis/troveNFT.d.ts +2 -0
- package/dist/core/abis/troveNFT.js +9 -0
- package/dist/core/abis/virtualPool.d.ts +50 -0
- package/dist/core/abis/virtualPool.js +11 -0
- package/dist/core/abis/virtualPoolFactory.d.ts +59 -0
- package/dist/core/abis/virtualPoolFactory.js +17 -0
- package/dist/core/constants/addresses.d.ts +18 -0
- package/dist/core/constants/addresses.js +113 -0
- package/dist/core/constants/borrowConstants.d.ts +10 -0
- package/dist/core/constants/borrowConstants.js +16 -0
- package/dist/core/constants/borrowRegistries.d.ts +7 -0
- package/dist/core/constants/borrowRegistries.js +30 -0
- package/dist/core/constants/chainId.d.ts +7 -0
- package/dist/{cjs/enums → core/constants}/chainId.js +4 -1
- package/dist/core/constants/contractNames.d.ts +21 -0
- package/dist/core/constants/contractNames.js +24 -0
- package/dist/core/constants/index.d.ts +6 -0
- package/dist/core/constants/index.js +22 -0
- package/dist/core/errors/base.d.ts +8 -0
- package/dist/core/errors/base.js +17 -0
- package/dist/core/errors/index.d.ts +4 -0
- package/dist/{cjs/constants → core/errors}/index.js +4 -4
- package/dist/core/errors/oracle.d.ts +9 -0
- package/dist/core/errors/oracle.js +15 -0
- package/dist/core/errors/router.d.ts +14 -0
- package/dist/core/errors/router.js +24 -0
- package/dist/core/types/borrow.d.ts +87 -0
- package/dist/{cjs/interfaces/tradingLimitsConfig.js → core/types/borrow.js} +1 -0
- package/dist/core/types/contractAddresses.d.ts +42 -0
- package/dist/{cjs → core}/types/contractAddresses.js +1 -0
- package/dist/core/types/index.d.ts +10 -0
- package/dist/core/types/index.js +26 -0
- package/dist/core/types/liquidity.d.ts +194 -0
- package/dist/core/types/liquidity.js +3 -0
- package/dist/core/types/pool.d.ts +208 -0
- package/dist/core/types/pool.js +14 -0
- package/dist/core/types/provider.d.ts +45 -0
- package/dist/{cjs/interfaces/tradingLimitsState.js → core/types/provider.js} +1 -0
- package/dist/core/types/route.d.ts +62 -0
- package/dist/{cjs/interfaces/IChainClient.js → core/types/route.js} +1 -0
- package/dist/core/types/token.d.ts +21 -0
- package/dist/{cjs/interfaces/tradingLimit.js → core/types/token.js} +1 -0
- package/dist/core/types/tradingLimits.d.ts +91 -0
- package/dist/core/types/tradingLimits.js +3 -0
- package/dist/core/types/tradingMode.d.ts +24 -0
- package/dist/core/types/tradingMode.js +31 -0
- package/dist/core/types/transaction.d.ts +45 -0
- package/dist/core/types/transaction.js +3 -0
- package/dist/esm/cache/routes.js +14084 -0
- package/dist/esm/cache/tokens.js +452 -0
- package/dist/esm/core/abis/activePool.js +10 -0
- package/dist/esm/core/abis/addressesRegistry.js +22 -0
- package/dist/esm/core/abis/bipoolmanager.js +68 -0
- package/dist/esm/core/abis/borrowerOperations.js +85 -0
- package/dist/esm/core/abis/breakerbox.js +4 -0
- package/dist/esm/core/abis/broker.js +5 -0
- package/dist/esm/core/abis/erc20.js +17 -0
- package/dist/esm/core/abis/fpmm.js +45 -0
- package/dist/esm/core/abis/fpmmFactory.js +22 -0
- package/dist/esm/core/abis/hintHelpers.js +10 -0
- package/dist/esm/core/abis/index.js +21 -0
- package/dist/esm/core/abis/liquidityStrategy.js +6 -0
- package/dist/esm/core/abis/multiTroveGetter.js +11 -0
- package/dist/esm/core/abis/priceFeed.js +12 -0
- package/dist/esm/core/abis/pricingmodule.js +2 -0
- package/dist/esm/core/abis/reserve.js +14 -0
- package/dist/esm/core/abis/router.js +41 -0
- package/dist/esm/core/abis/sortedTroves.js +11 -0
- package/dist/esm/core/abis/systemParams.js +10 -0
- package/dist/esm/core/abis/troveManager.js +23 -0
- package/dist/esm/core/abis/troveNFT.js +5 -0
- package/dist/esm/core/abis/virtualPool.js +7 -0
- package/dist/esm/core/abis/virtualPoolFactory.js +13 -0
- package/dist/esm/core/constants/addresses.js +107 -0
- package/dist/esm/core/constants/borrowConstants.js +12 -0
- package/dist/esm/core/constants/borrowRegistries.js +25 -0
- package/dist/esm/{enums → core/constants}/chainId.js +2 -0
- package/dist/esm/core/constants/contractNames.js +20 -0
- package/dist/esm/core/constants/index.js +5 -0
- package/dist/esm/core/errors/base.js +12 -0
- package/dist/esm/core/errors/index.js +3 -0
- package/dist/esm/core/errors/oracle.js +10 -0
- package/dist/esm/core/errors/router.js +18 -0
- package/dist/esm/core/types/index.js +9 -0
- package/dist/esm/core/types/pool.js +10 -0
- package/dist/esm/core/types/tradingLimits.js +1 -0
- package/dist/esm/core/types/tradingMode.js +26 -0
- package/dist/esm/core/types/transaction.js +1 -0
- package/dist/esm/index.js +138 -6
- package/dist/esm/package.json +1 -0
- package/dist/esm/services/borrow/BorrowService.js +455 -0
- package/dist/esm/services/borrow/borrowHelpers.js +3 -0
- package/dist/esm/services/borrow/borrowMath.js +127 -0
- package/dist/esm/services/borrow/index.js +3 -0
- package/dist/esm/services/borrow/internal/borrowApprovalService.js +48 -0
- package/dist/esm/services/borrow/internal/borrowContextStore.js +35 -0
- package/dist/esm/services/borrow/internal/borrowErc20.js +38 -0
- package/dist/esm/services/borrow/internal/borrowHints.js +27 -0
- package/dist/esm/services/borrow/internal/borrowPositionParser.js +82 -0
- package/dist/esm/services/borrow/internal/borrowReadService.js +271 -0
- package/dist/esm/services/borrow/internal/borrowRegistryReader.js +108 -0
- package/dist/esm/services/borrow/internal/borrowTransactionService.js +271 -0
- package/dist/esm/services/borrow/internal/borrowTypes.js +1 -0
- package/dist/esm/services/borrow/internal/borrowValidation.js +89 -0
- package/dist/esm/services/index.js +8 -0
- package/dist/esm/services/liquidity/LiquidityService.js +163 -0
- package/dist/esm/services/liquidity/basicLiquidity.js +162 -0
- package/dist/esm/services/liquidity/index.js +1 -0
- package/dist/esm/services/liquidity/liquidityHelpers.js +95 -0
- package/dist/esm/services/liquidity/rebalance.js +59 -0
- package/dist/esm/services/liquidity/zapHelpers.js +120 -0
- package/dist/esm/services/liquidity/zapIn.js +112 -0
- package/dist/esm/services/liquidity/zapOut.js +248 -0
- package/dist/esm/services/pools/PoolService.js +204 -0
- package/dist/esm/services/pools/index.js +1 -0
- package/dist/esm/services/pools/poolDetails.js +209 -0
- package/dist/esm/services/pools/poolDiscovery.js +112 -0
- package/dist/esm/services/pools/rebalancePreview.js +181 -0
- package/dist/esm/services/quotes/QuoteService.js +85 -0
- package/dist/esm/services/quotes/index.js +1 -0
- package/dist/esm/services/routes/RouteService.js +268 -0
- package/dist/esm/services/routes/index.js +1 -0
- package/dist/esm/services/swap/SwapService.js +247 -0
- package/dist/esm/services/swap/index.js +1 -0
- package/dist/esm/services/tokens/index.js +1 -0
- package/dist/esm/services/tokens/tokenService.js +285 -0
- package/dist/esm/services/trading/TradingLimitsService.js +154 -0
- package/dist/esm/services/trading/TradingService.js +196 -0
- package/dist/esm/services/trading/index.js +2 -0
- package/dist/esm/utils/chainConfig.js +118 -0
- package/dist/esm/utils/costUtils.js +56 -0
- package/dist/esm/utils/deadline.js +22 -0
- package/dist/esm/utils/index.js +9 -0
- package/dist/esm/utils/multicall.js +47 -0
- package/dist/esm/utils/pathEncoder.js +69 -0
- package/dist/esm/utils/rateFeed.js +23 -0
- package/dist/esm/utils/retry.js +24 -0
- package/dist/esm/{routeUtils.js → utils/routeUtils.js} +115 -116
- package/dist/esm/utils/routes.js +2 -0
- package/dist/esm/utils/sortUtils.js +33 -0
- package/dist/esm/utils/tokens.js +2 -0
- package/dist/esm/utils/tradingLimits.js +163 -0
- package/dist/esm/utils/validation.js +30 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.js +158 -0
- package/dist/services/borrow/BorrowService.d.ts +381 -0
- package/dist/services/borrow/BorrowService.js +460 -0
- package/dist/services/borrow/borrowHelpers.d.ts +4 -0
- package/dist/services/borrow/borrowHelpers.js +13 -0
- package/dist/services/borrow/borrowMath.d.ts +21 -0
- package/dist/services/borrow/borrowMath.js +137 -0
- package/dist/services/borrow/index.d.ts +4 -0
- package/dist/{cjs/interfaces → services/borrow}/index.js +4 -4
- package/dist/services/borrow/internal/borrowApprovalService.d.ts +14 -0
- package/dist/services/borrow/internal/borrowApprovalService.js +53 -0
- package/dist/services/borrow/internal/borrowContextStore.d.ts +11 -0
- package/dist/services/borrow/internal/borrowContextStore.js +40 -0
- package/dist/services/borrow/internal/borrowErc20.d.ts +5 -0
- package/dist/services/borrow/internal/borrowErc20.js +43 -0
- package/dist/services/borrow/internal/borrowHints.d.ts +7 -0
- package/dist/services/borrow/internal/borrowHints.js +31 -0
- package/dist/services/borrow/internal/borrowPositionParser.d.ts +4 -0
- package/dist/services/borrow/internal/borrowPositionParser.js +87 -0
- package/dist/services/borrow/internal/borrowReadService.d.ts +31 -0
- package/dist/services/borrow/internal/borrowReadService.js +276 -0
- package/dist/services/borrow/internal/borrowRegistryReader.d.ts +5 -0
- package/dist/services/borrow/internal/borrowRegistryReader.js +113 -0
- package/dist/services/borrow/internal/borrowTransactionService.d.ts +23 -0
- package/dist/services/borrow/internal/borrowTransactionService.js +276 -0
- package/dist/services/borrow/internal/borrowTypes.d.ts +15 -0
- package/dist/services/borrow/internal/borrowTypes.js +3 -0
- package/dist/services/borrow/internal/borrowValidation.d.ts +14 -0
- package/dist/services/borrow/internal/borrowValidation.js +104 -0
- package/dist/services/index.d.ts +9 -0
- package/dist/{cjs → services}/index.js +9 -7
- package/dist/services/liquidity/LiquidityService.d.ts +139 -0
- package/dist/services/liquidity/LiquidityService.js +168 -0
- package/dist/services/liquidity/basicLiquidity.d.ts +11 -0
- package/dist/services/liquidity/basicLiquidity.js +172 -0
- package/dist/services/liquidity/index.d.ts +2 -0
- package/dist/{cjs/types → services/liquidity}/index.js +2 -2
- package/dist/services/liquidity/liquidityHelpers.d.ts +19 -0
- package/dist/services/liquidity/liquidityHelpers.js +104 -0
- package/dist/services/liquidity/rebalance.d.ts +6 -0
- package/dist/services/liquidity/rebalance.js +64 -0
- package/dist/services/liquidity/zapHelpers.d.ts +66 -0
- package/dist/services/liquidity/zapHelpers.js +129 -0
- package/dist/services/liquidity/zapIn.d.ts +18 -0
- package/dist/services/liquidity/zapIn.js +119 -0
- package/dist/services/liquidity/zapOut.d.ts +9 -0
- package/dist/services/liquidity/zapOut.js +255 -0
- package/dist/services/pools/PoolService.d.ts +69 -0
- package/dist/services/pools/PoolService.js +209 -0
- package/dist/services/pools/index.d.ts +2 -0
- package/dist/{cjs/enums → services/pools}/index.js +2 -3
- package/dist/services/pools/poolDetails.d.ts +13 -0
- package/dist/services/pools/poolDetails.js +216 -0
- package/dist/services/pools/poolDiscovery.d.ts +12 -0
- package/dist/services/pools/poolDiscovery.js +117 -0
- package/dist/services/pools/rebalancePreview.d.ts +5 -0
- package/dist/services/pools/rebalancePreview.js +186 -0
- package/dist/services/quotes/QuoteService.d.ts +51 -0
- package/dist/services/quotes/QuoteService.js +91 -0
- package/dist/services/quotes/index.d.ts +2 -0
- package/dist/services/quotes/index.js +18 -0
- package/dist/services/routes/RouteService.d.ts +117 -0
- package/dist/services/routes/RouteService.js +306 -0
- package/dist/services/routes/index.d.ts +2 -0
- package/dist/services/routes/index.js +18 -0
- package/dist/services/swap/SwapService.d.ts +198 -0
- package/dist/services/swap/SwapService.js +252 -0
- package/dist/services/swap/index.d.ts +2 -0
- package/dist/services/swap/index.js +18 -0
- package/dist/services/tokens/index.d.ts +2 -0
- package/dist/services/tokens/index.js +18 -0
- package/dist/services/tokens/tokenService.d.ts +55 -0
- package/dist/services/tokens/tokenService.js +290 -0
- package/dist/services/trading/TradingLimitsService.d.ts +38 -0
- package/dist/services/trading/TradingLimitsService.js +159 -0
- package/dist/services/trading/TradingService.d.ts +113 -0
- package/dist/services/trading/TradingService.js +201 -0
- package/dist/services/trading/index.d.ts +3 -0
- package/dist/services/trading/index.js +19 -0
- package/dist/utils/chainConfig.d.ts +16 -0
- package/dist/utils/chainConfig.js +123 -0
- package/dist/utils/costUtils.d.ts +12 -0
- package/dist/utils/costUtils.js +60 -0
- package/dist/utils/deadline.d.ts +21 -0
- package/dist/utils/deadline.js +26 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.js +26 -0
- package/dist/utils/multicall.d.ts +30 -0
- package/dist/utils/multicall.js +52 -0
- package/dist/utils/pathEncoder.d.ts +34 -0
- package/dist/utils/pathEncoder.js +73 -0
- package/dist/utils/rateFeed.d.ts +18 -0
- package/dist/utils/rateFeed.js +27 -0
- package/dist/utils/retry.d.ts +12 -0
- package/dist/utils/retry.js +28 -0
- package/dist/{esm → utils}/routeUtils.d.ts +84 -93
- package/dist/{cjs → utils}/routeUtils.js +123 -124
- package/dist/utils/routes.d.ts +3 -0
- package/dist/utils/routes.js +8 -0
- package/dist/utils/sortUtils.d.ts +24 -0
- package/dist/utils/sortUtils.js +39 -0
- package/dist/utils/tokens.d.ts +2 -0
- package/dist/utils/tokens.js +13 -0
- package/dist/utils/tradingLimits.d.ts +41 -0
- package/dist/utils/tradingLimits.js +171 -0
- package/dist/utils/validation.d.ts +19 -0
- package/dist/utils/validation.js +34 -0
- package/package.json +1 -1
- package/dist/cjs/ChainClient.d.ts +0 -9
- package/dist/cjs/ChainClient.js +0 -58
- package/dist/cjs/TestChainClient.d.ts +0 -7
- package/dist/cjs/TestChainClient.js +0 -41
- package/dist/cjs/constants/addresses.d.ts +0 -4
- package/dist/cjs/constants/addresses.js +0 -59
- package/dist/cjs/constants/currencies.d.ts +0 -5
- package/dist/cjs/constants/currencies.js +0 -29
- package/dist/cjs/constants/index.d.ts +0 -4
- package/dist/cjs/constants/tokens.11142220.d.ts +0 -2
- package/dist/cjs/constants/tokens.11142220.js +0 -128
- package/dist/cjs/constants/tokens.42220.d.ts +0 -2
- package/dist/cjs/constants/tokens.42220.js +0 -128
- package/dist/cjs/constants/tokens.d.ts +0 -65
- package/dist/cjs/constants/tokens.js +0 -170
- package/dist/cjs/constants/tradablePairs.11142220.d.ts +0 -2
- package/dist/cjs/constants/tradablePairs.11142220.js +0 -7391
- package/dist/cjs/constants/tradablePairs.42220.d.ts +0 -2
- package/dist/cjs/constants/tradablePairs.42220.js +0 -7391
- package/dist/cjs/constants/tradablePairs.d.ts +0 -16
- package/dist/cjs/constants/tradablePairs.js +0 -53
- package/dist/cjs/enums/chainId.d.ts +0 -4
- package/dist/cjs/enums/index.d.ts +0 -3
- package/dist/cjs/enums/proposalState.d.ts +0 -10
- package/dist/cjs/enums/proposalState.js +0 -14
- package/dist/cjs/enums/tradingMode.d.ts +0 -17
- package/dist/cjs/enums/tradingMode.js +0 -21
- package/dist/cjs/governance.d.ts +0 -62
- package/dist/cjs/governance.js +0 -151
- package/dist/cjs/index.d.ts +0 -7
- package/dist/cjs/interfaces/IChainClient.d.ts +0 -6
- package/dist/cjs/interfaces/index.d.ts +0 -4
- package/dist/cjs/interfaces/tradingLimit.d.ts +0 -7
- package/dist/cjs/interfaces/tradingLimitsConfig.d.ts +0 -10
- package/dist/cjs/interfaces/tradingLimitsState.d.ts +0 -9
- package/dist/cjs/limits.d.ts +0 -33
- package/dist/cjs/limits.js +0 -130
- package/dist/cjs/mento.d.ts +0 -287
- package/dist/cjs/mento.js +0 -699
- package/dist/cjs/routeUtils.d.ts +0 -304
- package/dist/cjs/types/contractAddressMap.d.ts +0 -4
- package/dist/cjs/types/contractAddressMap.js +0 -2
- package/dist/cjs/types/contractAddresses.d.ts +0 -23
- package/dist/cjs/types/index.d.ts +0 -2
- package/dist/cjs/utils.d.ts +0 -80
- package/dist/cjs/utils.js +0 -177
- package/dist/esm/ChainClient.d.ts +0 -9
- package/dist/esm/ChainClient.js +0 -54
- package/dist/esm/TestChainClient.d.ts +0 -7
- package/dist/esm/TestChainClient.js +0 -37
- package/dist/esm/constants/addresses.d.ts +0 -4
- package/dist/esm/constants/addresses.js +0 -55
- package/dist/esm/constants/currencies.d.ts +0 -5
- package/dist/esm/constants/currencies.js +0 -26
- package/dist/esm/constants/index.d.ts +0 -4
- package/dist/esm/constants/index.js +0 -4
- package/dist/esm/constants/tokens.11142220.d.ts +0 -2
- package/dist/esm/constants/tokens.11142220.js +0 -125
- package/dist/esm/constants/tokens.42220.d.ts +0 -2
- package/dist/esm/constants/tokens.42220.js +0 -125
- package/dist/esm/constants/tokens.d.ts +0 -65
- package/dist/esm/constants/tokens.js +0 -142
- package/dist/esm/constants/tradablePairs.11142220.d.ts +0 -2
- package/dist/esm/constants/tradablePairs.11142220.js +0 -7388
- package/dist/esm/constants/tradablePairs.42220.d.ts +0 -2
- package/dist/esm/constants/tradablePairs.42220.js +0 -7388
- package/dist/esm/constants/tradablePairs.d.ts +0 -16
- package/dist/esm/constants/tradablePairs.js +0 -26
- package/dist/esm/enums/chainId.d.ts +0 -4
- package/dist/esm/enums/index.d.ts +0 -3
- package/dist/esm/enums/index.js +0 -3
- package/dist/esm/enums/proposalState.d.ts +0 -10
- package/dist/esm/enums/proposalState.js +0 -11
- package/dist/esm/enums/tradingMode.d.ts +0 -17
- package/dist/esm/enums/tradingMode.js +0 -18
- package/dist/esm/governance.d.ts +0 -62
- package/dist/esm/governance.js +0 -147
- package/dist/esm/index.d.ts +0 -7
- package/dist/esm/interfaces/IChainClient.d.ts +0 -6
- package/dist/esm/interfaces/index.d.ts +0 -4
- package/dist/esm/interfaces/index.js +0 -4
- package/dist/esm/interfaces/tradingLimit.d.ts +0 -7
- package/dist/esm/interfaces/tradingLimitsConfig.d.ts +0 -10
- package/dist/esm/interfaces/tradingLimitsState.d.ts +0 -9
- package/dist/esm/limits.d.ts +0 -33
- package/dist/esm/limits.js +0 -123
- package/dist/esm/mento.d.ts +0 -287
- package/dist/esm/mento.js +0 -671
- package/dist/esm/types/contractAddressMap.d.ts +0 -4
- package/dist/esm/types/contractAddresses.d.ts +0 -23
- package/dist/esm/types/index.d.ts +0 -2
- package/dist/esm/types/index.js +0 -2
- package/dist/esm/utils.d.ts +0 -80
- package/dist/esm/utils.js +0 -162
- /package/dist/esm/{interfaces/IChainClient.js → core/types/borrow.js} +0 -0
- /package/dist/esm/{types → core/types}/contractAddresses.js +0 -0
- /package/dist/esm/{interfaces/tradingLimit.js → core/types/liquidity.js} +0 -0
- /package/dist/esm/{interfaces/tradingLimitsConfig.js → core/types/provider.js} +0 -0
- /package/dist/esm/{interfaces/tradingLimitsState.js → core/types/route.js} +0 -0
- /package/dist/esm/{types/contractAddressMap.js → core/types/token.js} +0 -0
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Address } from './interfaces';
|
|
3
|
-
import { TradablePair, TradablePairID } from './mento';
|
|
1
|
+
import type { Route, RouteID, RouteWithCost, Pool } from '../core/types';
|
|
4
2
|
type TokenSymbol = string;
|
|
5
|
-
|
|
6
|
-
providerAddr: Address;
|
|
7
|
-
id: string;
|
|
8
|
-
assets: [Address, Address];
|
|
9
|
-
}
|
|
3
|
+
type Address = string;
|
|
10
4
|
/**
|
|
11
5
|
* =============================================================================
|
|
12
6
|
* ROUTE GENERATION UTILITIES
|
|
@@ -18,12 +12,12 @@ interface ExchangeDetails {
|
|
|
18
12
|
*
|
|
19
13
|
* 1. Build connectivity structures from direct trading pairs
|
|
20
14
|
* 2. Generate all possible routes (direct + two-hop)
|
|
21
|
-
* 3. Select optimal routes using
|
|
15
|
+
* 3. Select optimal routes using cost data or heuristics
|
|
22
16
|
*
|
|
23
17
|
* ALGORITHM OVERVIEW:
|
|
24
18
|
* - Creates a graph where tokens are nodes and direct exchanges are edges
|
|
25
19
|
* - Uses graph traversal to find two-hop routes through intermediate tokens
|
|
26
|
-
* - Optimizes route selection based on
|
|
20
|
+
* - Optimizes route selection based on cost data when available
|
|
27
21
|
* - Falls back to heuristics (prefer direct routes, major stablecoins)
|
|
28
22
|
* =============================================================================
|
|
29
23
|
*/
|
|
@@ -33,15 +27,15 @@ interface ExchangeDetails {
|
|
|
33
27
|
*
|
|
34
28
|
* CONCRETE EXAMPLE:
|
|
35
29
|
* Given these direct trading pairs:
|
|
36
|
-
* -
|
|
37
|
-
* - CELO ↔
|
|
38
|
-
* -
|
|
30
|
+
* - USDm ↔ CELO (direct exchange exists)
|
|
31
|
+
* - CELO ↔ EURm (direct exchange exists)
|
|
32
|
+
* - USDm ↔ BRLm (direct exchange exists)
|
|
39
33
|
*
|
|
40
34
|
* How route finding works:
|
|
41
|
-
* - Direct route:
|
|
42
|
-
* - Two-hop route:
|
|
43
|
-
* -
|
|
44
|
-
* -
|
|
35
|
+
* - Direct route: USDm → EURm? Check token graph: USDm connects to [CELO, BRLm], none is EURm → No direct route
|
|
36
|
+
* - Two-hop route: USDm → ? → EURm?
|
|
37
|
+
* - USDm connects to CELO, CELO connects to EURm → Found route: USDm → CELO → EURm
|
|
38
|
+
* - USDm connects to BRLm, BRLm connects to [USDm] → No route via BRLm
|
|
45
39
|
*
|
|
46
40
|
* The "connectivity" part means we can quickly traverse the network of
|
|
47
41
|
* token connections to find all possible trading paths.
|
|
@@ -50,36 +44,36 @@ export interface ConnectivityData {
|
|
|
50
44
|
/** Maps token address to symbol for efficient lookups
|
|
51
45
|
*
|
|
52
46
|
* ```
|
|
53
|
-
* '0x765D...' → '
|
|
47
|
+
* '0x765D...' → 'USDm'
|
|
54
48
|
* '0x471E...' → 'CELO'
|
|
55
|
-
* '0xD876...' → '
|
|
49
|
+
* '0xD876...' → 'EURm'
|
|
56
50
|
* ```
|
|
57
51
|
*/
|
|
58
52
|
addrToSymbol: Map<Address, TokenSymbol>;
|
|
59
53
|
/** Adjacency list mapping which tokens connect to which
|
|
60
54
|
* Used for finding two-hop routes by traversing token → neighbor → neighbor.
|
|
61
55
|
*
|
|
62
|
-
* Example for a
|
|
63
|
-
* Then we find CELO → [
|
|
56
|
+
* Example for a USDm => EURm swap: First we find USDm → [CELO, KESm, ...]
|
|
57
|
+
* Then we find CELO → [USDm, EURm, ...] = found route via USDm → CELO → EURm
|
|
64
58
|
*
|
|
65
59
|
* ```
|
|
66
|
-
* '
|
|
67
|
-
* 'CELO_addr' → Set(['
|
|
68
|
-
* '
|
|
69
|
-
* '
|
|
60
|
+
* 'USDm_addr' → Set(['CELO_addr', 'KESm_addr']) // USDm connects to CELO and KESm
|
|
61
|
+
* 'CELO_addr' → Set(['USDm_addr', 'EURm_addr']) // CELO connects to USDm and EURm
|
|
62
|
+
* 'EURm_addr' → Set(['CELO_addr']) // EURm connects to CELO
|
|
63
|
+
* 'KESm_addr' → Set(['USDm_addr']) // KESm connects to USDm
|
|
70
64
|
* ```
|
|
71
65
|
*/
|
|
72
66
|
tokenGraph: Map<Address, Set<Address>>;
|
|
73
|
-
/** Maps sorted token address pairs to their direct
|
|
67
|
+
/** Maps sorted token address pairs to their direct route details
|
|
74
68
|
* ```
|
|
75
|
-
* 'CELO_addr-
|
|
76
|
-
* 'CELO_addr-
|
|
77
|
-
* '
|
|
69
|
+
* 'CELO_addr-EURm_addr' → { route details for CELO ↔ EURm }
|
|
70
|
+
* 'CELO_addr-USDm_addr' → { route details for CELO ↔ USDm }
|
|
71
|
+
* 'USDm_addr-KESm_addr' → { route details for USDm ↔ KESm }
|
|
78
72
|
* ```
|
|
79
73
|
*/
|
|
80
|
-
|
|
81
|
-
/** Original direct
|
|
82
|
-
|
|
74
|
+
directRouteMap: Map<RouteID, Pool>;
|
|
75
|
+
/** Original direct routes from mento.getDirectRoutes() for reference */
|
|
76
|
+
directRoutes: Route[];
|
|
83
77
|
}
|
|
84
78
|
/**
|
|
85
79
|
* Builds the connectivity data structures needed for route generation.
|
|
@@ -91,23 +85,23 @@ export interface ConnectivityData {
|
|
|
91
85
|
*
|
|
92
86
|
* ```
|
|
93
87
|
* Input: TradablePairs = [
|
|
94
|
-
* { id: '
|
|
95
|
-
* { id: 'CELO-
|
|
88
|
+
* { id: 'USDm-CELO', assets: [USDm, CELO], path: [exchange1_CELO_USDm] },
|
|
89
|
+
* { id: 'CELO-EURm', assets: [CELO, EURm], path: [exchange2_CELO_EURm] }
|
|
96
90
|
* ]
|
|
97
91
|
*
|
|
98
92
|
* Step 1 - Build addrToSymbol map:
|
|
99
|
-
*
|
|
93
|
+
* USDm.address → 'USDm'
|
|
100
94
|
* CELO.address → 'CELO'
|
|
101
|
-
*
|
|
95
|
+
* EURm.address → 'EURm'
|
|
102
96
|
*
|
|
103
97
|
* Step 2 - Build directPathMap (sorted alphabetically for consistency):
|
|
104
|
-
* 'CELO_addr-
|
|
105
|
-
* 'CELO_addr-
|
|
98
|
+
* 'CELO_addr-EURm_addr' → exchange2_CELO_EURm
|
|
99
|
+
* 'CELO_addr-USDm_addr' → exchange1_CELO_USDm
|
|
106
100
|
*
|
|
107
101
|
* Step 3 - Build bidirectional tokenGraph:
|
|
108
|
-
*
|
|
109
|
-
* CELO.address → Set([
|
|
110
|
-
*
|
|
102
|
+
* USDm.address → Set([CELO.address])
|
|
103
|
+
* CELO.address → Set([USDm.address, EURm.address])
|
|
104
|
+
* EURm.address → Set([CELO.address])
|
|
111
105
|
* ```
|
|
112
106
|
*
|
|
113
107
|
* **Result**: We can now efficiently answer:
|
|
@@ -115,32 +109,32 @@ export interface ConnectivityData {
|
|
|
115
109
|
* - "What exchange connects tokens X and Y?" → directPathMap.get(sortedAddressPairKey)
|
|
116
110
|
* - "What tokens can I reach from token X?" → tokenGraph.get(X)
|
|
117
111
|
*
|
|
118
|
-
* @param
|
|
112
|
+
* @param directRoutes - Array of direct trading pairs
|
|
119
113
|
* @returns Connectivity data structure for efficient route generation
|
|
120
114
|
*
|
|
121
115
|
* @example
|
|
122
116
|
* ```typescript
|
|
123
117
|
* const directPairs = [
|
|
124
|
-
* { id: '
|
|
125
|
-
* { id: 'CELO-
|
|
118
|
+
* { id: 'USDm-CELO', assets: [USDm, CELO], path: [exchange1] },
|
|
119
|
+
* { id: 'CELO-EURm', assets: [CELO, EURm], path: [exchange2] }
|
|
126
120
|
* ]
|
|
127
121
|
*
|
|
128
122
|
* const connectivityData = buildConnectivityStructures(directPairs)
|
|
129
123
|
*
|
|
130
124
|
* // Now we can efficiently find routes:
|
|
131
|
-
* // 1. Check if
|
|
132
|
-
* // 2. Check if CELO connects to
|
|
133
|
-
* // 3. Get exchange details: connectivityData.directPathMap.get('CELO_addr-
|
|
134
|
-
* // Result: Found route
|
|
125
|
+
* // 1. Check if USDm connects to anything: connectivityData.tokenGraph.get(USDm.address) → [CELO.address]
|
|
126
|
+
* // 2. Check if CELO connects to EURm: connectivityData.tokenGraph.get(CELO.address) → [USDm.address, EURm.address] ✓
|
|
127
|
+
* // 3. Get exchange details: connectivityData.directPathMap.get('CELO_addr-EURm_addr') → exchange2_CELO_EURm
|
|
128
|
+
* // Result: Found route USDm → CELO → EURm with exchange details
|
|
135
129
|
* ```
|
|
136
130
|
*/
|
|
137
|
-
export declare function buildConnectivityStructures(
|
|
131
|
+
export declare function buildConnectivityStructures(directRoutes: Route[]): ConnectivityData;
|
|
138
132
|
/**
|
|
139
133
|
* Generates all possible routes (direct + two-hop) using connectivity data.
|
|
140
134
|
*
|
|
141
135
|
* This function implements a route discovery algorithm that:
|
|
142
136
|
*
|
|
143
|
-
* 1. **Adds all direct
|
|
137
|
+
* 1. **Adds all direct routes** (single-hop routes)
|
|
144
138
|
* 2. **Discovers two-hop routes** using graph traversal:
|
|
145
139
|
* - For each token A, find its neighbors (tokens directly connected)
|
|
146
140
|
* - For each neighbor B, find B's neighbors
|
|
@@ -148,28 +142,28 @@ export declare function buildConnectivityStructures(directPairs: TradablePair[])
|
|
|
148
142
|
*
|
|
149
143
|
* **Route Deduplication**: Multiple routes between the same token pair
|
|
150
144
|
* are collected in arrays, allowing the selection algorithm to choose
|
|
151
|
-
* the best one based on
|
|
145
|
+
* the best one based on cost data or heuristics.
|
|
152
146
|
*
|
|
153
|
-
* **Canonical
|
|
154
|
-
* (e.g., '
|
|
147
|
+
* **Canonical Route IDs**: All routes use alphabetically sorted symbols
|
|
148
|
+
* (e.g., 'EURm-USDm' not 'USDm-EURm') for consistent identification.
|
|
155
149
|
*
|
|
156
150
|
* @param connectivityData - The connectivity data from buildConnectivityStructures()
|
|
157
|
-
* @returns Map of
|
|
151
|
+
* @returns Map of route ID -> array of possible routes for that token pair
|
|
158
152
|
*
|
|
159
153
|
* @example
|
|
160
154
|
* ```typescript
|
|
161
|
-
* // Given direct
|
|
155
|
+
* // Given direct routes: USDm-CELO, CELO-EURm, USDm-USDC
|
|
162
156
|
* const allRoutes = generateAllRoutes(connectivityData)
|
|
163
157
|
*
|
|
164
158
|
* // Results might include:
|
|
165
|
-
* // '
|
|
166
|
-
* // '
|
|
167
|
-
* // { path: [
|
|
168
|
-
* // { path: [
|
|
159
|
+
* // 'USDm-CELO' -> [{ path: [USDm->CELO] }] // direct route
|
|
160
|
+
* // 'EURm-USDm' -> [
|
|
161
|
+
* // { path: [USDm->USDC, USDC->EURm] } // two-hop via USDC
|
|
162
|
+
* // { path: [USDm->CELO, CELO->EURm] } // two-hop via CELO
|
|
169
163
|
* // ]
|
|
170
164
|
* ```
|
|
171
165
|
*/
|
|
172
|
-
export declare function generateAllRoutes(connectivityData: ConnectivityData): Map<
|
|
166
|
+
export declare function generateAllRoutes(connectivityData: ConnectivityData): Map<RouteID, Route[]>;
|
|
173
167
|
/**
|
|
174
168
|
* Creates a two-hop tradable pair if valid exchange hops exist.
|
|
175
169
|
*
|
|
@@ -193,31 +187,27 @@ export declare function generateAllRoutes(connectivityData: ConnectivityData): M
|
|
|
193
187
|
*
|
|
194
188
|
* @example
|
|
195
189
|
* ```typescript
|
|
196
|
-
* // Create route:
|
|
190
|
+
* // Create route: USDm -> CELO -> EURm
|
|
197
191
|
* const pair = createTwoHopPair(
|
|
198
|
-
* '0x765D...', //
|
|
192
|
+
* '0x765D...', // USDm address
|
|
199
193
|
* '0x471E...', // CELO address
|
|
200
|
-
* '0xD876...', //
|
|
194
|
+
* '0xD876...', // EURm address
|
|
201
195
|
* addrToSymbol,
|
|
202
196
|
* directPathMap
|
|
203
197
|
* )
|
|
204
198
|
*
|
|
205
199
|
* // Result:
|
|
206
200
|
* // {
|
|
207
|
-
* // id: '
|
|
208
|
-
* // assets: [
|
|
201
|
+
* // id: 'EURm-USDm', // alphabetical order
|
|
202
|
+
* // assets: [EURm, USDm], // alphabetical order
|
|
209
203
|
* // path: [ // actual routing path
|
|
210
|
-
* // {
|
|
211
|
-
* // { CELO->
|
|
204
|
+
* // { USDm->CELO exchange },
|
|
205
|
+
* // { CELO->EURm exchange }
|
|
212
206
|
* // ]
|
|
213
207
|
* // }
|
|
214
208
|
* ```
|
|
215
209
|
*/
|
|
216
|
-
export declare function
|
|
217
|
-
providerAddr: Address;
|
|
218
|
-
id: string;
|
|
219
|
-
assets: [Address, Address];
|
|
220
|
-
}>): TradablePair | null;
|
|
210
|
+
export declare function createTwoHopRoute(startAddr: Address, intermediateAddr: Address, endAddr: Address, addrToSymbol: Map<Address, TokenSymbol>, directRouteMap: Map<RouteID, Pool>): Route | null;
|
|
221
211
|
/**
|
|
222
212
|
* Selects optimal routes from all candidates based on spread data or heuristics.
|
|
223
213
|
*
|
|
@@ -239,38 +229,38 @@ export declare function createTwoHopPair(startToken: Address, intermediateToken:
|
|
|
239
229
|
*
|
|
240
230
|
* @example
|
|
241
231
|
* ```typescript
|
|
242
|
-
* // Multiple routes for
|
|
232
|
+
* // Multiple routes for USDm-EURm pair
|
|
243
233
|
* const candidates = new Map([
|
|
244
|
-
* ['
|
|
245
|
-
* { path: [
|
|
246
|
-
* { path: [
|
|
247
|
-
* { path: [
|
|
234
|
+
* ['EURm-USDm', [
|
|
235
|
+
* { path: [USDm->CELO->EURm], costData: { totalCostPercent: 0.5 } },
|
|
236
|
+
* { path: [USDm->BRLm->EURm], costData: { totalCostPercent: 0.3 } },
|
|
237
|
+
* { path: [USDm->EURm] } // direct route, no cost data
|
|
248
238
|
* ]]
|
|
249
239
|
* ])
|
|
250
240
|
*
|
|
251
241
|
* const optimal = selectOptimalRoutes(candidates, false, assetMap)
|
|
252
|
-
* // Returns the
|
|
242
|
+
* // Returns the USDm->BRLm->EURm route (lowest cost: 0.3%)
|
|
253
243
|
* ```
|
|
254
244
|
*/
|
|
255
|
-
export declare function selectOptimalRoutes(allRoutes: Map<
|
|
245
|
+
export declare function selectOptimalRoutes(allRoutes: Map<RouteID, Route[]>, returnAllRoutes: boolean, addrToSymbol: Map<Address, TokenSymbol>): (Route | RouteWithCost)[];
|
|
256
246
|
/**
|
|
257
|
-
* Selects the best route from candidates using
|
|
247
|
+
* Selects the best route from candidates using cost data or fallback heuristics.
|
|
258
248
|
*
|
|
259
249
|
* This function implements a sophisticated route selection algorithm with
|
|
260
250
|
* multiple optimization tiers:
|
|
261
251
|
*
|
|
262
|
-
* **Tier 1 -
|
|
263
|
-
* - Use routes with
|
|
264
|
-
* - Select route with lowest `
|
|
252
|
+
* **Tier 1 - Cost-Based Optimization** (Preferred):
|
|
253
|
+
* - Use routes with cost data (actual cost information)
|
|
254
|
+
* - Select route with lowest `totalCostPercent`
|
|
265
255
|
* - This provides the most cost-efficient trading
|
|
266
256
|
*
|
|
267
257
|
* **Tier 2 - Direct Route Preference** (Fallback):
|
|
268
|
-
* - If no
|
|
258
|
+
* - If no cost data available, prefer direct (single-hop) routes
|
|
269
259
|
* - Direct routes have lower execution risk and gas costs
|
|
270
260
|
*
|
|
271
261
|
* **Tier 3 - Major Stablecoin Preference** (Final Fallback):
|
|
272
262
|
* - For two-hop routes, prefer those going through major stablecoins
|
|
273
|
-
* - Major FX currencies like
|
|
263
|
+
* - Major FX currencies like USDm and EURm typically have better liquidity
|
|
274
264
|
*
|
|
275
265
|
* **Tier 4 - First Available** (Last Resort):
|
|
276
266
|
* - If no other heuristics apply, use the first route found
|
|
@@ -282,23 +272,24 @@ export declare function selectOptimalRoutes(allRoutes: Map<TradablePairID, Trada
|
|
|
282
272
|
* @example
|
|
283
273
|
* ```typescript
|
|
284
274
|
* const candidates = [
|
|
285
|
-
* { path: [A->B->C],
|
|
286
|
-
* { path: [A->D->C],
|
|
287
|
-
* { path: [A->C] }, // direct route, no
|
|
275
|
+
* { path: [A->B->C], costData: { totalCostPercent: 0.8 } },
|
|
276
|
+
* { path: [A->D->C], costData: { totalCostPercent: 0.4 } }, // Winner: lowest cost
|
|
277
|
+
* { path: [A->C] }, // direct route, no cost data
|
|
288
278
|
* ]
|
|
289
279
|
*
|
|
290
280
|
* const best = selectBestRoute(candidates, assetMap)
|
|
291
|
-
* // Returns the A->D->C route (0.4%
|
|
281
|
+
* // Returns the A->D->C route (0.4% cost)
|
|
292
282
|
* ```
|
|
293
283
|
*/
|
|
294
|
-
export declare function selectBestRoute(candidates:
|
|
284
|
+
export declare function selectBestRoute(candidates: Route[], addrToSymbol: Map<Address, TokenSymbol>): Route | RouteWithCost;
|
|
295
285
|
/**
|
|
296
286
|
* Extracts the intermediate token address from a two-hop route.
|
|
297
287
|
* In a two-hop route A->B->C, this function finds token B (the intermediate).
|
|
298
288
|
*/
|
|
299
|
-
export declare function getIntermediateToken(route:
|
|
289
|
+
export declare function getIntermediateToken(route: Route): Address | undefined;
|
|
300
290
|
/**
|
|
301
|
-
* Type guard to check if a Route has
|
|
291
|
+
* Type guard to check if a Route has cost data.
|
|
302
292
|
*/
|
|
303
|
-
export declare function
|
|
293
|
+
export declare function hasCostData(pair: Route | RouteWithCost): pair is RouteWithCost;
|
|
304
294
|
export {};
|
|
295
|
+
//# sourceMappingURL=routeUtils.d.ts.map
|