commit 50479086b5b6c0bd3ebe9e597bcd37fbb6d97372
parent dbe8b756595778ed5fb1ee251ac24e28b02e5e1e
Author: ThomasV <thomasv@electrum.org>
Date: Thu, 30 May 2019 21:46:30 +0200
raise PaymentFailure in case of timeout (follow-up previous commit)
Diffstat:
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/electrum/gui/qt/main_window.py b/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)
diff --git a/electrum/lnworker.py b/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: