diff options
| author | Adam Soltys <[email protected]> | 2026-06-29 15:23:45 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-06-29 15:23:45 -0700 |
| commit | 87fcb80de91f539891cc2d635b0013d07826dd60 (patch) | |
| tree | e625299c475b3c6eee09bb6259aa8caadabf4a08 | |
| parent | 5bd04cb7a6b0e581325d9acc6757a98760645710 (diff) | |
| download | coinosv3-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]>
| -rw-r--r-- | src/swap.js | 5 |
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; |
