[REFACTOR] grpcio and protofbuf for lndgrpc is not optional (#1886)

also removed dead code def get_ssl_context

black
This commit is contained in:
dni ⚡ 2023-09-11 15:24:37 +02:00 committed by GitHub
parent 576e20d0cd
commit 8f0c1f6a80
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4,8 +4,13 @@ import hashlib
from os import environ from os import environ
from typing import AsyncGenerator, Dict, Optional from typing import AsyncGenerator, Dict, Optional
import grpc
from loguru import logger from loguru import logger
import lnbits.wallets.lnd_grpc_files.lightning_pb2 as ln
import lnbits.wallets.lnd_grpc_files.lightning_pb2_grpc as lnrpc
import lnbits.wallets.lnd_grpc_files.router_pb2 as router
import lnbits.wallets.lnd_grpc_files.router_pb2_grpc as routerrpc
from lnbits.settings import settings from lnbits.settings import settings
from .base import ( from .base import (
@ -17,52 +22,6 @@ from .base import (
) )
from .macaroon import AESCipher, load_macaroon from .macaroon import AESCipher, load_macaroon
imports_ok = True
try:
import grpc
from grpc import RpcError
except ImportError: # pragma: nocover
imports_ok = False
if imports_ok:
import lnbits.wallets.lnd_grpc_files.lightning_pb2 as ln
import lnbits.wallets.lnd_grpc_files.lightning_pb2_grpc as lnrpc
import lnbits.wallets.lnd_grpc_files.router_pb2 as router
import lnbits.wallets.lnd_grpc_files.router_pb2_grpc as routerrpc
def get_ssl_context(cert_path: str):
import ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLS)
context.options |= ssl.OP_NO_SSLv2
context.options |= ssl.OP_NO_SSLv3
context.options |= ssl.OP_NO_TLSv1
context.options |= ssl.OP_NO_TLSv1_1
context.options |= ssl.OP_NO_COMPRESSION
context.set_ciphers(
":".join(
[
"ECDHE+AESGCM",
"ECDHE+CHACHA20",
"DHE+AESGCM",
"DHE+CHACHA20",
"ECDH+AESGCM",
"DH+AESGCM",
"ECDH+AES",
"DH+AES",
"RSA+AESGCM",
"RSA+AES",
"!aNULL",
"!eNULL",
"!MD5",
"!DSS",
]
)
)
context.load_verify_locations(capath=cert_path)
return context
def b64_to_bytes(checking_id: str) -> bytes: def b64_to_bytes(checking_id: str) -> bytes:
return base64.b64decode(checking_id.replace("_", "/")) return base64.b64decode(checking_id.replace("_", "/"))
@ -98,12 +57,6 @@ environ["GRPC_SSL_CIPHER_SUITES"] = "HIGH+ECDSA"
class LndWallet(Wallet): class LndWallet(Wallet):
def __init__(self): def __init__(self):
if not imports_ok: # pragma: nocover
raise ImportError(
"The `grpcio` and `protobuf` library must be installed to use `GRPC"
" LndWallet`. Alternatively try using the LndRESTWallet."
)
endpoint = settings.lnd_grpc_endpoint endpoint = settings.lnd_grpc_endpoint
macaroon = ( macaroon = (
@ -242,7 +195,7 @@ class LndWallet(Wallet):
return PaymentStatus(None) return PaymentStatus(None)
try: try:
resp = await self.rpc.LookupInvoice(ln.PaymentHash(r_hash=r_hash)) resp = await self.rpc.LookupInvoice(ln.PaymentHash(r_hash=r_hash))
except RpcError: except grpc.RpcError:
return PaymentStatus(None) return PaymentStatus(None)
if resp.settled: if resp.settled:
return PaymentStatus(True) return PaymentStatus(True)