mirror of
https://github.com/basicswap/basicswap.git
synced 2026-04-08 18:37:23 +02:00
Fixed electrum logic (settings).
- Fixed empty arrays to fall back to default servers. - Fixed RPC/Electrum settings logic. - Added option set electrum servers before switch RPC -> Electrum mode. - Fixed "No servers discovered", some servers don't support peer discovery.
This commit is contained in:
@@ -72,6 +72,39 @@
|
||||
connectionTypeSelects.forEach(select => {
|
||||
const originalValue = select.dataset.originalValue || select.value;
|
||||
this.originalConnectionTypes[select.name] = originalValue;
|
||||
|
||||
select.addEventListener('change', (e) => {
|
||||
const coinName = select.name.replace('connection_type_', '');
|
||||
const electrumSection = document.getElementById(`electrum-section-${coinName}`);
|
||||
const fundTransferSection = document.getElementById(`fund-transfer-section-${coinName}`);
|
||||
const originalValue = this.originalConnectionTypes[select.name];
|
||||
|
||||
if (e.target.value === 'electrum') {
|
||||
if (electrumSection) {
|
||||
electrumSection.classList.remove('hidden');
|
||||
|
||||
const clearnetTextarea = document.getElementById(`electrum_clearnet_${coinName}`);
|
||||
const onionTextarea = document.getElementById(`electrum_onion_${coinName}`);
|
||||
|
||||
if (clearnetTextarea && !clearnetTextarea.value.trim()) {
|
||||
clearnetTextarea.value = electrumSection.dataset.defaultClearnet || '';
|
||||
}
|
||||
if (onionTextarea && !onionTextarea.value.trim()) {
|
||||
onionTextarea.value = electrumSection.dataset.defaultOnion || '';
|
||||
}
|
||||
}
|
||||
if (fundTransferSection) {
|
||||
fundTransferSection.classList.add('hidden');
|
||||
}
|
||||
} else {
|
||||
if (electrumSection) {
|
||||
electrumSection.classList.add('hidden');
|
||||
}
|
||||
if (fundTransferSection && originalValue === 'electrum') {
|
||||
fundTransferSection.classList.remove('hidden');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
this.setupWalletModeModal();
|
||||
@@ -561,7 +594,8 @@
|
||||
}
|
||||
|
||||
if (!data.clearnet_servers?.length && !data.onion_servers?.length) {
|
||||
html = '<div class="text-sm text-gray-500 dark:text-gray-400 py-4 text-center">No servers discovered. The connected server may not support peer discovery.</div>';
|
||||
const serverName = data.current_server ? `${data.current_server.host}:${data.current_server.port}` : 'The connected server';
|
||||
html = `<div class="text-sm text-gray-500 dark:text-gray-400 py-4 text-center">No servers discovered. <span class="font-mono">${serverName}</span> does not return peer lists.</div>`;
|
||||
} else {
|
||||
html += `<div class="text-xs text-gray-500 dark:text-gray-400 pt-3 border-t border-gray-200 dark:border-gray-600">Click a server to add it to your list</div>`;
|
||||
}
|
||||
|
||||
@@ -204,8 +204,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if c.connection_type == 'electrum' %}
|
||||
<div class="mb-6">
|
||||
{% if c.supports_electrum %}
|
||||
<div id="electrum-section-{{ c.name }}" class="mb-6 {% if c.connection_type != 'electrum' %}hidden{% endif %}"
|
||||
data-default-clearnet="{{ c.clearnet_servers_text }}"
|
||||
data-default-onion="{{ c.onion_servers_text }}">
|
||||
<h4 class="text-sm font-medium text-gray-900 dark:text-white mb-4">
|
||||
Electrum Servers
|
||||
</h4>
|
||||
@@ -213,7 +215,7 @@
|
||||
<div class="mb-6">
|
||||
<h5 class="text-xs font-medium text-gray-600 dark:text-gray-400 mb-3">Clearnet</h5>
|
||||
<div class="bg-gray-50 dark:bg-gray-700 rounded-lg p-4">
|
||||
<textarea class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none dark:bg-gray-700 dark:text-white border border-gray-300 dark:border-gray-600 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-1 focus:outline-none font-mono" name="electrum_clearnet_{{ c.name }}" id="electrum_clearnet_{{ c.name }}" rows="3" placeholder="electrum.blockstream.info:50002 electrum.emzy.de:50002">{{ c.clearnet_servers_text }}</textarea>
|
||||
<textarea class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none dark:bg-gray-700 dark:text-white border border-gray-300 dark:border-gray-600 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-1 focus:outline-none font-mono" name="electrum_clearnet_{{ c.name }}" id="electrum_clearnet_{{ c.name }}" rows="3" placeholder="electrum.blockstream.info:50002 electrum.emzy.de:50002">{% if c.connection_type == 'electrum' %}{{ c.clearnet_servers_text }}{% endif %}</textarea>
|
||||
<p class="text-xs text-gray-500 dark:text-gray-400 mt-1">One per line. Format: host:port (50002=SSL, 50001=non-SSL)</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -221,7 +223,7 @@
|
||||
<div class="mb-4 pt-2">
|
||||
<h5 class="text-xs font-medium text-gray-600 dark:text-gray-400 mb-3">TOR (.onion)</h5>
|
||||
<div class="bg-gray-50 dark:bg-gray-700 rounded-lg p-4">
|
||||
<textarea class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none dark:bg-gray-700 dark:text-white border border-gray-300 dark:border-gray-600 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-1 focus:outline-none font-mono text-xs" name="electrum_onion_{{ c.name }}" id="electrum_onion_{{ c.name }}" rows="3" placeholder="explorerzyd...onion:110 lksvbmwwi2b...onion:50001">{{ c.onion_servers_text }}</textarea>
|
||||
<textarea class="hover:border-blue-500 bg-gray-50 text-gray-900 appearance-none dark:bg-gray-700 dark:text-white border border-gray-300 dark:border-gray-600 dark:placeholder-gray-400 text-sm rounded-lg outline-none focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 focus:ring-1 focus:outline-none font-mono text-xs" name="electrum_onion_{{ c.name }}" id="electrum_onion_{{ c.name }}" rows="3" placeholder="explorerzyd...onion:110 lksvbmwwi2b...onion:50001">{% if c.connection_type == 'electrum' %}{{ c.onion_servers_text }}{% endif %}</textarea>
|
||||
<p class="text-xs text-gray-500 dark:text-gray-400 mt-1">One per line. Used when TOR is enabled.</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -253,8 +255,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="mb-6">
|
||||
|
||||
<div id="fund-transfer-section-{{ c.name }}" class="mb-6 hidden">
|
||||
<h4 class="text-sm font-medium text-gray-900 dark:text-white mb-4">
|
||||
Fund Transfer
|
||||
</h4>
|
||||
|
||||
@@ -266,10 +266,10 @@ def page_settings(self, url_split, post_string):
|
||||
clearnet_servers = c.get("electrum_clearnet_servers", None)
|
||||
onion_servers = c.get("electrum_onion_servers", None)
|
||||
|
||||
if clearnet_servers is None:
|
||||
if not clearnet_servers:
|
||||
default_clearnet = DEFAULT_ELECTRUM_SERVERS.get(name, [])
|
||||
clearnet_servers = [f"{s['host']}:{s['port']}" for s in default_clearnet]
|
||||
if onion_servers is None:
|
||||
if not onion_servers:
|
||||
default_onion = DEFAULT_ONION_SERVERS.get(name, [])
|
||||
onion_servers = [f"{s['host']}:{s['port']}" for s in default_onion]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user