diff options
| author | Adam Soltys <[email protected]> | 2026-06-28 04:47:12 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-28 04:47:12 -0700 |
| commit | ad71e8e879b51d4af12e74d108515d9d4d64598b (patch) | |
| tree | 44e25d6ffa034415ffaa8a16a9383357f894c672 | |
| parent | 98b216605604c3fea85936a54b07344ddc7a08a6 (diff) | |
| download | coinosv3-ad71e8e879b51d4af12e74d108515d9d4d64598b.tar.gz coinosv3-ad71e8e879b51d4af12e74d108515d9d4d64598b.zip | |
Show full URLs in the source lists; SP indexer → tweaks.coinos.io
- Data-source and SP-indexer dropdowns now show the endpoint URL alongside the
name (e.g. 'coinos — wss://electrum.coinos.io'), so it's clear where data comes
from; 'Custom' stays bare.
- The tweak indexer is now served at https://tweaks.coinos.io (was halwallet.app/
sp): a cloudflared route on the bitcoin tunnel → the indexer at :8888, with a
DNS CNAME. Verified from a browser: /height, /mempool (1064 items), and /ws all
work (the coinos.io Bot Fight Mode challenges non-browser clients only).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
| -rw-r--r-- | src/api.js | 2 | ||||
| -rw-r--r-- | src/app.js | 4 |
2 files changed, 3 insertions, 3 deletions
@@ -144,7 +144,7 @@ function nk(base, net) { return net === 'mainnet' ? base : `${base}:${net}`; } // outputs, so self-hosting is the privacy-max option. Per network; an empty URL // means SP receiving is unavailable on that network. const SP_INDEXER_PRESETS_BY_NET = { - mainnet: [{ id: 'coinos', label: 'coinos', url: 'https://halwallet.app/sp' }, { id: 'custom', label: 'Custom', url: '' }], + mainnet: [{ id: 'coinos', label: 'coinos', url: 'https://tweaks.coinos.io' }, { id: 'custom', label: 'Custom', url: '' }], testnet: [{ id: 'custom', label: 'Custom', url: '' }], mutinynet: [{ id: 'custom', label: 'Custom', url: '' }], regtest: [{ id: 'local', label: 'Local (localhost:8888)', url: 'http://localhost:8888' }, { id: 'custom', label: 'Custom', url: '' }], @@ -1629,7 +1629,7 @@ function explorerCard() { h('h3', {}, t('dataSource')), h('p', { class: 'small muted', style: 'margin:0' }, t('dataSourceDesc')), h('select', { onChange: (e) => pick(e.target.value) }, - sources.map((o) => h('option', { value: o.id, selected: o.id === src.id }, o.label))), + sources.map((o) => h('option', { value: o.id, selected: o.id === src.id }, o.id === 'custom' ? o.label : `${o.label} — ${o.url || o.base}`))), src.id === 'custom' ? h('label', { class: 'field' }, h('span', { class: 'lab' }, t('sourceUrl')), @@ -2319,7 +2319,7 @@ function spIndexerCard() { h('h3', {}, t('spIndexerTitle')), h('p', { class: 'small muted', style: 'margin:0' }, t('spIndexerDesc')), h('select', { onChange: (e) => { setSpIndexerConfig({ server: e.target.value, url: cfg.url }, net); render(); } }, - spIndexerPresets(net).map((o) => h('option', { value: o.id, selected: o.id === cfg.server }, o.label))), + spIndexerPresets(net).map((o) => h('option', { value: o.id, selected: o.id === cfg.server }, o.id === 'custom' ? o.label : `${o.label} — ${o.url}`))), cfg.server === 'custom' ? h('label', { class: 'field' }, h('span', { class: 'lab' }, t('spIndexerUrl')), |
