features/wallet/upgrade_pause library

Constants

upgradePauseBlockSeconds → const int
The block spacing the pre-upgrade pause's wait is counted in: 75 s, the target spacing from Blossom until NU7. The blocks the pause waits for are the ones BEFORE an activation, so through NU7 they are all 75 s blocks. Stated limit: an upgrade after NU7 would be preceded by 25 s blocks, and this would read three times long until it is changed.
upgradePauseWindowBlocks → const int
The pause's window in blocks: the core's PROPOSAL_ANCHOR_DRIFT_MAX_BLOCKS, the K the SDK refuses sends within before an activation, surfaced here once (a test pins it to the core's source). A paused state always carries the SDK's blocksLeft; only one the SDK did not produce lacks it, and that reads as this, the longest wait.

Functions

upgradePausedText(WalletLocalizations l10n, int blocksLeft) → String
The sentence ADR-0580 fixes (2026-10-30) for a pause with blocksLeft blocks to go: "The Zcash network upgrades in about N minutes. Sending is paused until then so your payment can't get stuck."
upgradePausedTextFor(WalletLocalizations l10n, Object error) → String?
upgradePausedText when error is the SDK's pause (WalletErrorKind.upgradeImminent), else null: the one test the surfaces that catch an error and show a line (the parked "Send now", the recovery sweep, the reopen) use, so none of them reads the pause as a failure.
upgradePauseMinutes(int blocksLeft) → int
The wait the pre-upgrade send pause (ADR-0580) names, in whole minutes: blocksLeft blocks at upgradePauseBlockSeconds, rounded UP, so the copy never promises sending back sooner than it is, and never "0 minutes" (the SDK's blocksLeft is 1 to 20, so this is 2 to 25).