Browse Source

lnaddr: add LnAddr.to_debug_json() method

master
SomberNight 3 years ago
parent
commit
e2ee79c378
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 12
      electrum/invoices.py
  2. 21
      electrum/lnaddr.py

12
electrum/invoices.py

@ -290,17 +290,7 @@ class Invoice(BaseInvoice):
def to_debug_json(self) -> Dict[str, Any]:
d = self.to_json()
d.update({
'pubkey': self._lnaddr.pubkey.serialize().hex(),
'amount_BTC': str(self._lnaddr.amount),
'rhash': self._lnaddr.paymenthash.hex(),
'description': self._lnaddr.get_description(),
'exp': self._lnaddr.get_expiry(),
'time': self._lnaddr.date,
})
if ln_routing_info := self._lnaddr.get_routing_info('r'):
# show the last hop of routing hints. (our invoices only have one hop)
d['r_tags'] = [str((a.hex(),b.hex(),c,d,e)) for a,b,c,d,e in ln_routing_info[-1]]
d["lnaddr"] = self._lnaddr.to_debug_json()
return d

21
electrum/lnaddr.py

@ -6,7 +6,7 @@ import time
from hashlib import sha256
from binascii import hexlify
from decimal import Decimal
from typing import Optional, TYPE_CHECKING, Type
from typing import Optional, TYPE_CHECKING, Type, Dict, Any
import random
import bitstring
@ -354,6 +354,25 @@ class LnAddr(object):
# we treat it as 0 seconds here (instead of never)
return now > self.get_expiry() + self.date
def to_debug_json(self) -> Dict[str, Any]:
d = {
'pubkey': self.pubkey.serialize().hex(),
'amount_BTC': str(self.amount),
'rhash': self.paymenthash.hex(),
'payment_secret': self.payment_secret.hex() if self.payment_secret else None,
'description': self.get_description(),
'exp': self.get_expiry(),
'time': self.date,
'min_final_cltv_expiry': self.get_min_final_cltv_expiry(),
'features': self.get_features().get_names(),
'tags': self.tags,
'unknown_tags': self.unknown_tags,
}
if ln_routing_info := self.get_routing_info('r'):
# show the last hop of routing hints. (our invoices only have one hop)
d['r_tags'] = [str((a.hex(),b.hex(),c,d,e)) for a,b,c,d,e in ln_routing_info[-1]]
return d
class SerializableKey:
def __init__(self, pubkey):

Loading…
Cancel
Save