diff --git a/packages/plugin-solana/src/providers/token.ts b/packages/plugin-solana/src/providers/token.ts index b773d0cebad..174f47fd290 100644 --- a/packages/plugin-solana/src/providers/token.ts +++ b/packages/plugin-solana/src/providers/token.ts @@ -604,21 +604,13 @@ export class TokenProvider { } // Sort pairs by both liquidity and market cap to get the highest one - return dexData.pairs.reduce((highestPair, currentPair) => { - const currentLiquidity = currentPair.liquidity.usd; - const currentMarketCap = currentPair.marketCap; - const highestLiquidity = highestPair.liquidity.usd; - const highestMarketCap = highestPair.marketCap; - - if ( - currentLiquidity > highestLiquidity || - (currentLiquidity === highestLiquidity && - currentMarketCap > highestMarketCap) - ) { - return currentPair; + return dexData.pairs.sort((a, b) => { + const liquidityDiff = b.liquidity.usd - a.liquidity.usd; + if (liquidityDiff !== 0) { + return liquidityDiff; // Higher liquidity comes first } - return highestPair; - }); + return b.marketCap - a.marketCap; // If liquidity is equal, higher market cap comes first + })[0]; } async analyzeHolderDistribution( diff --git a/packages/plugin-starknet/src/providers/token.ts b/packages/plugin-starknet/src/providers/token.ts index c6677d4dfb4..ece618b29c8 100644 --- a/packages/plugin-starknet/src/providers/token.ts +++ b/packages/plugin-starknet/src/providers/token.ts @@ -385,21 +385,13 @@ export class TokenProvider { } // Sort pairs by both liquidity and market cap to get the highest one - return dexData.pairs.reduce((highestPair, currentPair) => { - const currentLiquidity = currentPair.liquidity.usd; - const currentMarketCap = currentPair.marketCap; - const highestLiquidity = highestPair.liquidity.usd; - const highestMarketCap = highestPair.marketCap; - - if ( - currentLiquidity > highestLiquidity || - (currentLiquidity === highestLiquidity && - currentMarketCap > highestMarketCap) - ) { - return currentPair; + return dexData.pairs.sort((a, b) => { + const liquidityDiff = b.liquidity.usd - a.liquidity.usd; + if (liquidityDiff !== 0) { + return liquidityDiff; // Higher liquidity comes first } - return highestPair; - }); + return b.marketCap - a.marketCap; // If liquidity is equal, higher market cap comes first + })[0]; } // TODO: