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); }
public ListBasedValidator(AuRaParameters.Validator validator, IValidSealerStrategy validSealerStrategy, IValidatorStore validatorStore, ILogManager logManager, long startBlockNumber) : base(validator, validSealerStrategy, validatorStore, logManager, startBlockNumber) { Validators = validator.Addresses?.Length > 0 ? validator.Addresses : throw new ArgumentException("Empty validator Addresses.", nameof(validator.Addresses)); }
public void SetUp() { _auRaParameters = new AuRaParameters(); _auRaStepCalculator = Substitute.For <IAuRaStepCalculator>(); _logManager = LimboLogs.Instance; _wallet = new DevWallet(new WalletConfig(), _logManager); _address = _wallet.NewAccount(new NetworkCredential(string.Empty, "AAA").SecurePassword); _ethereumEcdsa = Substitute.For <IEthereumEcdsa>(); _currentStep = 11; _auRaStepCalculator.CurrentStep.Returns(_currentStep); _reportingValidator = Substitute.For <IReportingValidator>(); _blockTree = Substitute.For <IBlockTree>(); _validSealerStrategy = Substitute.For <IValidSealerStrategy>(); _sealValidator = new AuRaSealValidator(_auRaParameters, _auRaStepCalculator, _blockTree, Substitute.For <IValidatorStore>(), _validSealerStrategy, _ethereumEcdsa, _logManager) { ReportingValidator = _reportingValidator }; }
protected AuRaValidatorProcessorExtension(AuRaParameters.Validator validator, IValidSealerStrategy validSealerStrategy, ILogManager logManager) { if (validator == null) { throw new ArgumentNullException(nameof(validator)); } _validSealerStrategy = validSealerStrategy ?? throw new ArgumentNullException(nameof(validSealerStrategy)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); }
public AuRaSealValidator(AuRaParameters parameters, IAuRaStepCalculator stepCalculator, IBlockTree blockTree, IValidatorStore validatorStore, IValidSealerStrategy validSealerStrategy, IEthereumEcdsa ecdsa, ILogManager logManager) { _parameters = parameters ?? throw new ArgumentNullException(nameof(parameters)); _stepCalculator = stepCalculator ?? throw new ArgumentNullException(nameof(stepCalculator)); _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _validatorStore = validatorStore ?? throw new ArgumentNullException(nameof(validatorStore)); _validSealerStrategy = validSealerStrategy ?? throw new ArgumentNullException(nameof(validSealerStrategy)); _ecdsa = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa)); _logger = logManager.GetClassLogger <AuRaSealValidator>() ?? throw new ArgumentNullException(nameof(logManager)); }
public void Initialize() { _chainLevelInfoRepository = Substitute.For <IChainLevelInfoRepository>(); _blockProcessor = Substitute.For <IBlockProcessor>(); _validatorStore = Substitute.For <IValidatorStore>(); _logManager = LimboLogs.Instance; _validSealerStrategy = Substitute.For <IValidSealerStrategy>(); _validatorStore.GetValidators(Arg.Any <long?>()).Returns(new Address[] { TestItem.AddressA, TestItem.AddressB, TestItem.AddressC }); }
protected AuRaValidatorProcessorExtension(AuRaParameters.Validator validator, IValidSealerStrategy validSealerStrategy, IValidatorStore validatorStore, ILogManager logManager, long startBlockNumber) { if (validator == null) { throw new ArgumentNullException(nameof(validator)); } ValidatorStore = validatorStore ?? throw new ArgumentNullException(nameof(validatorStore)); _validSealerStrategy = validSealerStrategy ?? throw new ArgumentNullException(nameof(validSealerStrategy)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); InitBlockNumber = startBlockNumber; }
public AuRaBlockFinalizationManager(IBlockTree blockTree, IChainLevelInfoRepository chainLevelInfoRepository, IBlockProcessor blockProcessor, IValidatorStore validatorStore, IValidSealerStrategy validSealerStrategy, ILogManager logManager) { _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _chainLevelInfoRepository = chainLevelInfoRepository ?? throw new ArgumentNullException(nameof(chainLevelInfoRepository)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); _blockProcessor = blockProcessor ?? throw new ArgumentNullException(nameof(blockProcessor)); _validatorStore = validatorStore ?? throw new ArgumentNullException(nameof(validatorStore)); _validSealerStrategy = validSealerStrategy ?? throw new ArgumentNullException(nameof(validSealerStrategy)); _blockProcessor.BlockProcessed += OnBlockProcessed; Initialize(); }
public void Initialize() { _chainLevelInfoRepository = Substitute.For <IChainLevelInfoRepository>(); _blockProcessor = Substitute.For <IBlockProcessor>(); _validatorStore = Substitute.For <IValidatorStore>(); _logManager = LimboLogs.Instance; _validSealerStrategy = Substitute.For <IValidSealerStrategy>(); _validatorStore.GetValidators().Returns(new Address[] { TestItem.AddressA, TestItem.AddressB, TestItem.AddressC }); Rlp.Decoders[typeof(BlockInfo)] = new BlockInfoDecoder(true); }
protected AuRaValidatorBase( IValidSealerStrategy validSealerStrategy, IValidatorStore validatorStore, ILogManager logManager, long startBlockNumber, bool forSealing) { ValidatorStore = validatorStore ?? throw new ArgumentNullException(nameof(validatorStore)); _validSealerStrategy = validSealerStrategy ?? throw new ArgumentNullException(nameof(validSealerStrategy)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); InitBlockNumber = startBlockNumber; ForSealing = forSealing; }
public ReportingContractBasedValidator(AuRaParameters.Validator validator, IStateProvider stateProvider, IAbiEncoder abiEncoder, ITransactionProcessor transactionProcessor, IReadOnlyTransactionProcessorSource readOnlyTransactionProcessorSource, IBlockTree blockTree, IReceiptStorage receiptStorage, IValidatorStore validatorStore, IValidSealerStrategy validSealerStrategy, ILogManager logManager, long startBlockNumber) : base(validator, stateProvider, abiEncoder, transactionProcessor, readOnlyTransactionProcessorSource, blockTree, receiptStorage, validatorStore, validSealerStrategy, logManager, startBlockNumber) { }
public ListBasedValidator(AuRaParameters.Validator validator, IValidSealerStrategy validSealerStrategy, IValidatorStore validatorStore, ILogManager logManager, long startBlockNumber, bool forSealing = false) : base(validSealerStrategy, validatorStore, logManager, startBlockNumber, forSealing) { if (validator == null) { throw new ArgumentNullException(nameof(validator)); } Validators = validator.Addresses?.Length > 0 ? validator.Addresses : throw new ArgumentException("Empty validator Addresses.", nameof(validator.Addresses)); InitValidatorStore(); }
public AuRaSealer( IBlockTree blockTree, IValidatorStore validatorStore, IAuRaStepCalculator auRaStepCalculator, ISigner signer, IValidSealerStrategy validSealerStrategy, ILogManager logManager) { _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _validatorStore = validatorStore ?? throw new ArgumentNullException(nameof(validatorStore)); _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator)); _signer = signer ?? throw new ArgumentNullException(nameof(signer)); _validSealerStrategy = validSealerStrategy ?? throw new ArgumentNullException(nameof(validSealerStrategy)); _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, IBlockFinalizationManager finalizationManager, BlockHeader parentHeader, ILogManager logManager, long startBlockNumber, bool forSealing = false) : base(validator, stateProvider, abiEncoder, transactionProcessor, readOnlyTransactionProcessorSource, blockTree, receiptFinder, validatorStore, validSealerStrategy, finalizationManager, parentHeader, logManager, startBlockNumber, forSealing) { }
public AuRaSealer( IBlockTree blockTree, IValidatorStore validatorStore, IAuRaStepCalculator auRaStepCalculator, Address nodeAddress, IBasicWallet wallet, IValidSealerStrategy validSealerStrategy, ILogManager logManager) { _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _validatorStore = validatorStore ?? throw new ArgumentNullException(nameof(validatorStore)); _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator)); _nodeAddress = nodeAddress ?? throw new ArgumentNullException(nameof(nodeAddress)); _wallet = wallet ?? throw new ArgumentNullException(nameof(wallet)); _validSealerStrategy = validSealerStrategy ?? throw new ArgumentNullException(nameof(validSealerStrategy)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); }
public void Setup() { _blockTree = Substitute.For <IBlockTree>(); _headStep = 10; _blockTree.Head.Returns(Build.A.Block.WithHeader(Build.A.BlockHeader.WithHash(Keccak.Compute("hash")).WithAura(_headStep, Array.Empty <byte>()).TestObject).TestObject); _auRaStepCalculator = Substitute.For <IAuRaStepCalculator>(); _validatorStore = Substitute.For <IValidatorStore>(); _validSealerStrategy = Substitute.For <IValidSealerStrategy>(); var signer = new Signer(ChainId.Mainnet, Build.A.PrivateKey.TestObject, LimboLogs.Instance); _address = signer.Address; _auRaSealer = new AuRaSealer( _blockTree, _validatorStore, _auRaStepCalculator, signer, _validSealerStrategy, LimboLogs.Instance); }
public ContractBasedValidator( IValidatorContract validatorContract, IBlockTree blockTree, IReceiptFinder receiptFinder, IValidatorStore validatorStore, IValidSealerStrategy validSealerStrategy, IAuRaBlockFinalizationManager finalizationManager, BlockHeader parentHeader, ILogManager logManager, long startBlockNumber, long posdaoTransition = long.MaxValue, bool forSealing = false) : base(validSealerStrategy, validatorStore, logManager, startBlockNumber, forSealing) { BlockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _receiptFinder = receiptFinder ?? throw new ArgumentNullException(nameof(receiptFinder)); _posdaoTransition = posdaoTransition; _logger = logManager?.GetClassLogger <ContractBasedValidator>() ?? throw new ArgumentNullException(nameof(logManager)); ValidatorContract = validatorContract ?? throw new ArgumentNullException(nameof(validatorContract)); SetPendingValidators(LoadPendingValidators()); SetFinalizationManager(finalizationManager, parentHeader ?? BlockTree.Head?.Header); }
public void Setup() { _blockTree = Substitute.For <IBlockTree>(); _headStep = 10; _blockTree.Head.Returns(Build.A.BlockHeader.WithHash(Keccak.Compute("hash")).WithAura(_headStep, Bytes.Empty).TestObject); _auRaStepCalculator = Substitute.For <IAuRaStepCalculator>(); _validatorStore = Substitute.For <IValidatorStore>(); _validSealerStrategy = Substitute.For <IValidSealerStrategy>(); var wallet = new DevWallet(new WalletConfig(), LimboLogs.Instance); _address = wallet.NewAccount(new NetworkCredential(string.Empty, "AAA").SecurePassword); _auRaSealer = new AuRaSealer( _blockTree, _validatorStore, _auRaStepCalculator, _address, wallet, _validSealerStrategy, LimboLogs.Instance); }