public static void LoadWallet(out Safe safe) { safe = null; string path; bool @continue = true; string password; Console.WriteLine(); RecoverWalletHelper.GetPassword(out password); do { Console.WriteLine("Please enter the full file path of the wallet json file:"); path = Console.ReadLine(); @continue = !CommonWalletHelper.CheckDirectory(path); } while (@continue); Console.WriteLine("Please enter the name of the wallet: "); var name = Console.ReadLine(); RecoverWalletHelper.LoadFromExistingWalletFile(password, string.Format("{0}\\{1}", path, name), out safe); _safe = safe; var sha256Public = CryptoHelper.GetSHA256(safe.GetBitcoinExtPubKey().ToString()); if (!CommonWalletHelper.IsWalletSavedInConfig(_config, sha256Public)) { CommonWalletHelper.AddNewRecordInWalletConfig(_config, sha256Public); } }
private static void CreateWallet(out Safe safe) { Network network = null; safe = null; CommonWalletHelper.SelectNetwork(out network); string filePath = string.Empty; string password = string.Empty; bool shouldContinue = true; do { Console.WriteLine("Please enter valid folder file path where .json file should be saved\n"); filePath = Console.ReadLine(); CommonWalletHelper.CheckForSpecialCommand(filePath.ToLower()); shouldContinue = !CommonWalletHelper.CheckDirectory(filePath); } while (shouldContinue); CreateWalletHelper.GetPassword(out password); Mnemonic mnemonic; CreateWalletHelper.CreateJsonFile(password, filePath, network, out mnemonic, out safe); Console.WriteLine("File Successfuly Created!\nAfter 2 second full information will be presented\n"); _safe = safe; Thread.Sleep(2000); Console.Clear(); CreateWalletHelper.PrintInformation(safe, filePath, mnemonic, password); var sha256PublicKey = CryptoHelper.GetSHA256(safe.GetBitcoinExtPubKey().ToString()); CommonWalletHelper.AddNewRecordInWalletConfig(_config, sha256PublicKey); }
private static void RecoverWallet(out Safe safe) { safe = null; try { Mnemonic mnemonic; string password; byte selectedWay; Console.WriteLine("IMPORTANT!: The wallet cannot check if the password you passed is correct", ConsoleColor.Red); Console.WriteLine("Recovery required valid password and mnemonic phrase"); RecoverWalletHelper.GetPassword(out password); RecoverWalletHelper.GetSelectedWayOfMnemonicInput(out selectedWay); if (selectedWay == 0) { RecoverWalletHelper.LoadMnemonicFromFile(out mnemonic); } else { RecoverWalletHelper.LoadMnemonicFromInput(out mnemonic); } Network network; CommonWalletHelper.SelectNetwork(out network); string directoryPath; CommonWalletHelper.GetDirectoryPath(out directoryPath); RecoverWalletHelper.TryRecoverWallet(password, mnemonic, directoryPath, network, out safe); Console.WriteLine("Wallet successfuly recoverd!"); _safe = safe; var sha256Public = CryptoHelper.GetSHA256(safe.GetBitcoinExtPubKey().ToString()); if (!CommonWalletHelper.IsWalletSavedInConfig(_config, sha256Public)) { CommonWalletHelper.AddNewRecordInWalletConfig(_config, sha256Public); } } catch (Exception) { Console.WriteLine("Recovery FAILED!"); } }