commit 34d5f1b2e3ccd49b293f345ea5e013a6480701c5
parent 12d3877873128fa3872070a3df5be5501e2fd871
Author: ThomasV <thomasv@electrum.org>
Date: Thu, 31 May 2018 14:05:09 +0200
lightning: connect send button
Diffstat:
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/electrum/commands.py b/electrum/commands.py
@@ -774,7 +774,8 @@ class Commands:
@command('wn')
def lnpay(self, invoice):
- self.wallet.lnworker.pay(invoice)
+ f = self.wallet.lnworker.pay(invoice)
+ return f.result()
@command('wn')
def addinvoice(self, requested_amount, message):
diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py
@@ -1648,7 +1648,15 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
def do_preview(self):
self.do_send(preview = True)
+ def pay_lightning_invoice(self, invoice):
+ f = self.wallet.lnworker.pay(invoice)
+ self.do_clear()
+
def do_send(self, preview = False):
+ if self.payto_e.is_lightning:
+ self.pay_lightning_invoice(self.payto_e.lightning_invoice)
+ return
+ #
if run_hook('abort_send', self):
return
outputs, fee_estimator, tx_desc, coins = self.read_send_tab()
@@ -1875,11 +1883,11 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
else:
description = ''
self.payto_e.setFrozen(True)
- self.payto_e.setGreen()
self.payto_e.setText(pubkey)
self.message_e.setText(description)
self.amount_e.setAmount(lnaddr.amount)
#self.amount_e.textEdited.emit("")
+ self.payto_e.is_lightning = True
def pay_to_URI(self, URI):
if not URI:
@@ -1917,6 +1925,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
self.not_enough_funds = False
self.payment_request = None
self.payto_e.is_pr = False
+ self.payto_e.is_lightning = False
for e in [self.payto_e, self.message_e, self.amount_e, self.fiat_send_e,
self.fee_e, self.feerate_e]:
e.setText('')
diff --git a/electrum/gui/qt/paytoedit.py b/electrum/gui/qt/paytoedit.py
@@ -61,6 +61,7 @@ class PayToEdit(CompletionTextEdit, ScanQRTextEdit, Logger):
self.errors = []
self.is_pr = False
self.is_alias = False
+ self.is_lightning = False
self.update_size()
self.payto_address = None
self.previous_payto = ''
@@ -132,6 +133,7 @@ class PayToEdit(CompletionTextEdit, ScanQRTextEdit, Logger):
return
if data.startswith("ln"):
self.win.parse_lightning_invoice(data)
+ self.lightning_invoice = data
return
try:
self.payto_address = self.parse_output(data)
diff --git a/lib/lnworker.py b/lib/lnworker.py
@@ -193,7 +193,7 @@ class LNWorker(PrintError):
def pay(self, invoice):
coro = self._pay_coroutine(invoice)
- return asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop).result()
+ return asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop)
# not aiosafe because we call .result() which will propagate an exception
async def _pay_coroutine(self, invoice):