electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

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:
Melectrum/lnaddr.py | 4+++-
Melectrum/lnworker.py | 8+++++++-
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