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.
23 lines
724 B
Rust
23 lines
724 B
Rust
// Copyright 2025 The Grim Developers
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
mod client;
|
|
pub use client::*;
|
|
|
|
mod release;
|
|
pub use release::*;
|
|
|
|
pub(crate) mod price;
|
|
pub use price::{RateState, grin_rate};
|