mirror of
https://code.gri.mw/GUI/grim.git
synced 2026-07-12 01:38:54 +00:00
d5d1212a44
The fiat subline now fetches the CURRENT rate over Tor only while the balance is actually on screen, and never paints a stale number as if it were live. No disk cache, no background timer: an idle or payment- listening wallet never polls (battery). - price.rs: in-session rate held for a 3-minute freshness window; viewing a stale/missing rate kicks a live refetch. New RateState (Fresh/Loading/ Unavailable) replaces the Option<f64>; failures are tracked so the line says "unavailable" instead of spinning or showing an old value. Removed the disk seed and the persisted-rate write. - config.rs: dropped the dead last_rate/last_rate_vs/last_rate_at fields and their read/write paths. Old configs still load (serde ignores the unknown keys); the fields are simply not written back. - lib.rs: dropped the cold-start seed_from_disk call. - GUI: balance hero fiat line renders a subtle "≈ …" while loading and a localized "rate unavailable" on failure, requesting a bounded repaint while a fetch is pending so the rate pops in on-screen. Pay/send amount preview shows nothing until a fresh rate lands. - New goblin.home.fiat_unavailable string across all six locales. - Tests: freshness-window bounds, is_fresh boundary, classify state machine (fresh/loading/unavailable), and config compat for the removed fields.