Пример #1
0
 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);
 }
Пример #2
0
        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");
            }
        }