add guard Lightning usage with isInitialized check (#3128)

Serhii committed Mar 27, 2026 at 17:58 UTC 083ffdac9bf5d40de3406bc1374faf098dfe6e11
2 files changed +6 -2
cw_bitcoin/lib/bitcoin_wallet.dart
+4 -2
@@ -164,6 +164,8 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
164 }
165 }
166
167 + bool get isLightningInitialized => lightningWallet?.isInitialized == true;
168 +
169 @override
170 bool get hasRescan => true;
171
@@ -339,7 +341,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
341 @override
342 Future<ElectrumBalance> fetchBalances() async {
343 final balance = await super.fetchBalances();
342 - if (lightningWallet == null) {
344 + if (!isLightningInitialized || lightningWallet == null) {
345 return balance;
346 }
347
@@ -358,7 +360,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
360 @override
361 @action
362 Future<void> subscribeForUpdates() async {
361 - if (lightningWallet != null) {
363 + if (isLightningInitialized && lightningWallet != null) {
364 lightningWallet!.setEventListener(
365 onTransactionEvent: (tx) async {
366 if (transactionHistory.transactions[tx.id]?.isPending != tx.isPending) {
cw_bitcoin/lib/lightning/lightning_wallet.dart
+2
@@ -41,6 +41,8 @@ class LightningWallet {
41
42 StreamSubscription<LogEntry>? _logSubscription;
43
44 + bool get isInitialized => _eventStream != null;
45 +
46 void _subscribeToLogStream(File logFile) {
47 _logSubscription = _logStream?.listen((logEntry) {
48 logFile.writeAsStringSync("[${logEntry.level}] ${logEntry.line}\n", mode: FileMode.append);