tlightning: connect send button - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 34d5f1b2e3ccd49b293f345ea5e013a6480701c5 DIR parent 12d3877873128fa3872070a3df5be5501e2fd871 HTML Author: ThomasV <thomasv@electrum.org> Date: Thu, 31 May 2018 14:05:09 +0200 lightning: connect send button Diffstat: M electrum/commands.py | 3 ++- M electrum/gui/qt/main_window.py | 11 ++++++++++- M electrum/gui/qt/paytoedit.py | 2 ++ M lib/lnworker.py | 2 +- 4 files changed, 15 insertions(+), 3 deletions(-) --- DIR diff --git a/electrum/commands.py b/electrum/commands.py t@@ -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): DIR diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py t@@ -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() t@@ -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: t@@ -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('') DIR diff --git a/electrum/gui/qt/paytoedit.py b/electrum/gui/qt/paytoedit.py t@@ -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 = '' t@@ -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) DIR diff --git a/lib/lnworker.py b/lib/lnworker.py t@@ -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):