private void FindLogsInBlock(LogFilter filter, Block currentBlock, List <FilterLog> results) { var receipts = _receiptStorage.FindForBlock(currentBlock); long logIndexInBlock = 0; foreach (var receipt in receipts) { if (receipt == null) { continue; } if (filter.Matches(receipt.Bloom)) { foreach (var log in receipt.Logs) { if (filter.Accepts(log)) { results.Add(new FilterLog(logIndexInBlock, receipt, log)); } logIndexInBlock++; } } else { logIndexInBlock += receipt.Logs.Length; } } }
private IEnumerable <FilterLog> FindLogsInBlock(LogFilter filter, Block block) { if (block != null) { var receipts = _receiptStorage.FindForBlock(block, _receiptsRecovery); long logIndexInBlock = 0; foreach (var receipt in receipts) { if (receipt == null) { continue; } if (filter.Matches(receipt.Bloom)) { for (var index = 0; index < receipt.Logs.Length; index++) { var log = receipt.Logs[index]; if (filter.Accepts(log)) { yield return(new FilterLog(logIndexInBlock, index, receipt, log)); } logIndexInBlock++; } } else { logIndexInBlock += receipt.Logs.Length; } } } }
public ResultWrapper <ReceiptForRpc[]> parity_getBlockReceipts(BlockParameter blockParameter) { var filterBlock = blockParameter.ToFilterBlock(); var block = _blockFinder.GetBlock(filterBlock); var receipts = _receiptStorage.FindForBlock(block); var result = receipts.Zip(block.Transactions, (r, t) => new ReceiptForRpc(t.Hash, r)); return(ResultWrapper <ReceiptForRpc[]> .Success(result.ToArray())); }
public ResultWrapper <ReceiptForRpc[]> parity_getBlockReceipts(BlockParameter blockParameter) { Block block = _blockFinder.FindBlock(blockParameter); TxReceipt[] receipts = _receiptStorage.FindForBlock(block, new ReceiptsRecovery()); IEnumerable <ReceiptForRpc> result = receipts.Zip(block.Transactions, (r, t) => new ReceiptForRpc(t.Hash, r)); return(ResultWrapper <ReceiptForRpc[]> .Success(result.ToArray())); }
public TxReceipt[] GetReceipts(Block block) => _receiptStorage.FindForBlock(block);