From 8008239b74ad7849f100fbd5324883525f5a514b Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 27 Aug 2026 12:14:25 -0700 Subject: Silence is the normal price: the renewal forecast only speaks when a fee is actually coming — free renewals pass without comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi --- src/features/ark.js | 9 +++++---- src/i18n.js | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/features/ark.js b/src/features/ark.js index 77a6f5f..6b0a95b 100644 --- a/src/features/ark.js +++ b/src/features/ark.js @@ -2344,9 +2344,10 @@ export function arkFeature(ctx) { amount: fmtAmount(arkRenewWarn.sat) + ' ' + unitLabel(), date: new Date(arkRenewWarn.deadlineMs).toLocaleDateString(), }))); - // The next automatic renewal — date and price — stated before it + // An upcoming renewal that will COST something — stated before it // happens. Ark is new to nearly everyone, and a fee nobody announced - // reads as money gone missing (it did, once). Usually it says "free". + // reads as money gone missing (it did, once). Free renewals — the + // normal case now — pass without comment. if (ark && ark.state && ark._tipH && !wallet.watchOnly) { const spend = (ark.state.vtxos || []).filter((v) => v.state === 'spendable' && v.expiryHeight); if (spend.length) { @@ -2361,10 +2362,10 @@ export function arkFeature(ctx) { let feeSat = 0; try { feeSat = ark.refreshFee(batch, simTip); } catch {} const days = Math.max(1, Math.round(blocksUntil / 144)); - out.push(h('div', { class: 'small faint', style: 'margin:10px 0 0;text-align:center' }, + if (feeSat > 0) out.push(h('div', { class: 'small faint', style: 'margin:10px 0 0;text-align:center' }, t('arkRenewForecast', { when: blocksUntil <= 0 ? t('arkRenewNow') : t('arkRenewInDays', { n: days }), - fee: feeSat > 0 ? fmtAmount(feeSat) + ' ' + unitLabel() : t('feeFree'), + fee: fmtAmount(feeSat) + ' ' + unitLabel(), }))); } } diff --git a/src/i18n.js b/src/i18n.js index 532c45f..c08facd 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -512,7 +512,6 @@ const STR = { arkRenewForecast: 'Coins renew automatically {when} · fee: {fee}', arkRenewInDays: 'in ~{n} day(s)', arkRenewNow: 'at the next opportunity', - feeFree: 'free', arkBoardStuck: 'Moving money hit a snag and will keep retrying: {error}', arkRenewWarnPush: 'Your Spending balance is too small to renew itself and expires around {date}. Receive any amount or spend it to keep it alive.', giftArkOutstanding: '{n} unclaimed instant gift(s)', -- cgit v1.2.3