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 => {
|
connectionTypeSelects.forEach(select => {
|
||||||
const originalValue = select.dataset.originalValue || select.value;
|
const originalValue = select.dataset.originalValue || select.value;
|
||||||
this.originalConnectionTypes[select.name] = originalValue;
|
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();
|
this.setupWalletModeModal();
|
||||||
@@ -561,7 +594,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!data.clearnet_servers?.length && !data.onion_servers?.length) {
|
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 {
|
} 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>`;
|
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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if c.connection_type == 'electrum' %}
|
{% if c.supports_electrum %}
|
||||||
<div class="mb-6">
|
<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">
|
<h4 class="text-sm font-medium text-gray-900 dark:text-white mb-4">
|
||||||
Electrum Servers
|
Electrum Servers
|
||||||
</h4>
|
</h4>
|
||||||
@@ -213,7 +215,7 @@
|
|||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<h5 class="text-xs font-medium text-gray-600 dark:text-gray-400 mb-3">Clearnet</h5>
|
<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">
|
<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>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
@@ -221,7 +223,7 @@
|
|||||||
<div class="mb-4 pt-2">
|
<div class="mb-4 pt-2">
|
||||||
<h5 class="text-xs font-medium text-gray-600 dark:text-gray-400 mb-3">TOR (.onion)</h5>
|
<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">
|
<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>
|
<p class="text-xs text-gray-500 dark:text-gray-400 mt-1">One per line. Used when TOR is enabled.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -253,8 +255,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</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">
|
<h4 class="text-sm font-medium text-gray-900 dark:text-white mb-4">
|
||||||
Fund Transfer
|
Fund Transfer
|
||||||
</h4>
|
</h4>
|
||||||
|
|||||||
@@ -266,10 +266,10 @@ def page_settings(self, url_split, post_string):
|
|||||||
clearnet_servers = c.get("electrum_clearnet_servers", None)
|
clearnet_servers = c.get("electrum_clearnet_servers", None)
|
||||||
onion_servers = c.get("electrum_onion_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, [])
|
default_clearnet = DEFAULT_ELECTRUM_SERVERS.get(name, [])
|
||||||
clearnet_servers = [f"{s['host']}:{s['port']}" for s in default_clearnet]
|
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, [])
|
default_onion = DEFAULT_ONION_SERVERS.get(name, [])
|
||||||
onion_servers = [f"{s['host']}:{s['port']}" for s in default_onion]
|
onion_servers = [f"{s['host']}:{s['port']}" for s in default_onion]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user