features/wallet/wallet_screen library

Classes

WalletScreen
The wallet surface (spec §3.3): a live, honest sync indicator + balance. Rendering layer ONLY — every value comes from the Rust core via walletSnapshotProvider (cold) and syncStatusProvider (live); nothing is stored here (design invariant 1).

Properties

balanceCaptionNow ↔ DateTime Function()
The clock balanceCaptionTime reads "today" from. A test pins it, so a run that crosses midnight cannot turn "today" into "yesterday" mid-test.
getter/setter pair

Functions

balanceAsOf({required SyncStatus status, required WalletSyncedTip latch, required SyncStamp? lastSynced}) → ({int? height, DateTime? time})
What the Balance header's "(as of block N)" shows (the as-of height belongs IN the header, never a floating row). Pure so the height/time PAIRING rule is unit-testable: the timestamp renders ONLY when it belongs to the displayed height — pairing the live tip with an older stamp's clock time would lie about when that tip landed.
balanceCaptionTime(DateTime t, String locale) → String
The balance caption's time (S12, "Balance · 11:38 PM"): the time alone when it is today, date and time otherwise.
walletSyncBarVisible({required SyncStatus status, required bool stale, required bool driving, required bool startFailed, required bool syncDisabled, required TransportTone transportTone, required bool hostDeclaredTransport, bool followingTip = false}) → bool
Whether the wallet tab shows its sync bar (FR-49 S12, C2). HIDDEN only when every one of these holds, so nothing a user must know hides with it: