diff --git a/electrum/gui/kivy/uix/dialogs/lightning_channels.py b/electrum/gui/kivy/uix/dialogs/lightning_channels.py index 244d8d150..6b812070e 100644 --- a/electrum/gui/kivy/uix/dialogs/lightning_channels.py +++ b/electrum/gui/kivy/uix/dialogs/lightning_channels.py @@ -657,9 +657,8 @@ class LightningChannelsDialog(Factory.Popup): if not self.app.wallet: return lnworker = self.app.wallet.lnworker - channels = list(lnworker.channels.values()) if lnworker else [] - backups = list(lnworker.channel_backups.values()) if lnworker else [] - for i in channels + backups: + channels = lnworker.get_channel_objects().values() if lnworker else [] + for i in channels: item = Factory.LightningChannelItem() item.screen = self item.active = not i.is_closed() diff --git a/electrum/gui/qml/qechannellistmodel.py b/electrum/gui/qml/qechannellistmodel.py index 316469e3c..9fafbf828 100644 --- a/electrum/gui/qml/qechannellistmodel.py +++ b/electrum/gui/qml/qechannellistmodel.py @@ -98,8 +98,11 @@ class QEChannelListModel(QAbstractListModel, QtEventListener): channels = [] - lnchannels = self.wallet.lnworker.channels + lnchannels = self.wallet.lnworker.get_channel_objects() for channel in lnchannels.values(): + if channel.is_backup(): + # not implemented + continue item = self.channel_to_model(channel) channels.append(item) diff --git a/electrum/gui/qt/channels_list.py b/electrum/gui/qt/channels_list.py index d044d64b1..82367a8d4 100644 --- a/electrum/gui/qt/channels_list.py +++ b/electrum/gui/qt/channels_list.py @@ -303,13 +303,13 @@ class ChannelsList(MyTreeView): def do_update_rows(self, wallet): if wallet != self.parent.wallet: return - channels = list(wallet.lnworker.channels.values()) if wallet.lnworker else [] - backups = list(wallet.lnworker.channel_backups.values()) if wallet.lnworker else [] - if wallet.lnworker: - self.update_can_send(wallet.lnworker) self.model().clear() self.update_headers(self.headers) - for chan in channels + backups: + if not wallet.lnworker: + return + self.update_can_send(wallet.lnworker) + channels = wallet.lnworker.get_channel_objects() + for chan in channels.values(): field_map = self.format_fields(chan) items = [QtGui.QStandardItem(field_map[col]) for col in sorted(field_map)] self.set_editability(items) diff --git a/electrum/lnworker.py b/electrum/lnworker.py index cbbf038ee..2427465f4 100644 --- a/electrum/lnworker.py +++ b/electrum/lnworker.py @@ -690,6 +690,11 @@ class LNWallet(LNWorker): with self.lock: return self._channel_backups.copy() + def get_channel_objects(self) -> Mapping[bytes, AbstractChannel]: + r = self.channel_backups + r.update(self.channels) + return r + def get_channel_by_id(self, channel_id: bytes) -> Optional[Channel]: return self._channels.get(channel_id, None)