Browse Source

lnworker.get_invoice_status: test if invoice is expired

dependabot/pip/contrib/deterministic-build/ecdsa-0.13.3
ThomasV 6 years ago
parent
commit
f9a2e7eeb4
  1. 4
      electrum/lnaddr.py
  2. 8
      electrum/lnworker.py

4
electrum/lnaddr.py

@ -272,7 +272,9 @@ class LnAddr(object):
def get_expiry(self): def get_expiry(self):
return int(self.get_tag('x') or '3600') 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): def lndecode(a, verbose=False, expected_hrp=None):
if expected_hrp is None: if expected_hrp is None:

8
electrum/lnworker.py

@ -397,7 +397,13 @@ class LNWallet(LNWorker):
if key not in self.invoices: if key not in self.invoices:
return PR_UNKNOWN return PR_UNKNOWN
invoice, direction, is_paid = self.invoices[key] 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): def get_payments(self):
# return one item per payment_hash # return one item per payment_hash

Loading…
Cancel
Save