diff --git a/electrum/lnaddr.py b/electrum/lnaddr.py index 995c46baf..731e22cf7 100644 --- 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 index aad2dea02..a3bf448b8 100644 --- 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