import 'dart:async'; import 'package:cake_wallet/core/fiat_conversion_service.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 startFiatRateUpdate(AppStore appStore, SettingsStore settingsStore, FiatConversionStore fiatConversionStore) async { if (_timer != null) { return; } fiatConversionStore.prices[appStore.wallet.currency] = await FiatConversionService.fetchPrice( appStore.wallet.currency, settingsStore.fiatCurrency); _timer = Timer.periodic( Duration(seconds: 30), (_) async { 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); } }); }