From e6035849f9b88bdd8cd665b868bbe121fa77e538 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sun, 27 Sep 2026 15:07:30 -0700 Subject: Copy: no more em dashes, anywhere people read. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every English string, the translations, the README and the messages the code shows people now break with a full stop, a colon or a comma instead. Only console logs and the "—" placeholder for an empty cell keep the dash. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D --- src/ark/manager.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/ark/manager.js') diff --git a/src/ark/manager.js b/src/ark/manager.js index c103806..d097a44 100644 --- a/src/ark/manager.js +++ b/src/ark/manager.js @@ -675,7 +675,7 @@ export class ArkManager { if (!inputs.length) throw new Error('no spendable ark balance'); if (inputs.some((v) => !v || v.state !== 'spendable')) throw new Error('vtxo not spendable'); if (this.info.maxOffboardInputs && inputs.length > this.info.maxOffboardInputs) { - throw new Error(`too many coins for one offboard (${inputs.length}) — refresh/consolidate first`); + throw new Error(`too many coins for one offboard (${inputs.length}), refresh/consolidate first`); } const tip = await this.chain.tipHeight(); const satVkb = await getOffboardFeeRate(this.arkUrl); @@ -781,7 +781,7 @@ export class ArkManager { if (!candidates.length) { const total = this.balance().spendableSat; throw new Error(total >= amountSat - ? 'no single vtxo covers this amount — consolidate with refresh() first' + ? 'no single vtxo covers this amount, consolidate with refresh() first' : 'insufficient ark balance'); } return candidates[0]; @@ -1168,7 +1168,7 @@ export class ArkManager { this._tipH = Math.max(this._tipH || 0, serverTip); this._tipAt = Date.now(); this._save(); - throw new Error('chain tip was stale — retrying with the corrected expiry'); + throw new Error('chain tip was stale, retrying with the corrected expiry'); } // INVALID_ARGUMENT (status 3): the server rejected the package outright // — nothing was spent, everything returns to spendable. "already @@ -1330,7 +1330,7 @@ export class ArkManager { action.error = action.error || 'payment failed'; this._movement({ type: 'ln-send', amountSat: action.amountSat, status: 'failed', - detail: 'payment failed — funds returned', invoice: action.invoice, + detail: 'payment failed, funds returned', invoice: action.invoice, }); this._save(); } @@ -1557,7 +1557,7 @@ export class ArkManager { const minExpiry = Math.min(...decoded.map((v) => v.policy.htlcExpiry)); if (tip > minExpiry - this._expiryMargin()) { action.step = 'failed'; - action.error = 'HTLCs near expiry — abandoned before preimage reveal'; + action.error = 'HTLCs near expiry, abandoned before preimage reveal'; this._movement({ type: 'ln-receive', amountSat: action.amountSat, status: 'failed', detail: action.error }); this._save(); return; @@ -2204,7 +2204,7 @@ export class ArkManager { // (the operator recipe) — omitted, they come from the status response. async rescueParticipation(unlockHashHex, inputVtxoIds) { if (this.state.actions.some((a) => a.unlockHash === unlockHashHex && a.step !== 'failed')) { - throw new Error('an action for this participation already exists — sync drives it'); + throw new Error('an action for this participation already exists, sync drives it'); } // One of ours, waiting on a scheduled height: it has its inputs and key // index already, so promote rather than rediscover them. -- cgit v1.2.3