Clearing the Manual rate cleared pricedCurrencyCodes but left rateDisplays stale, so "currency to Sats" kept showing a value computed from the old rate even after "BTC to currency" went empty. refresh()'s early-return path now clears rateDisplays too. oneCurrencyToSats() also now derives from defaultCurrencyRate() directly instead of re-reading rateDisplays independently, so the two rates structurally can't disagree about whether a rate is known, and formats to a whole number of Sats (0 decimals) instead of 2 — fractional Sats aren't a meaningful unit to show. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FXcrACM5sok3M1KQJ8kByy