From c6f6832231cf859231a1c8e7c82210f3ccf9abf0 Mon Sep 17 00:00:00 2001 From: Robert Malikowski Date: Tue, 26 May 2026 20:10:50 +0200 Subject: [PATCH] fix settingsStore.reload --- cw_core/lib/node.dart | 18 ++++++++- lib/store/settings_store.dart | 39 ++++++++++--------- .../restore_from_backup_view_model.dart | 2 +- 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index b3478ed4a..f4307637b 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -155,10 +155,22 @@ class Node { whereArgs: whereArgs.isNotEmpty ? whereArgs : null, orderBy: orderBy, ); - printV("selectList: $list"); return List.generate(list.length, (index) => Node.fromMap(list[index])); } + static Future select(String where, List whereArgs, {String? orderBy}) async { + if(orderBy == null) { + orderBy = selfIdColumn; + } + final list = await db!.query( + tableName, + where: where.isNotEmpty ? where : "1 = 1", + whereArgs: whereArgs.isNotEmpty ? whereArgs : null, + orderBy: orderBy, + ); + return list.isEmpty ? null : Node.fromMap(list.first); + } + static Future> getAll() async { return selectList("isPow = ?", [false]); @@ -192,6 +204,10 @@ class Node { return selectList("isPow = ?", [true]); } + static Future get(int id) async { + return select("id = ?", [id]); + } + int id; late String uriRaw; diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index d13205651..732ca03c9 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -1712,7 +1712,7 @@ abstract class SettingsStoreBase with Store { ); } - Future reload({required Box nodeSource}) async { + Future reload() async { final sharedPreferences = await getIt.getAsync(); fiatCurrency = FiatCurrency.deserialize( @@ -1917,24 +1917,25 @@ abstract class SettingsStoreBase with Store { final zcashNodeId = sharedPreferences.getInt(PreferencesKey.currentZcashNodeIdKey); final decredNodeId = sharedPreferences.getInt(PreferencesKey.currentDecredNodeIdKey); final dogecoinNodeId = sharedPreferences.getInt(PreferencesKey.currentDogecoinNodeIdKey); - final moneroNode = nodeSource.get(nodeId); - final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); - final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); - final havenNode = nodeSource.get(havenNodeId); - final ethereumNode = nodeSource.get(ethereumNodeId); - final polygonNode = nodeSource.get(polygonNodeId); - final baseNode = nodeSource.get(baseNodeId); - final arbitrumNode = nodeSource.get(arbitrumNodeId); - final bscNode = nodeSource.get(bscNodeId); - final bitcoinCashNode = nodeSource.get(bitcoinCashElectrumServerId); - final nanoNode = nodeSource.get(nanoNodeId); - final solanaNode = nodeSource.get(solanaNodeId); - final tronNode = nodeSource.get(tronNodeId); - final wowneroNode = nodeSource.get(wowneroNodeId); - final zanoNode = nodeSource.get(zanoNodeId); - final zcashNode = nodeSource.get(zcashNodeId); - final decredNode = nodeSource.get(decredNodeId); - final dogecoinNode = nodeSource.get(dogecoinNodeId); + final moneroNode = await Node.get(nodeId ?? -1); + final bitcoinElectrumServer = await Node.get(bitcoinElectrumServerId ?? -1); + final litecoinElectrumServer = await Node.get(litecoinElectrumServerId ?? -1); + final havenNode = await Node.get(havenNodeId ?? -1); + final ethereumNode = await Node.get(ethereumNodeId ?? -1); + final polygonNode = await Node.get(polygonNodeId ?? -1); + final baseNode = await Node.get(baseNodeId ?? -1); + final arbitrumNode = await Node.get(arbitrumNodeId ?? -1); + final bscNode = await Node.get(bscNodeId ?? -1); + final bitcoinCashNode = await Node.get(bitcoinCashElectrumServerId ?? -1); + final nanoNode = await Node.get(nanoNodeId ?? -1); + final solanaNode = await Node.get(solanaNodeId ?? -1); + final tronNode = await Node.get(tronNodeId ?? -1); + final wowneroNode = await Node.get(wowneroNodeId ?? -1); + final zanoNode = await Node.get(zanoNodeId ?? -1); + final zcashNode = await Node.get(zcashNodeId ?? -1); + final decredNode = await Node.get(decredNodeId ?? -1); + final dogecoinNode = await Node.get(dogecoinNodeId ?? -1); + if (moneroNode != null) { nodes[WalletType.monero] = moneroNode; diff --git a/lib/view_model/restore_from_backup_view_model.dart b/lib/view_model/restore_from_backup_view_model.dart index a1a273ebd..6a54cf4cc 100644 --- a/lib/view_model/restore_from_backup_view_model.dart +++ b/lib/view_model/restore_from_backup_view_model.dart @@ -62,7 +62,7 @@ abstract class RestoreFromBackupViewModelBase with Store { final store = getIt.get(); ReactionDisposer? reaction; - //await store.settingsStore.reload(nodeSource: getIt.get>()); + await store.settingsStore.reload(); await store.themeStore.loadSavedTheme(isFromBackup: true); reaction = autorun((_) { final wallet = store.wallet;