Browse Source
qt preferences: always show cb for LN/"Create recoverable channels"
This makes it explicit that the option cannot be enabled if so (instead of hiding the checkbox).
patch-4
SomberNight
3 years ago
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
3 changed files with
22 additions and
17 deletions
-
electrum/gui/kivy/uix/dialogs/settings.py
-
electrum/gui/qt/settings_dialog.py
-
electrum/lnworker.py
|
|
@ -136,7 +136,7 @@ class SettingsDialog(Factory.Popup): |
|
|
|
self.wallet = self.app.wallet |
|
|
|
self.use_encryption = self.wallet.has_password() if self.wallet else False |
|
|
|
self.has_pin_code = self.app.has_pin_code() |
|
|
|
self.enable_toggle_use_recoverable_channels = bool(self.wallet.lnworker and self.wallet.lnworker.has_deterministic_node_id()) |
|
|
|
self.enable_toggle_use_recoverable_channels = bool(self.wallet.lnworker and self.wallet.lnworker.can_have_recoverable_channels()) |
|
|
|
|
|
|
|
def get_language_name(self) -> str: |
|
|
|
lang = self.config.get('language') or '' |
|
|
|
|
|
@ -129,15 +129,15 @@ class SettingsDialog(WindowModalDialog): |
|
|
|
# lightning |
|
|
|
lightning_widgets = [] |
|
|
|
|
|
|
|
if self.wallet.lnworker and self.wallet.lnworker.has_deterministic_node_id(): |
|
|
|
help_recov = _(messages.MSG_RECOVERABLE_CHANNELS) |
|
|
|
recov_cb = QCheckBox(_("Create recoverable channels")) |
|
|
|
enable_toggle_use_recoverable_channels = bool(self.wallet.lnworker and self.wallet.lnworker.can_have_recoverable_channels()) |
|
|
|
recov_cb.setEnabled(enable_toggle_use_recoverable_channels) |
|
|
|
recov_cb.setToolTip(messages.to_rtf(help_recov)) |
|
|
|
recov_cb.setChecked(bool(self.config.get('use_recoverable_channels', True))) |
|
|
|
recov_cb.setChecked(bool(self.config.get('use_recoverable_channels', True)) and enable_toggle_use_recoverable_channels) |
|
|
|
def on_recov_checked(x): |
|
|
|
self.config.set_key('use_recoverable_channels', bool(x)) |
|
|
|
recov_cb.stateChanged.connect(on_recov_checked) |
|
|
|
recov_cb.setEnabled(not bool(self.config.get('lightning_listen'))) |
|
|
|
lightning_widgets.append((recov_cb, None)) |
|
|
|
|
|
|
|
help_trampoline = _(messages.MSG_HELP_TRAMPOLINE) |
|
|
|
|
|
@ -650,14 +650,19 @@ class LNWallet(LNWorker): |
|
|
|
# map forwarded htlcs (fw_info=(scid_hex, htlc_id)) to originating peer pubkeys |
|
|
|
self.downstream_htlc_to_upstream_peer_map = {} # type: Dict[Tuple[str, int], bytes] |
|
|
|
|
|
|
|
def has_deterministic_node_id(self): |
|
|
|
def has_deterministic_node_id(self) -> bool: |
|
|
|
return bool(self.db.get('lightning_xprv')) |
|
|
|
|
|
|
|
def has_recoverable_channels(self): |
|
|
|
# TODO: expose use_recoverable_channels in preferences |
|
|
|
return self.has_deterministic_node_id() \ |
|
|
|
and self.config.get('use_recoverable_channels', True) \ |
|
|
|
and not (self.config.get('lightning_listen')) |
|
|
|
def can_have_recoverable_channels(self) -> bool: |
|
|
|
return (self.has_deterministic_node_id() |
|
|
|
and not (self.config.get('lightning_listen'))) |
|
|
|
|
|
|
|
def has_recoverable_channels(self) -> bool: |
|
|
|
"""Whether *future* channels opened by this wallet would be recoverable |
|
|
|
from seed (via putting OP_RETURN outputs into funding txs). |
|
|
|
""" |
|
|
|
return (self.can_have_recoverable_channels() |
|
|
|
and self.config.get('use_recoverable_channels', True)) |
|
|
|
|
|
|
|
@property |
|
|
|
def channels(self) -> Mapping[bytes, Channel]: |
|
|
|