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

This commit is contained in:
ThomasV 2019-05-30 21:46:30 +02:00
parent dbe8b75659
commit 50479086b5
2 changed files with 6 additions and 2 deletions

View file

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

View file

@ -14,6 +14,7 @@ import json
from datetime import datetime, timezone from datetime import datetime, timezone
from functools import partial from functools import partial
from collections import defaultdict from collections import defaultdict
import concurrent
import dns.resolver import dns.resolver
import dns.exception import dns.exception
@ -660,7 +661,11 @@ class LNWallet(LNWorker):
fut = asyncio.run_coroutine_threadsafe( fut = asyncio.run_coroutine_threadsafe(
self._pay(invoice, attempts, amount_sat), self._pay(invoice, attempts, amount_sat),
self.network.asyncio_loop) 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): def get_channel_by_short_id(self, short_channel_id):
with self.lock: with self.lock: