public async Task <IEnumerable <TransactionReceipt> > ExecuteAsync( BigInteger blockNumber) { var block = await _ethApiClient.GetBlockAsync ( blockNumber : blockNumber, includeTransactions : true ); var transactionReceipts = new List <TransactionReceipt>(); if (block.Transactions != null) { foreach (var blockTransaction in block.Transactions) { if (blockTransaction.To != null && await IsContractAsync(blockTransaction.To)) { transactionReceipts.AddRange ( await GetInternalTransactionReceiptsAsync ( blockTransaction.TransactionHash, block.Timestamp ) ); } else { transactionReceipts.Add(new TransactionReceipt ( amount: blockTransaction.Value, blockNumber: blockNumber, from: blockTransaction.From, hash: blockTransaction.TransactionHash, index: 0, timestamp: block.Timestamp, to: blockTransaction.To )); } } } return(transactionReceipts); }
public async Task <IEnumerable <TransactionReceipt> > ExecuteAsync( BigInteger blockNumber) { var block = await _ethApiClient.GetBlockAsync ( blockNumber : blockNumber, includeTransactions : true ); var transactionReceipts = block.Transactions?.Select(x => new TransactionReceipt ( amount: x.Value, blockNumber: blockNumber, from: x.From, hash: x.TransactionHash, index: x.TransactionIndex ?? 0, timestamp: block.Timestamp, to: x.To )); return(transactionReceipts ?? Enumerable.Empty <TransactionReceipt>()); }