private static void HandleFindTransactionById(Node node) { var id = Console.ReadLine(); var transaction = BlockchainUtils.FindTransactionById(node.MyBlockchain, id); Console.WriteLine(JsonConvert.SerializeObject(transaction, Formatting.Indented)); }
private static void HandleGetTrustLevel(Node node) { Console.WriteLine("Please enter name:"); var address = Console.ReadLine() ?? node.Name; var rating = BlockchainUtils.GetRating(address, node.MyBlockchain); Console.WriteLine($"{address} rating: {rating.ToString("N")}%"); }
private static void HandleFindTransactions(Node node) { Console.WriteLine($"Find transactions"); Console.WriteLine($"Enter sender name or press enter"); var sender = Console.ReadLine(); Console.WriteLine($"Enter receiver name or press enter"); var receiver = Console.ReadLine(); Console.WriteLine($"Enter amount or press enter"); var transactionAmount = Console.ReadLine(); var transactions = BlockchainUtils.FindTransactions(node.MyBlockchain, sender, receiver, transactionAmount); Console.WriteLine(JsonConvert.SerializeObject(transactions, Formatting.Indented)); }
private static void HandleShowBalances(Node node) { var balanceDict = BlockchainUtils.GetBalanceDict(node.Name, node.MyBlockchain); var total = balanceDict.Sum(x => x.Value); Console.WriteLine("Owed money:"); foreach (var(name, amount) in balanceDict.Where(x => x.Value > 0)) { Console.WriteLine($"Name: {node.Name.PadRight(10, ' ')} | Amount: {amount.ToString().PadLeft(6, ' ')}"); } Console.WriteLine(""); Console.WriteLine("Gets money from"); foreach (var(name, amount) in balanceDict.Where(x => x.Value < 0)) { var newamount = amount * -1; Console.WriteLine($"Name: {node.Name.PadRight(10, ' ')} | Amount: {newamount.ToString().PadLeft(6, ' ')}"); } Console.WriteLine($"Sum: {total}"); }
private static void HandleMyIncomingTransactions(Node node) { var transactions = BlockchainUtils.GetTransactionsToVerify(node.MyBlockchain, node.Name); foreach (var transaction in transactions) { Console.WriteLine(transaction.CombinedString()); Console.WriteLine("Accept? (y/n) or skip"); var isAccept = Console.ReadLine()?.Trim().ToLower(); if (isAccept == "y") { transaction.Status = TransactionStatusEnum.Accepted; node.BroadcastTransaction(transaction); } if (isAccept == "n") { transaction.Status = TransactionStatusEnum.Declined; node.BroadcastTransaction(transaction); } } }