Example #1
0
        public MultiValidator(
            AuRaParameters.Validator validator,
            IAuRaValidatorFactory validatorFactory,
            IBlockTree blockTree,
            IValidatorStore validatorStore,
            IAuRaBlockFinalizationManager finalizationManager,
            BlockHeader parentHeader,
            ILogManager logManager,
            bool forSealing = false)
        {
            if (validator == null)
            {
                throw new ArgumentNullException(nameof(validator));
            }
            if (validator.ValidatorType != AuRaParameters.ValidatorType.Multi)
            {
                throw new ArgumentException("Wrong validator type.", nameof(validator));
            }
            _validatorFactory = validatorFactory ?? throw new ArgumentNullException(nameof(validatorFactory));
            _blockTree        = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _validatorStore   = validatorStore ?? throw new ArgumentNullException(nameof(validatorStore));
            _forSealing       = forSealing;
            _logger           = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));

            _validators = validator.Validators?.Count > 0
                ? validator.Validators
                : throw new ArgumentException("Multi validator cannot be empty.", nameof(validator.Validators));

            SetFinalizationManager(finalizationManager, parentHeader);
        }
Example #2
0
        public void SetUp()
        {
            _validator           = GetValidator(AuRaParameters.ValidatorType.List);
            _innerValidators     = new SortedList <long, IAuRaValidator>();
            _factory             = Substitute.For <IAuRaValidatorFactory>();
            _logManager          = LimboLogs.Instance;
            _finalizationManager = Substitute.For <IBlockFinalizationManager>();
            _blockTree           = Substitute.For <IBlockTree>();
            _validatorStore      = Substitute.For <IValidatorStore>();
            _finalizationManager.LastFinalizedBlockLevel.Returns(0);

            _factory.CreateValidatorProcessor(default, default, default)