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);