static void Main(string[] args) { int menuOption = 0; do { menuOption = DisplayMenu(); switch (menuOption) { case 1: //Gerando uma chave privada { try { Console.WriteLine("Informe a senha para criar sua chave privada: "); var senha = Console.ReadLine(); var generatekey = new GenerateKey(); var wordList = generatekey.GetWordList(); //Gerando lista de palavras var pkey = generatekey.GetPrivateKey(wordList.ToString(), senha); //Gerando chave com senha Console.WriteLine($"\nAnote a lista de palavras: {wordList.ToString()}"); Console.WriteLine($"\nAnote o seu endereço na rede: {pkey.PrivateKey.PubKey.GetAddress(Network.TestNet)}"); Console.WriteLine("\nSalve essas informações para recuperar a sua chave!"); } catch (Exception ex) { Console.WriteLine($"Ocorreu um erro: {ex.Message}"); } break; } case 2: //Recuperando chave privada { try { Console.WriteLine("Informe o conjunto de 12 palavras: "); var words = Console.ReadLine(); Console.WriteLine("Informe a senha da chave privada: "); var senha = Console.ReadLine(); var generatekey = new GenerateKey(); var pkey = generatekey.GetPrivateKey(words, senha); //Gerando chave com senha Console.WriteLine($"\nSeu endereço na rede é: {pkey.PrivateKey.PubKey.GetAddress(Network.TestNet)}"); } catch (Exception ex) { Console.WriteLine($"Ocorreu um erro: {ex.Message}"); } break; } case 3: //Obtendo saldo do endereço { try { Console.WriteLine("Informe o endereço na rede: "); var address = Console.ReadLine(); var account = new AccountBitcoin(); account.GetBalance(address); } catch (Exception ex) { Console.WriteLine($"Ocorreu um erro: {ex.Message}"); } break; } case 4: //Obtendo histórico de transações do endereço { try { Console.WriteLine("Informe o endereço na rede: "); var address = Console.ReadLine(); var account = new AccountBitcoin(); account.GetHistory(address); } catch (Exception ex) { Console.WriteLine($"Ocorreu um erro: {ex.Message}"); } break; } case 5: //Criando uma transação na rede { try { Console.WriteLine("Informe o conjunto de 12 palavras: "); var words = Console.ReadLine(); Console.WriteLine("Informe a senha da chave privada: "); var senha = Console.ReadLine(); Console.WriteLine("Informe o endereço para envio: "); var addressSend = Console.ReadLine(); Console.WriteLine("Informe a quantidade de SATOSHIS para envio: "); var moneySend = Console.ReadLine(); Console.WriteLine("Informe a quantidade de SATOSHIS para a taxa: "); var fee = Console.ReadLine(); //Recuperando chave privada var generatekey = new GenerateKey(); var pkey = generatekey.GetPrivateKey(words, senha); //Gerando chave com senha //Criando a transação var transaction = new TransactionBitcoin(); transaction.SendTransaction( pkey, addressSend, new Money(Convert.ToInt64(moneySend)), new Money(Convert.ToInt64(fee)) ); } catch (Exception ex) { Console.WriteLine($"Ocorreu um erro: {ex.Message}"); } break; } default: break; } } while (menuOption != 6); }