refactor __init__ functions of Wallets (funding sources)
- better error messages when a conf variable is not provided - unify approaches among different source files
This commit is contained in:
+20
-17
@@ -27,8 +27,10 @@ class LndRestWallet(Wallet):
|
||||
__node_cls__ = LndRestNode
|
||||
|
||||
def __init__(self):
|
||||
endpoint = settings.lnd_rest_endpoint
|
||||
cert = settings.lnd_rest_cert
|
||||
if not settings.lnd_rest_endpoint:
|
||||
raise ValueError(
|
||||
"cannot initialize LndRestWallet: missing lnd_rest_endpoint"
|
||||
)
|
||||
|
||||
macaroon = (
|
||||
settings.lnd_rest_macaroon
|
||||
@@ -37,43 +39,44 @@ class LndRestWallet(Wallet):
|
||||
or settings.lnd_invoice_macaroon
|
||||
or settings.lnd_rest_invoice_macaroon
|
||||
)
|
||||
|
||||
encrypted_macaroon = settings.lnd_rest_macaroon_encrypted
|
||||
if encrypted_macaroon:
|
||||
macaroon = AESCipher(description="macaroon decryption").decrypt(
|
||||
encrypted_macaroon
|
||||
)
|
||||
|
||||
if not endpoint:
|
||||
raise Exception("cannot initialize lndrest: no endpoint")
|
||||
|
||||
if not macaroon:
|
||||
raise Exception("cannot initialize lndrest: no macaroon")
|
||||
|
||||
if not cert:
|
||||
logger.warning(
|
||||
"no certificate for lndrest provided, this only works if you have a"
|
||||
" publicly issued certificate"
|
||||
raise ValueError(
|
||||
"cannot initialize LndRestWallet: "
|
||||
"missing lnd_rest_macaroon or lnd_admin_macaroon or "
|
||||
"lnd_rest_admin_macaroon or lnd_invoice_macaroon or "
|
||||
"lnd_rest_invoice_macaroon or lnd_rest_macaroon_encrypted"
|
||||
)
|
||||
|
||||
if not settings.lnd_rest_cert:
|
||||
logger.warning(
|
||||
"No certificate for LndRestWallet provided! "
|
||||
"This only works if you have a publicly issued certificate."
|
||||
)
|
||||
|
||||
endpoint = settings.lnd_rest_endpoint
|
||||
endpoint = endpoint[:-1] if endpoint.endswith("/") else endpoint
|
||||
endpoint = (
|
||||
f"https://{endpoint}" if not endpoint.startswith("http") else endpoint
|
||||
)
|
||||
self.endpoint = endpoint
|
||||
self.macaroon = load_macaroon(macaroon)
|
||||
|
||||
# if no cert provided it should be public so we set verify to True
|
||||
# and it will still check for validity of certificate and fail if its not valid
|
||||
# even on startup
|
||||
self.cert = cert or True
|
||||
cert = settings.lnd_rest_cert or True
|
||||
|
||||
macaroon = load_macaroon(macaroon)
|
||||
headers = {
|
||||
"Grpc-Metadata-macaroon": self.macaroon,
|
||||
"Grpc-Metadata-macaroon": macaroon,
|
||||
"User-Agent": settings.user_agent,
|
||||
}
|
||||
self.client = httpx.AsyncClient(
|
||||
base_url=self.endpoint, headers=headers, verify=self.cert
|
||||
base_url=self.endpoint, headers=headers, verify=cert
|
||||
)
|
||||
|
||||
async def cleanup(self):
|
||||
|
||||
Reference in New Issue
Block a user