public IBlockchainBridge CreateBlockchainBridge() { ReadOnlyBlockTree readOnlyTree = BlockTree.AsReadOnly(); LazyInitializer.EnsureInitialized(ref _readOnlyDbProvider, () => new ReadOnlyDbProvider(DbProvider, false)); // TODO: reuse the same trie cache here ReadOnlyTxProcessingEnv readOnlyTxProcessingEnv = new( _readOnlyDbProvider, ReadOnlyTrieStore, readOnlyTree, SpecProvider, LogManager); IMiningConfig miningConfig = ConfigProvider.GetConfig <IMiningConfig>(); ISyncConfig syncConfig = ConfigProvider.GetConfig <ISyncConfig>(); return(new BlockchainBridge( readOnlyTxProcessingEnv, TxPool, ReceiptFinder, FilterStore, FilterManager, EthereumEcdsa, Timestamper, LogFinder, miningConfig.Enabled, syncConfig.BeamSync && syncConfig.FastSync )); }