From 87fcb80de91f539891cc2d635b0013d07826dd60 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 29 Jun 2026 15:23:45 -0700 Subject: Swaps: fix lockup address mismatch on mutinynet (missing NETS entry) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- src/swap.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') 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; -- cgit v1.2.3