aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-06-29 15:23:45 -0700
committerAdam Soltys <[email protected]>2026-06-29 15:23:45 -0700
commit87fcb80de91f539891cc2d635b0013d07826dd60 (patch)
treee625299c475b3c6eee09bb6259aa8caadabf4a08 /src
parent5bd04cb7a6b0e581325d9acc6757a98760645710 (diff)
downloadcoinosv3-87fcb80de91f539891cc2d635b0013d07826dd60.tar.gz
coinosv3-87fcb80de91f539891cc2d635b0013d07826dd60.zip
Swaps: fix lockup address mismatch on mutinynet (missing NETS entry)
swapP2TR resolves the network via netFor(name) → NETS[name] || btc.NETWORK, but NETS had no mutinynet entry, so it fell back to MAINNET — Hal computed a bc1p… swap address while Boltz (bitcoinSignet) returns tb1p…, tripping 'lockup address mismatch — not paying'. Add mutinynet: btc.TEST_NETWORK (signet/testnet params, matching the wallet's own netCfg). Verified: swapP2TR now derives tb1p… for mutinynet (was bc1p…). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/swap.js5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/swap.js b/src/swap.js
index 8bc4183..2627068 100644
--- a/src/swap.js
+++ b/src/swap.js
@@ -22,7 +22,10 @@ export { hexToBytes, bytesToHex };
// Regtest network object (same version bytes as testnet, `bcrt` HRP).
export const REGTEST = { ...btc.TEST_NETWORK, bech32: 'bcrt' };
-const NETS = { mainnet: btc.NETWORK, testnet: btc.TEST_NETWORK, regtest: REGTEST };
+// mutinynet is a signet — same address params as testnet (tb1…), matching Boltz's
+// bitcoinSignet. Without this entry netFor() falls back to mainnet and the swap
+// P2TR address is computed wrong → "lockup address mismatch".
+const NETS = { mainnet: btc.NETWORK, testnet: btc.TEST_NETWORK, mutinynet: btc.TEST_NETWORK, regtest: REGTEST };
export const netFor = (name) => NETS[name] || btc.NETWORK;
const TAP_LEAF_VERSION = 0xc0;