private List <OPReturnMessage> ProcessTx(GetBlockResult bd, GetRawTransactionVerboseResult transaction)
        {
            var foundMessages = new List <OPReturnMessage>();

            if (transaction == null)
            {
                return(null);
            }

            if (!transaction.vin.Any() || transaction.vout == null)
            {
                return(null);
            }

            var vouts = transaction.vout.Where(a => a.scriptPubKey != null && a.scriptPubKey.asm.Contains("OP_RETURN")).ToList();

            if (!vouts.Any())
            {
                return(null);
            }

            foreach (var vout in vouts)
            {
                var message = new OPReturnMessage(bd, transaction, vout.scriptPubKey.asm);
                foundMessages.Add(message);
                Console.WriteLine($"{bd.height} - {transaction.txid} - {vout.n} - {message.message}");
            }
            return(foundMessages.Any() ? foundMessages :  null);
        }
 public void AddMessage(OPReturnMessage message)
 {
     //TODO: using python script as basis, rewrite for C#
 }