add remove_lightning command
This commit is contained in:
@@ -628,6 +628,11 @@ class Commands:
|
||||
wallet.init_lightning()
|
||||
return "Lightning keys have been created."
|
||||
|
||||
@command('w')
|
||||
async def remove_lightning(self, wallet: Abstract_Wallet = None):
|
||||
"""Disable lightning payments"""
|
||||
wallet.remove_lightning()
|
||||
|
||||
@command('w')
|
||||
async def lightning_history(self, show_fiat=False, wallet: Abstract_Wallet = None):
|
||||
""" lightning history """
|
||||
|
||||
@@ -2390,6 +2390,15 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
||||
if d.exec_():
|
||||
self.set_contact(line2.text(), line1.text())
|
||||
|
||||
def disable_lightning(self):
|
||||
warning = _('This will delete your lightning private keys')
|
||||
r = self.question(_('Disable Lightning payments?') + '\n\n' + warning)
|
||||
if not r:
|
||||
return
|
||||
self.wallet.remove_lightning()
|
||||
self.show_warning(_('Lightning keys have been removed. This wallet will be closed'))
|
||||
self.close()
|
||||
|
||||
def enable_lightning(self):
|
||||
warning1 = _("Lightning support in Electrum is experimental. Do not put large amounts in lightning channels.")
|
||||
warning2 = _("Funds stored in lightning channels are not recoverable from your seed. You must backup your wallet file everytime you crate a new channel.")
|
||||
@@ -2397,7 +2406,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
||||
if not r:
|
||||
return
|
||||
self.wallet.init_lightning()
|
||||
self.show_warning(_('Lightning keys have been initialized. Please restart Electrum'))
|
||||
self.show_warning(_('Lightning keys have been initialized. This wallet will be closed'))
|
||||
self.close()
|
||||
|
||||
def show_wallet_info(self):
|
||||
dialog = WindowModalDialog(self, _("Wallet Information"))
|
||||
@@ -2425,10 +2435,14 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
||||
grid.addWidget(QLabel(ks_type), 4, 1)
|
||||
# lightning
|
||||
if self.wallet.has_lightning():
|
||||
lightning_b = None
|
||||
lightning_b = QPushButton(_('Disable'))
|
||||
lightning_b.clicked.connect(dialog.close)
|
||||
lightning_b.clicked.connect(self.disable_lightning)
|
||||
lightning_label = QLabel(_('Enabled'))
|
||||
lightning_b.setDisabled(bool(self.wallet.lnworker.channels))
|
||||
else:
|
||||
lightning_b = QPushButton(_('Enable'))
|
||||
lightning_b.clicked.connect(dialog.close)
|
||||
lightning_b.clicked.connect(self.enable_lightning)
|
||||
lightning_label = QLabel(_('Disabled'))
|
||||
grid.addWidget(QLabel(_('Lightning')), 5, 0)
|
||||
|
||||
@@ -260,6 +260,15 @@ class Abstract_Wallet(AddressSynchronizer):
|
||||
node = BIP32Node.from_rootseed(seed, xtype='standard')
|
||||
ln_xprv = node.to_xprv()
|
||||
self.storage.put('lightning_privkey2', ln_xprv)
|
||||
self.storage.write()
|
||||
|
||||
def remove_lightning(self):
|
||||
if not self.storage.get('lightning_privkey2'):
|
||||
return
|
||||
if bool(self.lnworker.channels):
|
||||
raise Exception('Error: This wallet has channels')
|
||||
self.storage.put('lightning_privkey2', None)
|
||||
self.storage.write()
|
||||
|
||||
def stop_threads(self):
|
||||
super().stop_threads()
|
||||
|
||||
Reference in New Issue
Block a user