aboutsummaryrefslogtreecommitdiffstats
path: root/src/ark
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-02 08:32:13 -0700
committerAdam Soltys <[email protected]>2026-09-02 08:32:13 -0700
commitacd6ca748f1fc4b31648fb999e2f9342cbf5c8a1 (patch)
treebd1f3108ecf9cce7bd0bdd1f0ca849925b9404d7 /src/ark
parent21418741adfa8d16c53a20a5cc0d2d78a758ed89 (diff)
downloadcoinosv3-acd6ca748f1fc4b31648fb999e2f9342cbf5c8a1.tar.gz
coinosv3-acd6ca748f1fc4b31648fb999e2f9342cbf5c8a1.zip
The tester with 233 sats gets to spend them: invoice coverage judges the SUM of spendable coins (the single-coin gate silently declined anything over the largest coin, though multi-input pays gather 24), an uncoverable invoice now owns its paste — board the shortfall from Savings, or say what's short — instead of dropping the bolt11 into the address field like a dead click, and chain calls gain a last-resort relay through the registrar (/esplora passthrough, tip cached) for the network that blackholes every public esplora
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MrkLsNScXe9b6BviUSdmMr
Diffstat (limited to 'src/ark')
-rw-r--r--src/ark/manager.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ark/manager.js b/src/ark/manager.js
index e9f79b0..9731dd6 100644
--- a/src/ark/manager.js
+++ b/src/ark/manager.js
@@ -200,7 +200,11 @@ export class ArkManager {
async _esplora(path, init) {
const hosts = (this._esploraHosts ||= [
this.esploraUrl,
- ...(this.network === 'mainnet' ? ['https://blockstream.info/api', 'https://mempool.space/api'] : []),
+ // last resort: our own registrar relays chain calls — the one host a
+ // wallet that can reach coinos at all provably reaches
+ ...(this.network === 'mainnet'
+ ? ['https://blockstream.info/api', 'https://mempool.space/api', 'https://names.coinos.io/esplora']
+ : []),
].filter((h, i, a) => h && a.indexOf(h) === i));
const start = this._esploraIdx || 0;
let lastErr;