using Nethereum.BlockchainProcessing.Processor; using Nethereum.RPC.Eth.DTOs; namespace Nethereum.BlockchainProcessing.BlockProcessing { public class BlockProcessingSteps { public IProcessor BlockStep = new Processor(); public IProcessor TransactionStep = new Processor(); public IProcessor TransactionReceiptStep = new Processor(); public IProcessor FilterLogStep = new Processor(); public IProcessor ContractCreationStep = new Processor(); public virtual IProcessor GetStep() { var type = typeof(T); if (type == typeof(BlockWithTransactions)) { return (IProcessor)BlockStep; } else if (type == typeof(TransactionVO)) { return (IProcessor)TransactionStep; } else if (type == typeof(TransactionReceiptVO)) { return (IProcessor)TransactionReceiptStep; } else if (type == typeof(FilterLogVO)) { return (IProcessor)FilterLogStep; } else if (type == typeof(ContractCreationVO)) { return (IProcessor)ContractCreationStep; } return null; } } }