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]:
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user