aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-06-27 09:43:07 -0700
committerAdam Soltys <[email protected]>2026-06-27 09:43:07 -0700
commit00bea1dbd226d065cdfaf7b56af4913324888264 (patch)
treedc3ddf98f0f3748053e474b86090322223abefd9 /src
parent33bbdd3c1a2c92e8d39d461f3b198f034283633b (diff)
parentaa7ccfeae4d778ab62decbd58c3ddb3f74268274 (diff)
downloadcoinosv3-00bea1dbd226d065cdfaf7b56af4913324888264.tar.gz
coinosv3-00bea1dbd226d065cdfaf7b56af4913324888264.zip
Merge branch 'master' into boltz-swaps
Diffstat (limited to 'src')
-rw-r--r--src/api.js4
-rw-r--r--src/wallet.js4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/api.js b/src/api.js
index 519ce20..f8bbd8c 100644
--- a/src/api.js
+++ b/src/api.js
@@ -157,6 +157,9 @@ export const COINOS_ELECTRUM = false;
const COINOS_ELECTRUM_URL = 'wss://coinos.io/electrum';
export function getBackend() {
+ // Regtest runs Fulcrum (Electrum over WS) for both data and realtime push —
+ // matches prod and drops the esplora/electrs dependency.
+ if (getNetwork() === 'regtest') return 'electrum';
const m = getDataMode();
if (m === 'electrum') return 'electrum';
if (m === 'coinos' && COINOS_ELECTRUM) return 'electrum';
@@ -194,6 +197,7 @@ export function setElectrumServerConfig({ server, url }) {
// addresses to a public server you didn't pick.
const PUBLIC_ELECTRUM = () => ELECTRUM_PRESETS.filter((x) => x.url).map((x) => x.url);
export function electrumCandidates() {
+ if (getNetwork() === 'regtest') return [getRegtestElectrumWs()]; // local Fulcrum
if (getDataMode() === 'coinos' && COINOS_ELECTRUM) return [COINOS_ELECTRUM_URL, ...PUBLIC_ELECTRUM()];
const cfg = getElectrumServerConfig();
if (cfg.server === 'custom') return cfg.url.trim() ? [cfg.url.trim()] : [];
diff --git a/src/wallet.js b/src/wallet.js
index 94132a6..2f65904 100644
--- a/src/wallet.js
+++ b/src/wallet.js
@@ -1289,8 +1289,8 @@ export class Wallet {
// and balances update with no polling.
wsUrl() {
// Electrum backend: pick the current failover candidate (rotated on failure).
- // Electrum is mainnet-only here; testnet/regtest use esplora + polling.
- if (getBackend() === 'electrum' && this.netName === 'mainnet') {
+ // Mainnet (when cut over to Fulcrum) and regtest (local Fulcrum) use Electrum.
+ if (getBackend() === 'electrum' && (this.netName === 'mainnet' || this.netName === 'regtest')) {
if (!this._wsCandidates || !this._wsCandidates.length) { this._wsCandidates = electrumCandidates(); this._wsCandIdx = 0; }
const list = this._wsCandidates;
return list.length ? list[(this._wsCandIdx || 0) % list.length] : null;