aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-08-29 08:01:22 -0700
committerAdam Soltys <[email protected]>2026-08-29 08:01:22 -0700
commit71459005bae3f0db0cd9bf25cd2e301ca8d77510 (patch)
tree9acf57784453d8a960a7cc407ec87589805d831a /src
parent8a3a76fae6b0a3b8930306b66ebde586438e379d (diff)
downloadcoinosv3-71459005bae3f0db0cd9bf25cd2e301ca8d77510.tar.gz
coinosv3-71459005bae3f0db0cd9bf25cd2e301ca8d77510.zip
The renewal forecast joins the new style: one terse line — 'Coins renew in ~29 days for 150 sats. Manage' — that yields entirely when the depth advisory is on screen, and the day(s) shrug is gone
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_019WboeoetMF3MTmgT7Ew8yi
Diffstat (limited to 'src')
-rw-r--r--src/features/ark.js15
-rw-r--r--src/i18n.js5
2 files changed, 12 insertions, 8 deletions
diff --git a/src/features/ark.js b/src/features/ark.js
index e0bd147..5811a2d 100644
--- a/src/features/ark.js
+++ b/src/features/ark.js
@@ -2790,8 +2790,10 @@ export function arkFeature(ctx) {
// 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). Free renewals — the
- // normal case now — pass without comment.
- if (ark && ark.state && ark._tipH && !wallet.watchOnly) {
+ // normal case now — pass without comment, and one line under the
+ // balance is enough: the depth advisory outranks this forecast, and
+ // Manage carries the full story either way.
+ if (!depthNotice && ark && ark.state && ark._tipH && !wallet.watchOnly) {
const spend = (ark.state.vtxos || []).filter((v) => v.state === 'spendable' && v.expiryHeight);
if (spend.length) {
const tip = ark._tipH;
@@ -2806,10 +2808,13 @@ export function arkFeature(ctx) {
try { feeSat = ark.refreshFee(batch, simTip); } catch {}
const days = Math.max(1, Math.round(blocksUntil / 144));
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 }),
+ t(blocksUntil <= 0 ? 'arkRenewForecastNow' : 'arkRenewForecast', {
+ when: days === 1 ? t('arkCoinsSpanDay') : t('arkCoinsSpanDays', { n: days }),
fee: fmtAmount(feeSat) + ' ' + unitLabel(),
- })));
+ }),
+ ' ',
+ h('button', { class: 'linklike small', onClick: () => { ui.arkCoinsPage = true; render(); } },
+ t('arkDepthBtn'))));
}
}
return out;
diff --git a/src/i18n.js b/src/i18n.js
index 3bb1cf1..e19d3bd 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -544,9 +544,8 @@ const STR = {
giftSourceArk: 'Spending',
giftArkNote: 'Sent from Spending — the link claims instantly, with no fee.',
arkRenewWarn: 'Your Spending balance ({amount}) is too small to renew itself and will expire around {date}. Receiving any amount — or spending it — keeps it alive.',
- arkRenewForecast: 'Coins renew automatically {when} · fee: {fee}',
- arkRenewInDays: 'in ~{n} day(s)',
- arkRenewNow: 'at the next opportunity',
+ arkRenewForecast: 'Coins renew in ~{when} for {fee}.',
+ arkRenewForecastNow: 'Coins renew shortly for {fee}.',
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)',