mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-17 05:41:29 +02:00
* feat: Add support for automatic node switching. This change: - Adds isTrustedNodeForSwitching property to Node class. - Adds UI Checkbox to mark a node as trusted for automatic switching in Node create or edit form. - Implements checkNodeHealth method in wallet classes to verify node connectivity. - Adds NodeSwitchingService for managing automatic node switching based on health checks. - Adds setting option for user to enable/disable automated node switching * fix(automatic-node-switch): Set node health check interval to 5 minutes in NodeSwitchingService * refactor: Update handler method * feat: Automatic Node Switching Improvements This change: - Moves enable automatic node switch to the Manage Nodes Page - Adds check to verify node health before attempting to sync in EVM, Sol and Tron Wallets. - Modifies trusted ndoes list for monero - Adds trigger for Node Health Check when app resumes from background * fix: Increase default request timeout for Tron and update health check interval for node switch * feat: Enhance Node health check functionality. This change adds additional checks for token balance in EVM, Solana and Tron Wallets in checkNodeHealth. * fix: Update health check interval to 30 seconds in NodeSwitchingService * Update bitcoin_electrum_server_list.yml * fix: Electru wallet not connecting to new node after switching * fix: Automated Node Switch not working on Decred Wallet * fix: Add more nodes for AutoSwitching This change: - Enables more nodes across wallet types for auto switching - Modifies CTA for checkbox - Renames flags to fit * fix: Add migration function for setting up default nodes for autoswitching * fix: Review and testing fixes * chore: Adjust balance and history fetch timer
46 lines
2.1 KiB
Dart
46 lines
2.1 KiB
Dart
import 'dart:async';
|
|
import 'package:cake_wallet/reactions/fiat_rate_update.dart';
|
|
import 'package:cake_wallet/reactions/on_current_fiat_api_mode_change.dart';
|
|
import 'package:cake_wallet/reactions/on_current_node_change.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'package:cake_wallet/di.dart';
|
|
import 'package:cake_wallet/entities/preferences_key.dart';
|
|
import 'package:cake_wallet/reactions/on_authentication_state_change.dart';
|
|
import 'package:cake_wallet/reactions/on_current_fiat_change.dart';
|
|
import 'package:cake_wallet/reactions/on_current_wallet_change.dart';
|
|
import 'package:cake_wallet/store/app_store.dart';
|
|
import 'package:cake_wallet/store/settings_store.dart';
|
|
import 'package:cake_wallet/store/authentication_store.dart';
|
|
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
|
|
import 'package:cake_wallet/core/node_switching_service.dart';
|
|
|
|
Future<void> bootstrapOffline() async {
|
|
final authenticationStore = getIt.get<AuthenticationStore>();
|
|
|
|
final currentWalletName =
|
|
getIt.get<SharedPreferences>().getString(PreferencesKey.currentWalletName);
|
|
if (currentWalletName != null) {
|
|
authenticationStore.installed();
|
|
}
|
|
}
|
|
|
|
void bootstrapOnline(GlobalKey<NavigatorState> navigatorKey, {required bool loadWallet}) {
|
|
final appStore = getIt.get<AppStore>();
|
|
final authenticationStore = getIt.get<AuthenticationStore>();
|
|
final settingsStore = getIt.get<SettingsStore>();
|
|
final fiatConversionStore = getIt.get<FiatConversionStore>();
|
|
|
|
if (loadWallet) {
|
|
startAuthenticationStateChange(authenticationStore, navigatorKey);
|
|
}
|
|
|
|
startCurrentWalletChangeReaction(appStore, settingsStore, fiatConversionStore);
|
|
startCurrentFiatChangeReaction(appStore, settingsStore, fiatConversionStore);
|
|
startCurrentFiatApiModeChangeReaction(appStore, settingsStore, fiatConversionStore);
|
|
startOnCurrentNodeChangeReaction(appStore);
|
|
startFiatRateUpdate(appStore, settingsStore, fiatConversionStore);
|
|
|
|
getIt.get<NodeSwitchingService>().startHealthCheckTimer();
|
|
} |