aboutsummaryrefslogtreecommitdiffstats
path: root/src/i18n.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-06-24 23:48:53 -0700
committerAdam Soltys <[email protected]>2026-06-24 23:48:53 -0700
commitd4db7d545d51cde2f5a98426c1839e0fe0745efa (patch)
tree455ddf9c4d1ffff97d184ab3d19315d2f2728d6c /src/i18n.js
parentfaceb2eef8abe14302b057d835f0449bcd06bc59 (diff)
downloadcoinosv3-d4db7d545d51cde2f5a98426c1839e0fe0745efa.tar.gz
coinosv3-d4db7d545d51cde2f5a98426c1839e0fe0745efa.zip
Detect stuck low-fee txs and stop actively monitoring them
A pending tx is judged 'stuck' once it has waited ~10 blocks (≈100 min) and its fee rate (fee/vsize) is below the mempool's current floor (minimumFee) — i.e. it's been purged and won't confirm without a bump. _txSummary now records vsize and a firstSeen timestamp (persisted in cache) to support this. Stuck txs are dropped from active monitoring: excluded from the watched-address set and from the fast-poll trigger, so they don't hold a socket slot or keep us in the 6s lane. The slow ~25s reconcile still catches one if the floor later drops and it confirms. History flags them (⚠ stuck) and the detail view explains it — pointing outgoing ones at the existing fee bump. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'src/i18n.js')
-rw-r--r--src/i18n.js4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/i18n.js b/src/i18n.js
index d948917..ce0f94d 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -174,6 +174,10 @@ const STR = {
received: 'Received',
sent: 'Sent',
pendingTag: '⏳ pending',
+ stuckTag: '⚠ stuck',
+ stuckNote: 'Fee too low — may not confirm',
+ stuckIncomingNote: '⚠ This payment’s fee is below the current network floor, so it may not confirm. Only the sender can speed it up (bump or re-send).',
+ stuckOutgoingNote: '⚠ This transaction’s fee is below the current network floor, so it may not confirm on its own. Bump the fee below to rebroadcast it at a higher rate.',
liveTag: 'Live',
pollingTag: 'Polling',
awaitingConfirmation: 'awaiting confirmation',