From da428a3815b0c3a70c571e597036ac99c2518996 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 27 Feb 2026 14:24:32 -0800 Subject: [PATCH] fix: preserve ENS names on lookup failure, add debug logging (closes #22) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two issues that could cause ENS names to disappear: 1. refreshBalances: on ENS lookup error, addr.ensName was set to null, wiping any previously resolved name. Now keeps the existing value on error — only overwrites on successful lookup. 2. ens.js cache: failed lookups were cached as null for 12 hours, preventing retries even after transient errors resolved. Now skips caching on failure so subsequent lookups retry immediately. Added debug logging to ENS reverse lookups in refreshBalances. --- src/shared/balances.js | 18 +++++++++++++++--- src/shared/ens.js | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/shared/balances.js b/src/shared/balances.js index 732812a..7ad0872 100644 --- a/src/shared/balances.js +++ b/src/shared/balances.js @@ -123,15 +123,27 @@ async function refreshBalances(wallets, rpcUrl, blockscoutUrl, trackedTokens) { }), ); - // ENS reverse lookup + // ENS reverse lookup — only overwrite on success so that + // transient RPC errors don't wipe a previously resolved name. updates.push( provider .lookupAddress(addr.address) .then((name) => { addr.ensName = name || null; + log.debugf( + "ENS reverse", + addr.address, + "->", + addr.ensName, + ); }) - .catch(() => { - addr.ensName = null; + .catch((e) => { + log.errorf( + "ENS reverse failed", + addr.address, + e.message, + ); + // Keep existing addr.ensName if we had one }), ); diff --git a/src/shared/ens.js b/src/shared/ens.js index 9b06aa6..d0dcc01 100644 --- a/src/shared/ens.js +++ b/src/shared/ens.js @@ -39,7 +39,7 @@ async function resolveEnsName(address, rpcUrl) { return name; } catch (e) { log.errorf("ENS reverse lookup failed", address, e.message); - setCache(address, null); + // Don't cache failures — let subsequent lookups retry return null; } } -- 2.49.1