1
0

lnaddr: add LnAddr.to_debug_json() method

This commit is contained in:
SomberNight
2023-06-16 17:08:41 +00:00
parent a3b0e97c88
commit e2ee79c378
2 changed files with 21 additions and 12 deletions

View File

@@ -290,17 +290,7 @@ class Invoice(BaseInvoice):
def to_debug_json(self) -> Dict[str, Any]: def to_debug_json(self) -> Dict[str, Any]:
d = self.to_json() d = self.to_json()
d.update({ d["lnaddr"] = self._lnaddr.to_debug_json()
'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]]
return d return d

View File

@@ -6,7 +6,7 @@ import time
from hashlib import sha256 from hashlib import sha256
from binascii import hexlify from binascii import hexlify
from decimal import Decimal from decimal import Decimal
from typing import Optional, TYPE_CHECKING, Type from typing import Optional, TYPE_CHECKING, Type, Dict, Any
import random import random
import bitstring import bitstring
@@ -354,6 +354,25 @@ class LnAddr(object):
# we treat it as 0 seconds here (instead of never) # we treat it as 0 seconds here (instead of never)
return now > self.get_expiry() + self.date 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: class SerializableKey:
def __init__(self, pubkey): def __init__(self, pubkey):