From d2d747af145a3477acc442a29586a720e5904765 Mon Sep 17 00:00:00 2001 From: Rushikesh Chavan Date: Tue, 24 Mar 2026 15:26:27 +0530 Subject: [PATCH] fix: prefer exact case match in getCoinBySymbol to resolve wBTC/WBTC collision --- src/models/coinInfoProvider.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/models/coinInfoProvider.ts b/src/models/coinInfoProvider.ts index 5a8740a..84e2b55 100644 --- a/src/models/coinInfoProvider.ts +++ b/src/models/coinInfoProvider.ts @@ -34,11 +34,12 @@ export class CoinInfoProvider { return this.cache.getOrFetch(() => this.fetchFromApi()); } - /** Get coin metadata by symbol. */ + /** Get coin metadata by symbol. Prefers exact case match; falls back to case-insensitive. */ async getCoinBySymbol(symbol: string): Promise { - const coins = await this.getAllCoins(); - return Array.from(coins.values()).find( - (coin) => coin.symbol.toUpperCase() === symbol.toUpperCase(), + const coins = Array.from((await this.getAllCoins()).values()); + return ( + coins.find((coin) => coin.symbol === symbol) ?? + coins.find((coin) => coin.symbol.toUpperCase() === symbol.toUpperCase()) ); }