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; } }