electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 34d5f1b2e3ccd49b293f345ea5e013a6480701c5
parent 12d3877873128fa3872070a3df5be5501e2fd871
Author: ThomasV <thomasv@electrum.org>
Date:   Thu, 31 May 2018 14:05:09 +0200

lightning: connect send button

Diffstat:
Melectrum/commands.py | 3++-
Melectrum/gui/qt/main_window.py | 11++++++++++-
Melectrum/gui/qt/paytoedit.py | 2++
Mlib/lnworker.py | 2+-
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):