electrum

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

commit 7951f2ed3b652e12dfaf7f9685d1428a2a9e4deb
parent 7d3eb5d4dbf465b248dd9e77fb6b3ded09fecf5a
Author: SomberNight <somber.night@protonmail.com>
Date:   Wed,  6 May 2020 04:02:59 +0200

lnworker.pay: small clean-up

Diffstat:
Melectrum/gui/qt/main_window.py | 2+-
Melectrum/lnworker.py | 13+++++++------
2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py @@ -1473,7 +1473,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger): def pay_lightning_invoice(self, invoice, amount_sat=None): attempts = LN_NUM_PAYMENT_ATTEMPTS def task(): - self.wallet.lnworker.pay(invoice, amount_sat, attempts) + self.wallet.lnworker.pay(invoice, amount_sat, attempts=attempts) self.do_clear() self.wallet.thread.add(task) self.invoice_list.update() diff --git a/electrum/lnworker.py b/electrum/lnworker.py @@ -801,20 +801,21 @@ class LNWallet(LNWorker): raise Exception(_("open_channel timed out")) return chan, funding_tx - def pay(self, invoice, amount_sat=None, attempts=1): + def pay(self, invoice: str, amount_sat: int = None, *, attempts: int = 1) -> Tuple[bool, List[PaymentAttemptLog]]: """ Can be called from other threads """ - coro = self._pay(invoice, amount_sat, attempts) + coro = self._pay(invoice, amount_sat, attempts=attempts) fut = asyncio.run_coroutine_threadsafe(coro, self.network.asyncio_loop) - success, log = fut.result() + return fut.result() - def get_channel_by_short_id(self, short_channel_id: ShortChannelID) -> Channel: + def get_channel_by_short_id(self, short_channel_id: bytes) -> Optional[Channel]: for chan in self.channels.values(): if chan.short_channel_id == short_channel_id: return chan - async def _pay(self, invoice, amount_sat=None, attempts=1) -> bool: + async def _pay(self, invoice: str, amount_sat: int = None, *, + attempts: int = 1) -> Tuple[bool, List[PaymentAttemptLog]]: lnaddr = self._check_invoice(invoice, amount_sat) payment_hash = lnaddr.paymenthash key = payment_hash.hex() @@ -958,7 +959,7 @@ class LNWallet(LNWorker): return blacklist @staticmethod - def _check_invoice(invoice, amount_sat=None): + def _check_invoice(invoice: str, amount_sat: int = None) -> LnAddr: addr = lndecode(invoice, expected_hrp=constants.net.SEGWIT_HRP) if addr.is_expired(): raise InvoiceError(_("This invoice has expired"))