diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py index 7793a034f..1f8348227 100644 --- a/electrum/gui/kivy/main_window.py +++ b/electrum/gui/kivy/main_window.py @@ -19,6 +19,7 @@ from electrum.util import (profiler, InvalidPassword, send_exception_to_crash_re PR_PAID, PR_FAILED, maybe_extract_bolt11_invoice) from electrum import blockchain from electrum.network import Network, TxBroadcastError, BestEffortRequestFailed +from electrum.interface import PREFERRED_NETWORK_PROTOCOL, ServerAddr from .i18n import _ from kivy.app import App @@ -135,18 +136,19 @@ class ElectrumWindow(App): def choose_server_dialog(self, popup): from .uix.dialogs.choice_dialog import ChoiceDialog - protocol = 's' - def cb2(host): - from electrum import constants - pp = servers.get(host, constants.net.DEFAULT_PORTS) - port = pp.get(protocol, '') - popup.ids.host.text = host - popup.ids.port.text = port + protocol = PREFERRED_NETWORK_PROTOCOL + def cb2(server_str): + popup.ids.server_str.text = server_str servers = self.network.get_servers() - ChoiceDialog(_('Choose a server'), sorted(servers), popup.ids.host.text, cb2).open() + server_choices = {} + for _host, d in sorted(servers.items()): + port = d.get(protocol) + if port: + server = ServerAddr(_host, port, protocol=protocol) + server_choices[server.net_addr_str()] = _host + ChoiceDialog(_('Choose a server'), server_choices, popup.ids.server_str.text, cb2).open() def maybe_switch_to_server(self, server_str: str): - from electrum.interface import ServerAddr net_params = self.network.get_parameters() try: server = ServerAddr.from_str_with_inference(server_str)