From 083ffdac9bf5d40de3406bc1374faf098dfe6e11 Mon Sep 17 00:00:00 2001 From: Serhii <17529954+serhii-bor@users.noreply.github.com> Date: Fri, 27 Mar 2026 17:58:27 +0200 Subject: [PATCH] add guard Lightning usage with isInitialized check (#3128) --- cw_bitcoin/lib/bitcoin_wallet.dart | 6 ++++-- cw_bitcoin/lib/lightning/lightning_wallet.dart | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index 0616f3400..84758a1cb 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -164,6 +164,8 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { } } + bool get isLightningInitialized => lightningWallet?.isInitialized == true; + @override bool get hasRescan => true; @@ -339,7 +341,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { @override Future fetchBalances() async { final balance = await super.fetchBalances(); - if (lightningWallet == null) { + if (!isLightningInitialized || lightningWallet == null) { return balance; } @@ -358,7 +360,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { @override @action Future subscribeForUpdates() async { - if (lightningWallet != null) { + if (isLightningInitialized && lightningWallet != null) { lightningWallet!.setEventListener( onTransactionEvent: (tx) async { if (transactionHistory.transactions[tx.id]?.isPending != tx.isPending) { diff --git a/cw_bitcoin/lib/lightning/lightning_wallet.dart b/cw_bitcoin/lib/lightning/lightning_wallet.dart index 12a28776b..bfc5647f0 100644 --- a/cw_bitcoin/lib/lightning/lightning_wallet.dart +++ b/cw_bitcoin/lib/lightning/lightning_wallet.dart @@ -41,6 +41,8 @@ class LightningWallet { StreamSubscription? _logSubscription; + bool get isInitialized => _eventStream != null; + void _subscribeToLogStream(File logFile) { _logSubscription = _logStream?.listen((logEntry) { logFile.writeAsStringSync("[${logEntry.level}] ${logEntry.line}\n", mode: FileMode.append);