mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-11-01 01:47:41 +00:00
ce19be56a0
- Revert removing fiat rate update and use it to update fiat rate periodically if Fiat API is not disabled
40 lines
1.4 KiB
Dart
40 lines
1.4 KiB
Dart
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/update_haven_rate.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_type.dart';
|
|
|
|
Timer? _timer;
|
|
|
|
Future<void> startFiatRateUpdate(
|
|
AppStore appStore, SettingsStore settingsStore, FiatConversionStore fiatConversionStore) async {
|
|
if (_timer != null) {
|
|
return;
|
|
}
|
|
|
|
if (appStore.wallet != null && settingsStore.fiatApiMode == FiatApiMode.enabled) {
|
|
fiatConversionStore.prices[appStore.wallet!.currency] = await FiatConversionService.fetchPrice(
|
|
appStore.wallet!.currency, settingsStore.fiatCurrency);
|
|
}
|
|
|
|
_timer = Timer.periodic(Duration(seconds: 30), (_) async {
|
|
if (settingsStore.fiatApiMode == FiatApiMode.disabled) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
if (appStore.wallet!.type == WalletType.haven) {
|
|
await updateHavenRate(fiatConversionStore);
|
|
} else {
|
|
fiatConversionStore.prices[appStore.wallet!.currency] =
|
|
await FiatConversionService.fetchPrice(
|
|
appStore.wallet!.currency, settingsStore.fiatCurrency);
|
|
}
|
|
} catch (e) {
|
|
print(e);
|
|
}
|
|
});
|
|
}
|