handling on wallet change case

This commit is contained in:
Serhii 2024-05-03 16:39:27 +03:00
parent 415c39a924
commit 9bb03bf9ec
5 changed files with 28 additions and 15 deletions

View file

@ -2,17 +2,17 @@ import 'dart:async';
import 'package:cake_wallet/core/fiat_conversion_service.dart';
import 'package:cake_wallet/entities/fiat_api_mode.dart';
import 'package:cake_wallet/entities/transaction_description.dart';
import 'package:cake_wallet/store/app_store.dart';
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cw_core/wallet_base.dart';
import 'package:hive/hive.dart';
Future<void> historicalRateUpdate(
AppStore appStore,
WalletBase wallet,
SettingsStore settingsStore,
FiatConversionStore fiatConversionStore,
Box<TransactionDescription> transactionDescription) async {
final transactions = appStore.wallet!.transactionHistory.transactions.values.toList();
final transactions = wallet.transactionHistory.transactions.values.toList();
const int batchSize = 10;
const Duration delayBetweenBatches = Duration(milliseconds: 2);
@ -40,7 +40,7 @@ Future<void> historicalRateUpdate(
!description.historicalRates.containsKey(fiatName)) {
try {
final result = await FiatConversionService.fetchHistoricalPrice(
crypto: appStore.wallet!.currency,
crypto: wallet.currency,
fiat: settingsStore.fiatCurrency,
torOnly: settingsStore.fiatApiMode == FiatApiMode.torOnly,
date: tx.date);

View file

@ -28,7 +28,7 @@ void startCurrentFiatApiModeChangeReaction(AppStore appStore, SettingsStore sett
if (settingsStore.showHistoricalFiatAmount) {
await historicalRateUpdate(
appStore, settingsStore, fiatConversionStore, transactionDescription);
appStore.wallet!, settingsStore, fiatConversionStore, transactionDescription);
}
});
}
@ -43,6 +43,6 @@ void startHistoricalRateUpdateReaction(AppStore appStore, SettingsStore settings
}
await historicalRateUpdate(
appStore, settingsStore, fiatConversionStore, transactionDescription);
appStore.wallet!, settingsStore, fiatConversionStore, transactionDescription);
});
}

View file

@ -30,7 +30,7 @@ void startCurrentFiatChangeReaction(AppStore appStore, SettingsStore settingsSto
if (settingsStore.showHistoricalFiatAmount) {
await historicalRateUpdate(
appStore, settingsStore, fiatConversionStore, transactionDescription);
appStore.wallet!, settingsStore, fiatConversionStore, transactionDescription);
}

View file

@ -68,7 +68,7 @@ void startCurrentWalletChangeReaction(
final node = settingsStore.getCurrentNode(wallet.type);
startWalletSyncStatusChangeReaction(wallet, fiatConversionStore);
startWalletSyncStatusChangeReaction(wallet, fiatConversionStore, settingsStore, transactionDescription);
startCheckConnectionReaction(wallet, settingsStore);
await getIt.get<SharedPreferences>().setString(PreferencesKey.currentWalletName, wallet.name);
await getIt
@ -112,7 +112,7 @@ void startCurrentWalletChangeReaction(
if (settingsStore.showHistoricalFiatAmount) {
await historicalRateUpdate(
appStore, settingsStore, fiatConversionStore, transactionDescription);
appStore.wallet!, settingsStore, fiatConversionStore, transactionDescription);
}
fiatConversionStore.prices[wallet.currency] = 0;

View file

@ -1,6 +1,10 @@
import 'package:cake_wallet/entities/fiat_api_mode.dart';
import 'package:cake_wallet/entities/transaction_description.dart';
import 'package:cake_wallet/entities/update_haven_rate.dart';
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
import 'package:cw_core/transaction_history.dart';
import 'package:cw_core/wallet_base.dart';
@ -9,15 +13,17 @@ import 'package:cw_core/transaction_info.dart';
import 'package:cw_core/sync_status.dart';
import 'package:wakelock_plus/wakelock_plus.dart';
import 'fiat_historical_rate_update.dart';
ReactionDisposer? _onWalletSyncStatusChangeReaction;
void startWalletSyncStatusChangeReaction(
WalletBase<Balance, TransactionHistoryBase<TransactionInfo>,
TransactionInfo> wallet,
FiatConversionStore fiatConversionStore) {
WalletBase<Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo> wallet,
FiatConversionStore fiatConversionStore,
SettingsStore settingsStore,
Box<TransactionDescription> transactionDescription) {
_onWalletSyncStatusChangeReaction?.reaction.dispose();
_onWalletSyncStatusChangeReaction =
reaction((_) => wallet.syncStatus, (SyncStatus status) async {
_onWalletSyncStatusChangeReaction = reaction((_) => wallet.syncStatus, (SyncStatus status) async {
try {
if (status is ConnectedSyncStatus) {
await wallet.startSync();
@ -31,8 +37,15 @@ void startWalletSyncStatusChangeReaction(
}
if (status is SyncedSyncStatus || status is FailedSyncStatus) {
await WakelockPlus.disable();
if (settingsStore.fiatApiMode != FiatApiMode.disabled) {
if (settingsStore.showHistoricalFiatAmount) {
await historicalRateUpdate(
wallet, settingsStore, fiatConversionStore, transactionDescription);
}
}
}
} catch(e) {
} catch (e) {
print(e.toString());
}
});