mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-03-11 17:06:34 +00:00
handling on wallet change case
This commit is contained in:
parent
415c39a924
commit
9bb03bf9ec
5 changed files with 28 additions and 15 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ void startCurrentFiatChangeReaction(AppStore appStore, SettingsStore settingsSto
|
|||
|
||||
if (settingsStore.showHistoricalFiatAmount) {
|
||||
await historicalRateUpdate(
|
||||
appStore, settingsStore, fiatConversionStore, transactionDescription);
|
||||
appStore.wallet!, settingsStore, fiatConversionStore, transactionDescription);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue