diff options
| author | Adam Soltys <[email protected]> | 2026-06-23 23:29:51 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-23 23:29:51 -0700 |
| commit | ecdc460769fc6daad66df23604ceee6456b29061 (patch) | |
| tree | 61f60e5774a3a9cd5db5ac3539f5e866a9908916 /src/app.js | |
| parent | 06e48290ca5e6da7866715cc26c4e3fdf3e03b91 (diff) | |
| download | coinosv3-ecdc460769fc6daad66df23604ceee6456b29061.tar.gz coinosv3-ecdc460769fc6daad66df23604ceee6456b29061.zip | |
Debit balance optimistically on pending send; pointer cursor on summaries
- Headline balance now shows wallet.total (confirmed + mempool) instead
of confirmed, so a pending outgoing spend is debited immediately rather
than waiting for confirmation. The chain_stats-based confirmed balance
counts a coin as yours until the spend is mined, which is why it didn't
drop after broadcasting (incl. scanned-tx broadcasts). Incoming pending
is still surfaced by the "+X pending" line.
- summary { cursor: pointer } so the "Show QR" disclosure (and any other
<summary>) shows the hand cursor.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'src/app.js')
| -rw-r--r-- | src/app.js | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -757,7 +757,9 @@ function balanceCard() { 'div', { class: 'card balance' }, h('div', { class: 'small faint', style: 'text-transform:uppercase;letter-spacing:.05em' }, t('balance')), - h('div', { class: 'amt', style: firstLoad ? 'opacity:.3' : '' }, fmtAmount(wallet.confirmed), ' ', unitTag('unit')), + // Headline is the projected balance (confirmed + mempool), so a pending + // spend is debited immediately rather than waiting for confirmation. + h('div', { class: 'amt', style: firstLoad ? 'opacity:.3' : '' }, fmtAmount(wallet.total), ' ', unitTag('unit')), wallet.pending > 0 ? h( 'div', |
