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);
                }
            }
        }