import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:mobx/mobx.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/view_model/wallet_unlock_view_model.dart'; part 'wallet_unlock_verifiable_view_model.g.dart'; class WalletUnlockVerifiableViewModel = WalletUnlockVerifiableViewModelBase with _$WalletUnlockVerifiableViewModel; abstract class WalletUnlockVerifiableViewModelBase extends WalletUnlockViewModel with Store { WalletUnlockVerifiableViewModelBase( this.appStore, { required this.walletName, required this.walletType}) : password = '', state = InitialExecutionState(); final String walletName; final WalletType walletType; final AppStore appStore; @override @observable String password; @override @observable ExecutionState state; @override @action void setPassword(String password) => this.password = password; @override @action Future unlock() async { try { state = appStore.wallet!.password == password ? ExecutedSuccessfullyState() : FailureState(S.current.invalid_password) ; } catch(e) { state = FailureState('${S.current.invalid_password}\n${e.toString()}'); } } }