コード例 #1
0
        private TestCase <T> BuildTestCase <T>(ILocalDataSource <IEnumerable <T> > localDataSource, bool withContractSource = true, IComparer <T> keyComparer = null, IComparer <T> valueComparer = null)
        {
            IDataContract <T> dataContract = null;

            if (withContractSource)
            {
                dataContract = Substitute.For <IDataContract <T> >();
                dataContract.IncrementalChanges.Returns(true);
            }

            IBlockTree     blockTree      = Substitute.For <IBlockTree>();
            IReceiptFinder receiptsFinder = Substitute.For <IReceiptFinder>();

            receiptsFinder.Get(Arg.Any <Block>()).Returns(Array.Empty <TxReceipt>());

            return(new TestCase <T>()
            {
                DataContract = dataContract,
                BlockTree = blockTree,
                ReceiptFinder = receiptsFinder,
                ContractDataStore = keyComparer == null
                    ? (IContractDataStore <T>) new ContractDataStoreWithLocalData <T>(new HashSetContractDataStoreCollection <T>(), dataContract, blockTree, receiptsFinder, LimboLogs.Instance, localDataSource)
                    : new DictionaryContractDataStore <T>(new SortedListContractDataStoreCollection <T>(keyComparer, valueComparer), dataContract, blockTree, receiptsFinder, LimboLogs.Instance, localDataSource)
            });
        }
コード例 #2
0
 public BlockchainBridge(
     ReadOnlyTxProcessingEnv processingEnv,
     ITxPool txPool,
     IReceiptFinder receiptStorage,
     IFilterStore filterStore,
     IFilterManager filterManager,
     IEthereumEcdsa ecdsa,
     IBloomStorage bloomStorage,
     ITimestamper timestamper,
     ILogManager logManager,
     bool isMining,
     int findLogBlockDepthLimit          = 1000,
     CancellationToken cancellationToken = default(CancellationToken))
 {
     _processingEnv        = processingEnv ?? throw new ArgumentNullException(nameof(processingEnv));
     _stateReader          = processingEnv.StateReader ?? throw new ArgumentNullException(nameof(processingEnv.StateReader));
     _stateProvider        = processingEnv.StateProvider ?? throw new ArgumentNullException(nameof(processingEnv.StateProvider));
     _blockTree            = processingEnv.BlockTree ?? throw new ArgumentNullException(nameof(processingEnv.BlockTree));
     _transactionProcessor = processingEnv.TransactionProcessor ?? throw new ArgumentException(nameof(processingEnv.TransactionProcessor));
     _txPool        = txPool ?? throw new ArgumentNullException(nameof(_txPool));
     _receiptFinder = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
     _filterStore   = filterStore ?? throw new ArgumentException(nameof(filterStore));
     _filterManager = filterManager ?? throw new ArgumentException(nameof(filterManager));
     _ecdsa         = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
     _timestamper   = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     IsMining       = isMining;
     _logFinder     = new LogFinder(_blockTree, _receiptFinder, bloomStorage, logManager, new ReceiptsRecovery(), findLogBlockDepthLimit);
 }
コード例 #3
0
        private void TestAddAndGetReceipt(IReceiptStorage storage, IReceiptFinder receiptFinder = null)
        {
            bool recoverSender = receiptFinder is not null;

            receiptFinder ??= storage;

            var transaction = GetSignedTransaction();

            transaction.SenderAddress = null;
            var block   = GetBlock(transaction);
            var receipt = GetReceipt(transaction, block);

            storage.Insert(block, receipt);
            var blockHash = storage.FindBlockHash(transaction.Hash);

            blockHash.Should().Be(block.Hash);
            var fetchedReceipt = receiptFinder.Get(block).ForTransaction(transaction.Hash);

            receipt.StatusCode.Should().Be(fetchedReceipt.StatusCode);
            receipt.PostTransactionState.Should().Be(fetchedReceipt.PostTransactionState);
            receipt.TxHash.Should().Be(transaction.Hash);
            if (recoverSender)
            {
                receipt.Sender.Should().BeEquivalentTo(TestItem.AddressA);
            }
        }
コード例 #4
0
 private static ContractDataStore <T, TCollection> CreateContractDataStore(
     TCollection collection,
     IDataContract <T> dataContract,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     ILogManager logManager) =>
 new ContractDataStore <T, TCollection>(collection, dataContract, blockTree, receiptFinder, logManager);
コード例 #5
0
 public EthRpcModule(
     IJsonRpcConfig rpcConfig,
     IBlockchainBridge blockchainBridge,
     IBlockFinder blockFinder,
     IStateReader stateReader,
     ITxPool txPool,
     ITxSender txSender,
     IWallet wallet,
     IReceiptFinder receiptFinder,
     ILogManager logManager,
     ISpecProvider specProvider,
     IGasPriceOracle gasPriceOracle,
     IEthSyncingInfo ethSyncingInfo,
     IFeeHistoryOracle feeHistoryOracle)
 {
     _logger           = logManager.GetClassLogger();
     _rpcConfig        = rpcConfig ?? throw new ArgumentNullException(nameof(rpcConfig));
     _blockchainBridge = blockchainBridge ?? throw new ArgumentNullException(nameof(blockchainBridge));
     _blockFinder      = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder));
     _stateReader      = stateReader ?? throw new ArgumentNullException(nameof(stateReader));
     _txPoolBridge     = txPool ?? throw new ArgumentNullException(nameof(txPool));
     _txSender         = txSender ?? throw new ArgumentNullException(nameof(txSender));
     _wallet           = wallet ?? throw new ArgumentNullException(nameof(wallet));
     _receiptFinder    = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));;
     _specProvider     = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     _gasPriceOracle   = gasPriceOracle ?? throw new ArgumentNullException(nameof(gasPriceOracle));
     _ethSyncingInfo   = ethSyncingInfo ?? throw new ArgumentNullException(nameof(ethSyncingInfo));
     _feeHistoryOracle = feeHistoryOracle ?? throw new ArgumentNullException(nameof(feeHistoryOracle));
 }
コード例 #6
0
 public ContractBasedValidator(
     AuRaParameters.Validator validator,
     IStateProvider stateProvider,
     IAbiEncoder abiEncoder,
     ITransactionProcessor transactionProcessor,
     IReadOnlyTransactionProcessorSource readOnlyTransactionProcessorSource,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     IValidatorStore validatorStore,
     IValidSealerStrategy validSealerStrategy,
     IBlockFinalizationManager finalizationManager,
     BlockHeader parentHeader,
     ILogManager logManager,
     long startBlockNumber,
     bool forSealing = false) : base(validator, validSealerStrategy, validatorStore, logManager, startBlockNumber, forSealing)
 {
     _blockTree            = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
     ContractAddress       = validator.Addresses?.FirstOrDefault() ?? throw new ArgumentException("Missing contract address for AuRa validator.", nameof(validator.Addresses));
     _stateProvider        = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
     _transactionProcessor = transactionProcessor ?? throw new ArgumentNullException(nameof(transactionProcessor));
     _readOnlyReadOnlyTransactionProcessorSource = readOnlyTransactionProcessorSource ?? throw new ArgumentNullException(nameof(readOnlyTransactionProcessorSource));
     _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _logger        = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     AbiEncoder     = abiEncoder ?? throw new ArgumentNullException(nameof(abiEncoder));
     SetPendingValidators(LoadPendingValidators());
     SetFinalizationManager(finalizationManager, parentHeader ?? _blockTree.Head?.Header);
 }
コード例 #7
0
ファイル: SyncServer.cs プロジェクト: AlexSSD7/nethermind
        public SyncServer(
            ISnapshotableDb stateDb,
            ISnapshotableDb codeDb,
            IBlockTree blockTree,
            IReceiptFinder receiptFinder,
            IBlockValidator blockValidator,
            ISealValidator sealValidator,
            ISyncPeerPool pool,
            ISyncModeSelector syncModeSelector,
            ISyncConfig syncConfig,
            ILogManager logManager,
            CanonicalHashTrie cht = null)
        {
            _syncConfig       = syncConfig ?? throw new ArgumentNullException(nameof(syncConfig));
            _pool             = pool ?? throw new ArgumentNullException(nameof(pool));
            _syncModeSelector = syncModeSelector ?? throw new ArgumentNullException(nameof(syncModeSelector));
            _sealValidator    = sealValidator ?? throw new ArgumentNullException(nameof(sealValidator));
            _stateDb          = stateDb ?? throw new ArgumentNullException(nameof(stateDb));
            _codeDb           = codeDb ?? throw new ArgumentNullException(nameof(codeDb));
            _blockTree        = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _receiptFinder    = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
            _blockValidator   = blockValidator ?? throw new ArgumentNullException(nameof(blockValidator));
            _logger           = logManager.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _cht         = cht;
            _pivotNumber = _syncConfig.PivotNumberParsed;

            _blockTree.NewHeadBlock += OnNewHeadBlock;
            _pivotHash = new Keccak(_syncConfig.PivotHash ?? Keccak.Zero.ToString());
        }
コード例 #8
0
 public BlockchainBridge(ReadOnlyTxProcessingEnv processingEnv,
                         ITxPool?txPool,
                         IReceiptFinder?receiptStorage,
                         IFilterStore?filterStore,
                         IFilterManager?filterManager,
                         IEthereumEcdsa?ecdsa,
                         ITimestamper?timestamper,
                         ILogFinder?logFinder,
                         ISpecProvider specProvider,
                         bool isMining)
 {
     _processingEnv        = processingEnv ?? throw new ArgumentNullException(nameof(processingEnv));
     _stateReader          = processingEnv.StateReader ?? throw new ArgumentNullException(nameof(processingEnv.StateReader));
     _stateProvider        = processingEnv.StateProvider ?? throw new ArgumentNullException(nameof(processingEnv.StateProvider));
     _blockTree            = processingEnv.BlockTree ?? throw new ArgumentNullException(nameof(processingEnv.BlockTree));
     _transactionProcessor = processingEnv.TransactionProcessor ?? throw new ArgumentNullException(nameof(processingEnv.TransactionProcessor));
     _txPool        = txPool ?? throw new ArgumentNullException(nameof(_txPool));
     _receiptFinder = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
     _filterStore   = filterStore ?? throw new ArgumentNullException(nameof(filterStore));
     _filterManager = filterManager ?? throw new ArgumentNullException(nameof(filterManager));
     _ecdsa         = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
     _timestamper   = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _logFinder     = logFinder ?? throw new ArgumentNullException(nameof(logFinder));
     _specProvider  = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     IsMining       = isMining;
 }
コード例 #9
0
        public BlockchainBridge(
            IStateReader stateReader,
            IStateProvider stateProvider,
            IStorageProvider storageProvider,
            IBlockTree blockTree,
            ITxPool txPool,
            IReceiptFinder receiptStorage,
            IFilterStore filterStore,
            IFilterManager filterManager,
            IWallet wallet,
            ITransactionProcessor transactionProcessor,
            IEthereumEcdsa ecdsa,
            IBloomStorage bloomStorage,
            ILogManager logManager,
            bool isMining,
            int findLogBlockDepthLimit = 1000)
        {
            _stateReader          = stateReader ?? throw new ArgumentNullException(nameof(stateReader));
            _stateProvider        = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _storageProvider      = storageProvider ?? throw new ArgumentNullException(nameof(storageProvider));
            _blockTree            = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _txPool               = txPool ?? throw new ArgumentNullException(nameof(_txPool));
            _receiptFinder        = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
            _filterStore          = filterStore ?? throw new ArgumentException(nameof(filterStore));
            _filterManager        = filterManager ?? throw new ArgumentException(nameof(filterManager));
            _wallet               = wallet ?? throw new ArgumentException(nameof(wallet));
            _transactionProcessor = transactionProcessor ?? throw new ArgumentException(nameof(transactionProcessor));
            _ecdsa   = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
            IsMining = isMining;

            _logFinder = new LogFinder(_blockTree, _receiptFinder, bloomStorage, logManager, new ReceiptsRecovery(), findLogBlockDepthLimit);
        }
コード例 #10
0
        public EthModuleFactory(IDbProvider dbProvider,
                                ITxPool txPool,
                                IWallet wallet,
                                IJsonRpcConfig jsonRpcConfig,
                                IBlockTree blockTree,
                                IEthereumEcdsa ethereumEcdsa,
                                IBlockProcessor blockProcessor,
                                IReceiptFinder receiptFinder,
                                ISpecProvider specProvider,
                                IJsonRpcConfig config,
                                IBloomStorage bloomStorage,
                                ILogManager logManager,
                                bool isMining)
        {
            _dbProvider    = dbProvider ?? throw new ArgumentNullException(nameof(dbProvider));
            _txPool        = txPool ?? throw new ArgumentNullException(nameof(txPool));
            _wallet        = wallet ?? throw new ArgumentNullException(nameof(wallet));
            _jsonRpcConfig = jsonRpcConfig ?? throw new ArgumentNullException(nameof(wallet));
            _blockTree     = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _ethereumEcdsa = ethereumEcdsa ?? throw new ArgumentNullException(nameof(ethereumEcdsa));
            _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
            _specProvider  = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
            _rpcConfig     = config ?? throw new ArgumentNullException(nameof(config));
            _bloomStorage  = bloomStorage ?? throw new ArgumentNullException(nameof(bloomStorage));
            _logManager    = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _isMining      = isMining;

            _filterStore   = new FilterStore();
            _filterManager = new FilterManager(_filterStore, blockProcessor, _txPool, _logManager);
        }
コード例 #11
0
 public AuRaValidatorFactory(IStateProvider stateProvider,
                             IAbiEncoder abiEncoder,
                             ITransactionProcessor transactionProcessor,
                             IReadOnlyTransactionProcessorSource readOnlyTransactionProcessorSource,
                             IBlockTree blockTree,
                             IReceiptFinder receiptFinder,
                             IValidatorStore validatorStore,
                             IBlockFinalizationManager finalizationManager,
                             ITxSender txSender,
                             ITxPool txPool,
                             ILogManager logManager,
                             ISigner signer,
                             ReportingContractBasedValidator.Cache reportingValidatorCache,
                             long posdaoTransition,
                             bool forSealing = false)
 {
     _stateProvider        = stateProvider;
     _abiEncoder           = abiEncoder;
     _transactionProcessor = transactionProcessor;
     _readOnlyTransactionProcessorSource = readOnlyTransactionProcessorSource;
     _blockTree           = blockTree;
     _receiptFinder       = receiptFinder;
     _validatorStore      = validatorStore;
     _finalizationManager = finalizationManager;
     _txSender            = txSender;
     _txPool     = txPool;
     _logManager = logManager;
     _signer     = signer;
     _reportingValidatorCache = reportingValidatorCache;
     _posdaoTransition        = posdaoTransition;
     _forSealing = forSealing;
 }
コード例 #12
0
ファイル: TraceModule.cs プロジェクト: AlexSSD7/nethermind
 public TraceModule(IReceiptFinder receiptFinder, ITracer tracer, IBlockFinder blockFinder, CancellationToken cancellationToken = default(CancellationToken))
 {
     _cancellationToken = cancellationToken;
     _receiptFinder     = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _tracer            = tracer ?? throw new ArgumentNullException(nameof(tracer));
     _blockFinder       = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder));
 }
コード例 #13
0
 public ParityModule(IEcdsa ecdsa, ITxPool txPool, IBlockFinder blockFinder, IReceiptFinder receiptFinder, ILogManager logManager)
 {
     _ecdsa         = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
     _txPool        = txPool ?? throw new ArgumentNullException(nameof(txPool));
     _blockFinder   = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder));
     _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
 }
コード例 #14
0
        public Task Execute(CancellationToken cancellationToken)
        {
            IInitConfig  initConfig  = _get.Config <IInitConfig>();
            IBloomConfig bloomConfig = _get.Config <IBloomConfig>();

            IFileStoreFactory fileStoreFactory = initConfig.DiagnosticMode == DiagnosticMode.MemDb
                ? new InMemoryDictionaryFileStoreFactory()
                : new FixedSizeFileStoreFactory(Path.Combine(initConfig.BaseDbPath, DbNames.Bloom), DbNames.Bloom, Bloom.ByteLength);

            IBloomStorage bloomStorage =
                _set.BloomStorage = bloomConfig.Index
                    ? new BloomStorage(bloomConfig, _get.DbProvider !.BloomDb, fileStoreFactory)
                    : NullBloomStorage.Instance;

            _get.DisposeStack.Push(bloomStorage);

            IChainLevelInfoRepository chainLevelInfoRepository =
                _set.ChainLevelInfoRepository = new ChainLevelInfoRepository(_get.DbProvider !.BlockInfosDb);

            IBlockTree blockTree = _set.BlockTree = new BlockTree(
                _get.DbProvider,
                chainLevelInfoRepository,
                _get.SpecProvider,
                bloomStorage,
                _get.Config <ISyncConfig>(),
                _get.LogManager);

            ISigner      signer      = NullSigner.Instance;
            ISignerStore signerStore = NullSigner.Instance;

            if (_get.Config <IMiningConfig>().Enabled)
            {
                Signer signerAndStore = new(_get.SpecProvider !.ChainId, _get.OriginalSignerKey !, _get.LogManager);
                signer      = signerAndStore;
                signerStore = signerAndStore;
            }

            _set.EngineSigner      = signer;
            _set.EngineSignerStore = signerStore;

            ReceiptsRecovery receiptsRecovery = new(_get.EthereumEcdsa, _get.SpecProvider);
            IReceiptStorage  receiptStorage   = _set.ReceiptStorage = initConfig.StoreReceipts
                ? new PersistentReceiptStorage(_get.DbProvider.ReceiptsDb, _get.SpecProvider !, receiptsRecovery)
                : NullReceiptStorage.Instance;

            IReceiptFinder receiptFinder = _set.ReceiptFinder = new FullInfoReceiptFinder(receiptStorage, receiptsRecovery, blockTree);

            LogFinder logFinder = new(
                blockTree,
                receiptFinder,
                receiptStorage,
                bloomStorage,
                _get.LogManager,
                new ReceiptsRecovery(_get.EthereumEcdsa, _get.SpecProvider),
                1024);

            _set.LogFinder = logFinder;

            return(Task.CompletedTask);
        }
コード例 #15
0
        public static SearchResult <Keccak> SearchForReceiptBlockHash(this IReceiptFinder receiptFinder, Keccak txHash)
        {
            Keccak blockHash = receiptFinder.FindBlockHash(txHash);

            return(blockHash == null
                ? new SearchResult <Keccak>($"{txHash} receipt could not be found", ErrorCodes.ResourceNotFound)
                : new SearchResult <Keccak>(blockHash));
        }
コード例 #16
0
 public TraceModule(IReceiptFinder receiptFinder, ITracer tracer, IBlockFinder blockFinder, IJsonRpcConfig jsonRpcConfig)
 {
     _receiptFinder            = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _tracer                   = tracer ?? throw new ArgumentNullException(nameof(tracer));
     _blockFinder              = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder));
     _jsonRpcConfig            = jsonRpcConfig ?? throw new ArgumentNullException(nameof(jsonRpcConfig));
     _cancellationTokenTimeout = TimeSpan.FromMilliseconds(_jsonRpcConfig.TracerTimeout);
 }
コード例 #17
0
 protected internal ContractDataStore(TCollection collection, IDataContract <T> dataContract, IBlockTree blockTree, IReceiptFinder receiptFinder, ILogManager logManager)
 {
     Collection              = collection;
     _dataContract           = dataContract ?? throw new ArgumentNullException(nameof(dataContract));
     _receiptFinder          = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _blockTree              = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
     _logger                 = logManager?.GetClassLogger <ContractDataStore <T, TCollection> >() ?? throw new ArgumentNullException(nameof(logManager));
     blockTree.NewHeadBlock += OnNewHead;
 }
コード例 #18
0
 public DictionaryContractDataStore(
     TCollection collection,
     IDataContract <T> dataContract,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     ILogManager logManager)
     : this(CreateContractDataStore(collection, dataContract, blockTree, receiptFinder, logManager))
 {
 }
コード例 #19
0
ファイル: LogFinder.cs プロジェクト: RohitGupta027/nethermind
 public LogFinder(IBlockFinder blockFinder, IReceiptFinder receiptFinder, IBloomStorage bloomStorage, ILogManager logManager, IReceiptsRecovery receiptsRecovery, int maxBlockDepth = 1000)
 {
     _blockFinder      = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder));
     _receiptFinder    = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _bloomStorage     = bloomStorage ?? throw new ArgumentNullException(nameof(bloomStorage));
     _receiptsRecovery = receiptsRecovery ?? throw new ArgumentNullException(nameof(receiptsRecovery));;
     _logger           = logManager?.GetClassLogger <LogFinder>() ?? throw new ArgumentNullException(nameof(logManager));
     _maxBlockDepth    = maxBlockDepth;
 }
コード例 #20
0
 protected internal ContractDataStore(IContractDataStoreCollection <T> collection, IDataContract <T> dataContract, IBlockTree blockTree, IReceiptFinder receiptFinder, ILogManager logManager)
 {
     Collection              = collection == null || collection is ThreadSafeContractDataStoreCollectionDecorator <T>?collection : new ThreadSafeContractDataStoreCollectionDecorator <T>(collection);
     _dataContract           = dataContract ?? throw new ArgumentNullException(nameof(dataContract));
     _receiptFinder          = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _blockTree              = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
     _logger                 = logManager?.GetClassLogger <ContractDataStore <T> >() ?? throw new ArgumentNullException(nameof(logManager));
     blockTree.NewHeadBlock += OnNewHead;
 }
コード例 #21
0
        public void Setup()
        {
            _specProvider  = RopstenSpecProvider.Instance;
            _ethereumEcdsa = new EthereumEcdsa(_specProvider.ChainId, LimboLogs.Instance);
            ReceiptsRecovery receiptsRecovery = new(_ethereumEcdsa, _specProvider);

            _persistentStorage = new PersistentReceiptStorage(new MemColumnsDb <ReceiptsColumns>(), _specProvider, receiptsRecovery);
            _receiptFinder     = new FullInfoReceiptFinder(_persistentStorage, receiptsRecovery, Substitute.For <IBlockFinder>());
            _inMemoryStorage   = new InMemoryReceiptStorage();
        }
コード例 #22
0
 public DictionaryContractDataStore(
     TCollection collection,
     IDataContract <T> dataContract,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     ILogManager logManager,
     ILocalDataSource <IEnumerable <T> > localDataSource)
     : this(localDataSource == null
         ? CreateContractDataStore(collection, dataContract, blockTree, receiptFinder, logManager)
         : CreateContractDataStoreWithLocalData(collection, dataContract, blockTree, receiptFinder, logManager, localDataSource))
 {
 }
コード例 #23
0
 protected internal ContractDataStoreWithLocalData(
     TCollection collection,
     IDataContract <T> dataContract,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     ILogManager logManager,
     ILocalDataSource <IEnumerable <T> > localDataSource)
     : base(collection, dataContract, blockTree, receiptFinder, logManager)
 {
     _localDataSource          = localDataSource ?? throw new ArgumentNullException(nameof(localDataSource));
     _localDataSource.Changed += OnChanged;
     LoadLocalData();
 }
コード例 #24
0
 public ContractDataStoreWithLocalData(
     IContractDataStoreCollection <T> collection,
     IDataContract <T> dataContract,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     ILogManager logManager,
     ILocalDataSource <IEnumerable <T> > localDataSource)
     : base(collection, dataContract ?? new EmptyDataContract <T>(), blockTree, receiptFinder, logManager)
 {
     _localDataSource          = localDataSource ?? throw new ArgumentNullException(nameof(localDataSource));
     _localDataSource.Changed += OnChanged;
     LoadLocalData();
 }
コード例 #25
0
ファイル: ProofModule.cs プロジェクト: uzbekdev1/nethermind
 public ProofModule(
     ITracer tracer,
     IBlockFinder blockFinder,
     IReceiptFinder receiptFinder,
     ISpecProvider specProvider,
     ILogManager logManager)
 {
     _tracer        = tracer ?? throw new ArgumentNullException(nameof(tracer));
     _blockFinder   = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder));
     _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _specProvider  = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     _logger        = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
 }
コード例 #26
0
 public ReportingContractBasedValidator(AuRaParameters.Validator validator,
                                        IStateProvider stateProvider,
                                        IAbiEncoder abiEncoder,
                                        ITransactionProcessor transactionProcessor,
                                        IReadOnlyTransactionProcessorSource readOnlyTransactionProcessorSource,
                                        IBlockTree blockTree,
                                        IReceiptFinder receiptFinder,
                                        IValidatorStore validatorStore,
                                        IValidSealerStrategy validSealerStrategy,
                                        ILogManager logManager,
                                        long startBlockNumber)
     : base(validator, stateProvider, abiEncoder, transactionProcessor, readOnlyTransactionProcessorSource, blockTree, receiptFinder, validatorStore, validSealerStrategy, logManager, startBlockNumber)
 {
 }
コード例 #27
0
 private static ContractDataStoreWithLocalData <T, TCollection> CreateContractDataStoreWithLocalData(
     TCollection collection,
     IDataContract <T> dataContract,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     ILogManager logManager,
     ILocalDataSource <IEnumerable <T> > localDataSource) =>
 new ContractDataStoreWithLocalData <T, TCollection>(
     collection,
     dataContract ?? new EmptyDataContract <T>(),
     blockTree,
     receiptFinder,
     logManager,
     localDataSource);
コード例 #28
0
 public ProofModuleFactory(
     IDbProvider dbProvider,
     IBlockTree blockTree,
     IBlockPreprocessorStep recoveryStep,
     IReceiptFinder receiptFinder,
     ISpecProvider specProvider,
     ILogManager logManager)
 {
     _recoveryStep  = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep));
     _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _specProvider  = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     _dbProvider    = dbProvider ?? throw new ArgumentNullException(nameof(dbProvider));
     _logManager    = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _blockTree     = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
 }
コード例 #29
0
 public LogFinder(
     IBlockFinder?blockFinder,
     IReceiptFinder?receiptFinder,
     IBloomStorage?bloomStorage,
     ILogManager?logManager,
     IReceiptsRecovery?receiptsRecovery,
     int maxBlockDepth = 1000)
 {
     _blockFinder             = blockFinder ?? throw new ArgumentNullException(nameof(blockFinder));
     _receiptFinder           = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _bloomStorage            = bloomStorage ?? throw new ArgumentNullException(nameof(bloomStorage));
     _receiptsRecovery        = receiptsRecovery ?? throw new ArgumentNullException(nameof(receiptsRecovery));
     _logger                  = logManager?.GetClassLogger <LogFinder>() ?? throw new ArgumentNullException(nameof(logManager));
     _maxBlockDepth           = maxBlockDepth;
     _rpcConfigGetLogsThreads = Math.Max(1, Environment.ProcessorCount / 4);
 }
コード例 #30
0
 public ProofModuleFactory(
     IDbProvider dbProvider,
     IBlockTree blockTree,
     IReadOnlyTrieStore trieStore,
     IBlockPreprocessorStep recoveryStep,
     IReceiptFinder receiptFinder,
     ISpecProvider specProvider,
     ILogManager logManager)
 {
     _logManager    = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _recoveryStep  = recoveryStep ?? throw new ArgumentNullException(nameof(recoveryStep));
     _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder));
     _specProvider  = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     _dbProvider    = dbProvider.AsReadOnly(false);
     _blockTree     = blockTree.AsReadOnly();
     _trieStore     = trieStore;
 }