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);
        }
Пример #2
0
 public OPReturnMessage(GetBlockResult bd, GetRawTransactionVerboseResult tx, string asm)
 {
     blockdata   = bd;
     transaction = tx;
     message     = ProcessMessage(asm);
 }