diff --git a/basicswap/js_server.py b/basicswap/js_server.py index e1ced37..b7e6b04 100644 --- a/basicswap/js_server.py +++ b/basicswap/js_server.py @@ -1742,18 +1742,22 @@ def js_modeswitchinfo(self, url_split, post_string, is_json) -> bytes: if has_legacy_funds and legacy_balance_sats > min_viable: rv["show_transfer_option"] = True + rv["require_transfer"] = True rv["legacy_balance_sats"] = legacy_balance_sats rv["legacy_balance"] = ci.format_amount(legacy_balance_sats) rv["message"] = ( - "Funds on legacy addresses - transfer recommended for external wallet compatibility" + "Funds on legacy addresses must be transferred for external wallet compatibility" ) else: rv["show_transfer_option"] = False - rv["legacy_balance_sats"] = 0 - rv["legacy_balance"] = "0" + rv["require_transfer"] = False if has_legacy_funds: + rv["legacy_balance_sats"] = legacy_balance_sats + rv["legacy_balance"] = ci.format_amount(legacy_balance_sats) rv["message"] = "Legacy balance too low to transfer" else: + rv["legacy_balance_sats"] = 0 + rv["legacy_balance"] = "0" rv["message"] = "All funds on native segwit addresses" else: rv["show_transfer_option"] = can_transfer diff --git a/basicswap/static/js/pages/settings-page.js b/basicswap/static/js/pages/settings-page.js index 8c5bd84..b26b289 100644 --- a/basicswap/static/js/pages/settings-page.js +++ b/basicswap/static/js/pages/settings-page.js @@ -148,12 +148,19 @@ hiddenInput.value = submitter.value; form.appendChild(hiddenInput); + let transferValue = null; const transferRadio = document.querySelector('input[name="transfer_choice"]:checked'); + const transferHidden = document.querySelector('input[name="transfer_choice"][type="hidden"]'); if (transferRadio) { + transferValue = transferRadio.value; + } else if (transferHidden) { + transferValue = transferHidden.value; + } + if (transferValue) { const transferInput = document.createElement('input'); transferInput.type = 'hidden'; transferInput.name = `auto_transfer_now_${coinName}`; - transferInput.value = transferRadio.value === 'auto' ? 'true' : 'false'; + transferInput.value = transferValue === 'auto' ? 'true' : 'false'; form.appendChild(transferInput); } @@ -242,33 +249,20 @@ const data = await seedResponse.json(); let transferSection = ''; - if (info.show_transfer_option && info.legacy_balance_sats > 0) { + if (info.require_transfer && info.legacy_balance_sats > 0) { transferSection = ` -
Legacy Address Funds Detected
-- ${info.legacy_balance} ${info.coin} on legacy addresses won't be visible in external Electrum wallet. +
Legacy Funds Transfer Required
++ ${info.legacy_balance} ${info.coin} on legacy addresses will be automatically transferred to a native segwit address. +
+Est. fee: ${info.estimated_fee} ${info.coin}
-- If you skip transfer, legacy funds won't be visible when importing the extended key into external Electrum wallet. +
+ This ensures your funds are recoverable using the extended key backup in external Electrum wallets.
+