tMerge pull request #5700 from fiatjaf/bugfixopenchannel - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit d480d0b265068ce0cc7a5a279b98e4af85bbc3ee DIR parent b476681af7f884c50997181dc3f714a0a1f507bf HTML Author: ghost43 <somber.night@protonmail.com> Date: Tue, 15 Oct 2019 13:43:17 +0000 Merge pull request #5700 from fiatjaf/bugfixopenchannel fix expected returned peer address values when opening channel. Diffstat: M electrum/channel_db.py | 3 ++- M electrum/lnworker.py | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) --- DIR diff --git a/electrum/channel_db.py b/electrum/channel_db.py t@@ -250,7 +250,8 @@ class ChannelDB(SqlDB): self._channels = {} # type: Dict[bytes, ChannelInfo] self._policies = {} self._nodes = {} - self._addresses = defaultdict(set) + # node_id -> (host, port, ts) + self._addresses = defaultdict(set) # type: Dict[bytes, Set[Tuple[str, int, int]]] self._channels_for_node = defaultdict(set) self.data_loaded = asyncio.Event() self.network = network # only for callback DIR diff --git a/electrum/lnworker.py b/electrum/lnworker.py t@@ -251,7 +251,7 @@ class LNWorker(Logger): return peers @staticmethod - def choose_preferred_address(addr_list: List[Tuple[str, int]]) -> Tuple[str, int]: + def choose_preferred_address(addr_list: Sequence[Tuple[str, int, int]]) -> Tuple[str, int, int]: assert len(addr_list) >= 1 # choose first one that is an IP for host, port, timestamp in addr_list: t@@ -793,9 +793,9 @@ class LNWallet(LNWorker): host, port = split_host_port(rest) else: addrs = self.channel_db.get_node_addresses(node_id) - if len(addrs) == 0: + if not addrs: raise ConnStringFormatError(_('Don\'t know any addresses for node:') + ' ' + bh2u(node_id)) - host, port = self.choose_preferred_address(addrs) + host, port, timestamp = self.choose_preferred_address(addrs) try: socket.getaddrinfo(host, int(port)) except socket.gaierror: