mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-26 07:31:22 +01:00
* feat: nwc funding source * implement paid_invoices_stream, fix for unsettled invoices where settled_at is present but None * cancel pending_payments_lookup_task on cleanup * Rename subscription_timeout_task to timeout_task * ensure preimage is not None * Improve readability, return failed status on expiration in get_payment_status, ensure result_type is checked after error (some implementations might not set a result_type on error) * fetch account info when possible * workaround possible race condition on some nwc service providers, improve performance of fallback by using payment_hash from bolt11 invoice * fundle * make format * fix formatting * fix C901 `_on_message` is too complex (21 > 16) * format * fix lint * format * fix tests/wallets/test_nwc_wallets.py:80:11: C901 `run` is too complex (17 > 16) * fix padding * fix documentation for _verify_event method * refactoring and fixes * Split NWCWallet - NWCConnection * refactor class methods into helpers * update bundle * format * catch NWCError failure codes * format and fix * chore: bundle * add example * typos --------- Co-authored-by: Riccardo Balbo <riccardo0blb@gmail.com> Co-authored-by: benarc <ben@arc.wales> Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib
|
|
from typing import Optional
|
|
|
|
from lnbits.nodes import set_node_class
|
|
from lnbits.settings import settings
|
|
from lnbits.wallets.base import Wallet
|
|
|
|
from .alby import AlbyWallet
|
|
from .blink import BlinkWallet
|
|
from .breez import BreezSdkWallet
|
|
from .cliche import ClicheWallet
|
|
from .corelightning import CoreLightningWallet
|
|
|
|
# The following import is intentional to keep backwards compatibility
|
|
# for old configs that called it CLightningWallet. Do not remove.
|
|
from .corelightning import CoreLightningWallet as CLightningWallet
|
|
from .corelightningrest import CoreLightningRestWallet
|
|
from .eclair import EclairWallet
|
|
from .fake import FakeWallet
|
|
from .lnbits import LNbitsWallet
|
|
from .lndgrpc import LndWallet
|
|
from .lndrest import LndRestWallet
|
|
from .lnpay import LNPayWallet
|
|
from .lntips import LnTipsWallet
|
|
from .nwc import NWCWallet
|
|
from .opennode import OpenNodeWallet
|
|
from .phoenixd import PhoenixdWallet
|
|
from .spark import SparkWallet
|
|
from .void import VoidWallet
|
|
from .zbd import ZBDWallet
|
|
|
|
|
|
def set_funding_source(class_name: Optional[str] = None):
|
|
backend_wallet_class = class_name or settings.lnbits_backend_wallet_class
|
|
funding_source_constructor = getattr(wallets_module, backend_wallet_class)
|
|
global funding_source
|
|
funding_source = funding_source_constructor()
|
|
if funding_source.__node_cls__:
|
|
set_node_class(funding_source.__node_cls__(funding_source))
|
|
|
|
|
|
def get_funding_source() -> Wallet:
|
|
return funding_source
|
|
|
|
|
|
wallets_module = importlib.import_module("lnbits.wallets")
|
|
fake_wallet = FakeWallet()
|
|
|
|
# initialize as fake wallet
|
|
funding_source: Wallet = fake_wallet
|