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