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

@@ -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):