diff --git a/electrum/gui/qt/channels_list.py b/electrum/gui/qt/channels_list.py index 985245c2f..5f8e678c0 100644 --- a/electrum/gui/qt/channels_list.py +++ b/electrum/gui/qt/channels_list.py @@ -357,8 +357,9 @@ class ChannelsList(MyTreeView): self.parent.wallet.network.start_gossip() nodeid = bh2u(lnworker.lnrater.suggest_peer() or b'') if not nodeid: - remote_nodeid.setText( - "Please wait until the graph is synchronized to 30%.") + remote_nodeid.setText("") + remote_nodeid.setPlaceholderText( + "Please wait until the graph is synchronized to 30%, and then try again.") else: remote_nodeid.setText(nodeid) remote_nodeid.repaint() # macOS hack for #6269 diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py index 863de2c8b..af08f54e5 100644 --- a/electrum/gui/qt/main_window.py +++ b/electrum/gui/qt/main_window.py @@ -74,7 +74,7 @@ from electrum.network import Network, TxBroadcastError, BestEffortRequestFailed, from electrum.exchange_rate import FxThread from electrum.simple_config import SimpleConfig from electrum.logging import Logger -from electrum.lnutil import ln_dummy_address +from electrum.lnutil import ln_dummy_address, extract_nodeid, ConnStringFormatError from electrum.lnaddr import lndecode, LnDecodeException from .exception_window import Exception_Hook @@ -1757,6 +1757,11 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): return make_tx def open_channel(self, connect_str, funding_sat, push_amt): + try: + extract_nodeid(connect_str) + except ConnStringFormatError as e: + self.main_window.show_error(str(e)) + return # use ConfirmTxDialog # we need to know the fee before we broadcast, because the txid is required make_tx = self.mktx_for_open_channel(funding_sat) diff --git a/electrum/lnutil.py b/electrum/lnutil.py index e51a91e73..7a483f4f2 100644 --- a/electrum/lnutil.py +++ b/electrum/lnutil.py @@ -1203,7 +1203,8 @@ def extract_nodeid(connect_contents: str) -> Tuple[bytes, str]: raise ConnStringFormatError(_('At least a hostname must be supplied after the at symbol.')) try: node_id = bfh(nodeid_hex) - assert len(node_id) == 33, len(node_id) + if len(node_id) != 33: + raise Exception() except: raise ConnStringFormatError(_('Invalid node ID, must be 33 bytes and hexadecimal')) return node_id, rest