2022-02-21 19:11:18 +00:00
|
|
|
import 'package:cake_wallet/entities/fiat_currency.dart';
|
|
|
|
import 'package:cake_wallet/entities/update_haven_rate.dart';
|
2021-12-24 12:37:24 +00:00
|
|
|
import 'package:cw_core/transaction_history.dart';
|
|
|
|
import 'package:cw_core/balance.dart';
|
|
|
|
import 'package:cw_core/transaction_info.dart';
|
2020-09-21 11:50:26 +00:00
|
|
|
import 'package:mobx/mobx.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/check_connection.dart';
|
|
|
|
import 'package:cake_wallet/reactions/on_wallet_sync_status_change.dart';
|
|
|
|
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
|
|
|
|
import 'package:cake_wallet/store/app_store.dart';
|
|
|
|
import 'package:cake_wallet/store/settings_store.dart';
|
|
|
|
import 'package:cake_wallet/core/fiat_conversion_service.dart';
|
2021-12-24 12:37:24 +00:00
|
|
|
import 'package:cw_core/wallet_base.dart';
|
|
|
|
import 'package:cw_core/wallet_type.dart';
|
2021-12-08 11:09:38 +00:00
|
|
|
import 'package:cake_wallet/store/yat/yat_store.dart';
|
2020-09-21 11:50:26 +00:00
|
|
|
|
|
|
|
ReactionDisposer _onCurrentWalletChangeReaction;
|
2020-12-15 16:29:10 +00:00
|
|
|
ReactionDisposer _onCurrentWalletChangeFiatRateUpdateReaction;
|
2022-01-12 13:20:43 +00:00
|
|
|
//ReactionDisposer _onCurrentWalletAddressChangeReaction;
|
2020-09-21 11:50:26 +00:00
|
|
|
|
|
|
|
void startCurrentWalletChangeReaction(AppStore appStore,
|
|
|
|
SettingsStore settingsStore, FiatConversionStore fiatConversionStore) {
|
|
|
|
_onCurrentWalletChangeReaction?.reaction?.dispose();
|
2021-05-07 07:36:38 +00:00
|
|
|
_onCurrentWalletChangeFiatRateUpdateReaction?.reaction?.dispose();
|
2022-01-12 13:20:43 +00:00
|
|
|
//_onCurrentWalletAddressChangeReaction?.reaction?.dispose();
|
2021-12-08 11:09:38 +00:00
|
|
|
|
2022-01-12 13:20:43 +00:00
|
|
|
//_onCurrentWalletAddressChangeReaction = reaction((_) => appStore.wallet.walletAddresses.address,
|
|
|
|
//(String address) async {
|
|
|
|
//if (address == appStore.wallet.walletInfo.yatLastUsedAddress) {
|
|
|
|
// return;
|
|
|
|
//}
|
2021-12-08 11:09:38 +00:00
|
|
|
|
2022-01-12 13:20:43 +00:00
|
|
|
//try {
|
|
|
|
// final yatStore = getIt.get<YatStore>();
|
|
|
|
// await updateEmojiIdAddress(
|
|
|
|
// appStore.wallet.walletInfo.yatEmojiId,
|
|
|
|
// appStore.wallet.walletAddresses.address,
|
|
|
|
// yatStore.apiKey,
|
|
|
|
// appStore.wallet.type
|
|
|
|
// );
|
|
|
|
// appStore.wallet.walletInfo.yatLastUsedAddress = address;
|
|
|
|
// await appStore.wallet.walletInfo.save();
|
|
|
|
//} catch (e) {
|
|
|
|
// print(e.toString());
|
|
|
|
//}
|
|
|
|
//});
|
2020-09-21 11:50:26 +00:00
|
|
|
|
2021-05-07 07:36:38 +00:00
|
|
|
_onCurrentWalletChangeReaction = reaction((_) => appStore.wallet, (WalletBase<
|
|
|
|
Balance, TransactionHistoryBase<TransactionInfo>, TransactionInfo>
|
|
|
|
wallet) async {
|
2020-09-21 11:50:26 +00:00
|
|
|
try {
|
|
|
|
final node = settingsStore.getCurrentNode(wallet.type);
|
|
|
|
startWalletSyncStatusChangeReaction(wallet);
|
|
|
|
startCheckConnectionReaction(wallet, settingsStore);
|
|
|
|
await getIt
|
|
|
|
.get<SharedPreferences>()
|
|
|
|
.setString(PreferencesKey.currentWalletName, wallet.name);
|
|
|
|
await getIt.get<SharedPreferences>().setInt(
|
|
|
|
PreferencesKey.currentWalletType, serializeToInt(wallet.type));
|
|
|
|
await wallet.connectToNode(node: node);
|
2021-01-08 18:10:37 +00:00
|
|
|
|
2022-02-21 19:11:18 +00:00
|
|
|
if (wallet.type == WalletType.haven) {
|
|
|
|
settingsStore.fiatCurrency = FiatCurrency.usd;
|
|
|
|
await updateHavenRate(fiatConversionStore);
|
|
|
|
}
|
|
|
|
|
2021-01-08 18:10:37 +00:00
|
|
|
if (wallet.walletInfo.address?.isEmpty ?? true) {
|
2021-07-13 05:46:34 +00:00
|
|
|
wallet.walletInfo.address = wallet.walletAddresses.address;
|
2021-01-08 18:10:37 +00:00
|
|
|
|
|
|
|
if (wallet.walletInfo.isInBox) {
|
|
|
|
await wallet.walletInfo.save();
|
|
|
|
}
|
|
|
|
}
|
2020-12-15 16:29:10 +00:00
|
|
|
} catch (e) {
|
|
|
|
print(e.toString());
|
|
|
|
}
|
|
|
|
});
|
2020-09-21 11:50:26 +00:00
|
|
|
|
2020-12-15 16:29:10 +00:00
|
|
|
_onCurrentWalletChangeFiatRateUpdateReaction =
|
2021-05-07 07:36:38 +00:00
|
|
|
reaction((_) => appStore.wallet, (WalletBase<Balance,
|
|
|
|
TransactionHistoryBase<TransactionInfo>, TransactionInfo>
|
|
|
|
wallet) async {
|
2020-12-15 16:29:10 +00:00
|
|
|
try {
|
|
|
|
fiatConversionStore.prices[wallet.currency] = 0;
|
2021-01-08 18:10:37 +00:00
|
|
|
fiatConversionStore.prices[wallet.currency] =
|
|
|
|
await FiatConversionService.fetchPrice(
|
|
|
|
wallet.currency, settingsStore.fiatCurrency);
|
2020-09-21 11:50:26 +00:00
|
|
|
} catch (e) {
|
|
|
|
print(e.toString());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|