protected override BlockProcessor CreateBlockProcessor() { AbiEncoder abiEncoder = AbiEncoder.Instance; ReadOnlyTransactionProcessorSource = new ReadOnlyTxProcessingEnv( DbProvider, new TrieStore(DbProvider.StateDb, LimboLogs.Instance).AsReadOnly(), BlockTree, SpecProvider, LimboLogs.Instance); RegisterContract = new RegisterContract(abiEncoder, ChainSpec.Parameters.Registrar, ReadOnlyTransactionProcessorSource); CertifierContract = new CertifierContract( abiEncoder, RegisterContract, ReadOnlyTransactionProcessorSource); return(new AuRaBlockProcessor( SpecProvider, Always.Valid, new RewardCalculator(SpecProvider), new BlockProcessor.BlockValidationTransactionsExecutor(TxProcessor, State), State, Storage, ReceiptStorage, LimboLogs.Instance, BlockTree)); }
protected override ITxFilter CreateGasPriceTxFilter(ReadOnlyTxProcessorSource readOnlyTxProcessorSource) { ITxFilter gasPriceTxFilter = base.CreateGasPriceTxFilter(readOnlyTxProcessorSource); Address? registrar = _api.ChainSpec?.Parameters.Registrar; if (registrar != null) { RegisterContract registerContract = new RegisterContract(_api.AbiEncoder, registrar, readOnlyTxProcessorSource); CertifierContract certifierContract = new CertifierContract(_api.AbiEncoder, registerContract, readOnlyTxProcessorSource); return(new TxCertifierFilter(certifierContract, gasPriceTxFilter, _api.LogManager)); } return(gasPriceTxFilter); }
private static ITxFilter CreateBaseAuRaTxFilter( IMiningConfig miningConfig, AuRaNethermindApi api, IReadOnlyTxProcessorSource readOnlyTxProcessorSource, IDictionaryContractDataStore <TxPriorityContract.Destination>?minGasPricesContractDataStore) { ITxFilter gasPriceTxFilter = CreateStandardTxFilter(miningConfig); if (minGasPricesContractDataStore != null) { gasPriceTxFilter = new MinGasPriceContractTxFilter(gasPriceTxFilter, minGasPricesContractDataStore); } Address?registrar = api.ChainSpec?.Parameters.Registrar; if (registrar != null) { RegisterContract registerContract = new RegisterContract(api.AbiEncoder, registrar, readOnlyTxProcessorSource); CertifierContract certifierContract = new CertifierContract(api.AbiEncoder, registerContract, readOnlyTxProcessorSource); return(new TxCertifierFilter(certifierContract, gasPriceTxFilter, api.LogManager)); } return(gasPriceTxFilter); }
protected override BlockProcessor CreateBlockProcessor() { AbiEncoder abiEncoder = new AbiEncoder(); ReadOnlyTxProcessorSource readOnlyTransactionProcessorSource = new ReadOnlyTxProcessorSource(DbProvider, BlockTree, SpecProvider, LimboLogs.Instance); CertifierContract = new CertifierContract( abiEncoder, new RegisterContract(abiEncoder, ChainSpec.Parameters.Registrar, readOnlyTransactionProcessorSource), readOnlyTransactionProcessorSource); return(new AuRaBlockProcessor( SpecProvider, Always.Valid, new RewardCalculator(SpecProvider), TxProcessor, StateDb, CodeDb, State, Storage, TxPool, ReceiptStorage, LimboLogs.Instance, BlockTree)); }