commit f9a2e7eeb40a18d06acb2d83e7ab29f0c9a16246
parent cac1e872861b8cb0ce9cd9e942e46c42dbe43ee0
Author: ThomasV <thomasv@electrum.org>
Date: Tue, 30 Jul 2019 13:28:01 +0200
lnworker.get_invoice_status: test if invoice is expired
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/electrum/lnaddr.py b/electrum/lnaddr.py
@@ -272,7 +272,9 @@ class LnAddr(object):
def get_expiry(self):
return int(self.get_tag('x') or '3600')
-
+ def is_expired(self):
+ now = time.time()
+ return now > self.get_expiry() + self.date
def lndecode(a, verbose=False, expected_hrp=None):
if expected_hrp is None:
diff --git a/electrum/lnworker.py b/electrum/lnworker.py
@@ -397,7 +397,13 @@ class LNWallet(LNWorker):
if key not in self.invoices:
return PR_UNKNOWN
invoice, direction, is_paid = self.invoices[key]
- return PR_PAID if is_paid else PR_UNPAID
+ lnaddr = lndecode(invoice, expected_hrp=constants.net.SEGWIT_HRP)
+ if is_paid:
+ return PR_PAID
+ elif lnaddr.is_expired():
+ return PR_EXPIRED
+ else:
+ return PR_UNPAID
def get_payments(self):
# return one item per payment_hash