public async Task <object> ChangePassword(string oldPassword, string newPassword) { if (CurrentWallet == null) { return(Error(ErrorCode.WalletNotOpen)); } if (CurrentWallet.ChangePassword(oldPassword, newPassword)) { if (CurrentWallet is NEP6Wallet wallet) { wallet.Save(); } return(true); } return(false); }
private void OnChangePasswordCommand() { if (NoWallet()) { return; } string oldPassword = ReadUserInput("password", true); if (oldPassword.Length == 0) { Console.WriteLine("Cancelled"); return; } if (!CurrentWallet.VerifyPassword(oldPassword)) { Console.WriteLine("Incorrect password"); return; } string newPassword = ReadUserInput("New password", true); string newPasswordReEntered = ReadUserInput("Re-Enter Password", true); if (!newPassword.Equals(newPasswordReEntered)) { Console.WriteLine("Two passwords entered are inconsistent!"); return; } if (CurrentWallet is NEP6Wallet wallet) { string backupFile = wallet.Path + ".bak"; if (!File.Exists(wallet.Path) || File.Exists(backupFile)) { Console.WriteLine("Wallet backup fail"); return; } try { File.Copy(wallet.Path, backupFile); } catch (IOException) { Console.WriteLine("Wallet backup fail"); return; } } bool succeed = CurrentWallet.ChangePassword(oldPassword, newPassword); if (succeed) { if (CurrentWallet is NEP6Wallet nep6Wallet) { nep6Wallet.Save(); } Console.WriteLine("Password changed successfully"); } else { Console.WriteLine("Failed to change password"); } }