From 3f8787eb74084d97fba06482672d89533893309a Mon Sep 17 00:00:00 2001 From: dglowinski Date: Fri, 10 Jan 2025 12:21:09 +0100 Subject: [PATCH] add exclude token filter; update config --- src/swapService/config/mainnet.ts | 27 +-------------------------- src/swapService/interface.ts | 1 + src/swapService/utils.ts | 11 +++++++++++ 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/src/swapService/config/mainnet.ts b/src/swapService/config/mainnet.ts index bc0d19d..d5106f2 100644 --- a/src/swapService/config/mainnet.ts +++ b/src/swapService/config/mainnet.ts @@ -42,32 +42,6 @@ const mainnetRoutingConfig: ChainRoutingConfig = [ }, match: { isPendlePT: true }, }, - { - strategy: StrategyBalmySDK.name(), - config: { - sourcesFilter: { - includeSources: ["paraswap", "open-ocean", "li-fi", "odos", "1inch"], - }, - tryExactOut: true, - }, - match: { - tokensInOrOut: [SUSDS_MAINNET], - }, - }, - // Target debt RLP through Odos - { - strategy: StrategyBalmySDK.name(), - config: { - sourcesFilter: { - includeSources: ["odos", "1inch"], - }, - }, - match: { - swapperModes: [SwapperMode.TARGET_DEBT], - tokensInOrOut: [RLP_MAINNET], - }, - }, - // DEFAULTS { strategy: StrategyBalmySDK.name(), @@ -92,6 +66,7 @@ const mainnetRoutingConfig: ChainRoutingConfig = [ strategy: StrategyCombinedUniswap.name(), match: { swapperModes: [SwapperMode.TARGET_DEBT], + excludeTokensInOrOut: [RLP_MAINNET, SUSDS_MAINNET], }, }, // FALLBACKS diff --git a/src/swapService/interface.ts b/src/swapService/interface.ts index 4f40155..cb50bcf 100644 --- a/src/swapService/interface.ts +++ b/src/swapService/interface.ts @@ -70,6 +70,7 @@ export interface StrategyMatchConfig { isRepay?: boolean isPendlePT?: boolean tokensInOrOut?: Address[] + excludeTokensInOrOut?: Address[] } export interface RoutingItem { diff --git a/src/swapService/utils.ts b/src/swapService/utils.ts index cd69ad2..78a710c 100644 --- a/src/swapService/utils.ts +++ b/src/swapService/utils.ts @@ -62,6 +62,17 @@ export function matchParams( ) return false } + if (match.excludeTokensInOrOut) { + if ( + match.excludeTokensInOrOut.some((token: Hex) => { + return ( + isAddressEqual(swapParams.tokenIn.addressInfo, token) || + isAddressEqual(swapParams.tokenOut.addressInfo, token) + ) + }) + ) + return false + } if (match.isRepay) { if (swapParams.isRepay !== match.isRepay) return false }