lnaddr: add LnAddr.to_debug_json() method
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user