Browse Source

raise PaymentFailure in case of timeout (follow-up previous commit)

dependabot/pip/contrib/deterministic-build/ecdsa-0.13.3
ThomasV 6 years ago
parent
commit
50479086b5
  1. 1
      electrum/gui/qt/main_window.py
  2. 7
      electrum/lnworker.py

1
electrum/gui/qt/main_window.py

@ -1687,7 +1687,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
elif isinstance(e, InvoiceError):
self.show_error(_('InvoiceError: {}').format(e))
else:
self.show_error(_('Error: {}').format(e))
raise e
def task():
success = self.wallet.lnworker.pay(invoice, attempts=LN_NUM_PAYMENT_ATTEMPTS, amount_sat=amount, timeout=30)

7
electrum/lnworker.py

@ -14,6 +14,7 @@ import json
from datetime import datetime, timezone
from functools import partial
from collections import defaultdict
import concurrent
import dns.resolver
import dns.exception
@ -660,7 +661,11 @@ class LNWallet(LNWorker):
fut = asyncio.run_coroutine_threadsafe(
self._pay(invoice, attempts, amount_sat),
self.network.asyncio_loop)
return fut.result(timeout=timeout)
try:
return fut.result(timeout=timeout)
except concurrent.futures.TimeoutError:
raise PaymentFailure(_("Payment timed out"))
def get_channel_by_short_id(self, short_channel_id):
with self.lock:

Loading…
Cancel
Save