Example #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)
            });
        }
Example #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);
 }
Example #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);
            }
        }
 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);
Example #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));
 }
Example #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);
 }
Example #7
0
        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());
        }
Example #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;
 }
Example #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);
        }
Example #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);
        }
Example #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;
 }
Example #12
0
 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));
 }
Example #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));
 }
Example #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);
        }
        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));
        }
Example #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);
 }
Example #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;
 }
 public DictionaryContractDataStore(
     TCollection collection,
     IDataContract <T> dataContract,
     IBlockTree blockTree,
     IReceiptFinder receiptFinder,
     ILogManager logManager)
     : this(CreateContractDataStore(collection, dataContract, blockTree, receiptFinder, logManager))
 {
 }
Example #19
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;
 }
Example #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;
 }
Example #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();
        }
 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))
 {
 }
 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();
 }
 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();
 }
Example #25
0
 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));
 }
 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)
 {
 }
 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);
Example #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));
 }
Example #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);
 }
Example #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;
 }