public AuRaSealer( IBlockTree blockTree, IAuRaValidator validator, IAuRaStepCalculator auRaStepCalculator, Address nodeAddress, IBasicWallet wallet, ILogManager logManager) { _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _validator = validator ?? throw new ArgumentNullException(nameof(validator)); _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator)); _nodeAddress = nodeAddress ?? throw new ArgumentNullException(nameof(nodeAddress)); _wallet = wallet ?? throw new ArgumentNullException(nameof(wallet)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); }
public AuRaBlockProducer(IPendingTxSelector pendingTxSelector, IBlockchainProcessor processor, IStateProvider stateProvider, ISealer sealer, IBlockTree blockTree, IBlockProcessingQueue blockProcessingQueue, ITimestamper timestamper, ILogManager logManager, IAuRaStepCalculator auRaStepCalculator, IAuraConfig config, Address nodeAddress) : base(pendingTxSelector, processor, sealer, blockTree, blockProcessingQueue, stateProvider, timestamper, logManager, "AuRa") { _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator)); _config = config ?? throw new ArgumentNullException(nameof(config)); _nodeAddress = nodeAddress ?? throw new ArgumentNullException(nameof(nodeAddress)); }
public void SetUp() { _auRaParameters = new AuRaParameters(); _auRaStepCalculator = Substitute.For <IAuRaStepCalculator>(); _logManager = NullLogManager.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); _sealValidator = new AuRaSealValidator(_auRaParameters, _auRaStepCalculator, Substitute.For <IAuRaValidator>(), _ethereumEcdsa, _logManager); }
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>(); _auRaValidator = Substitute.For <IAuRaValidator>(); var wallet = new DevWallet(new WalletConfig(), NullLogManager.Instance); _address = wallet.NewAccount(new NetworkCredential(string.Empty, "AAA").SecurePassword); _auRaSealer = new AuRaSealer( _blockTree, _auRaValidator, _auRaStepCalculator, _address, wallet, NullLogManager.Instance); }
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 AuRaBlockProducer( ITxSource txSource, IBlockchainProcessor processor, IStateProvider stateProvider, ISealer sealer, IBlockTree blockTree, IBlockProcessingQueue blockProcessingQueue, ITimestamper timestamper, ILogManager logManager, IAuRaStepCalculator auRaStepCalculator, IAuraConfig config, Address nodeAddress, IGasLimitOverride gasLimitOverride = null) : base(txSource, processor, sealer, blockTree, blockProcessingQueue, stateProvider, timestamper, logManager, "AuRa") { _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator)); _config = config ?? throw new ArgumentNullException(nameof(config)); CanProduce = _config.AllowAuRaPrivateChains; _nodeAddress = nodeAddress ?? throw new ArgumentNullException(nameof(nodeAddress)); _gasLimitOverride = gasLimitOverride; }
public AuRaBlockProducer(ITxPool txPool, IBlockchainProcessor blockchainProcessor, IBlockTree blockTree, ITimestamper timestamper, IAuRaStepCalculator auRaStepCalculator, Address nodeAddress, ISealer sealer, IStateProvider stateProvider, IAuraConfig config, ILogManager logManager) { _txPool = txPool ?? throw new ArgumentNullException(nameof(txPool)); _processor = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor)); _blockTree = blockTree ?? throw new ArgumentNullException(nameof(blockTree)); _timestamper = timestamper ?? throw new ArgumentNullException(nameof(timestamper)); _auRaStepCalculator = auRaStepCalculator ?? throw new ArgumentNullException(nameof(auRaStepCalculator)); _nodeAddress = nodeAddress ?? throw new ArgumentNullException(nameof(nodeAddress)); _sealer = sealer ?? throw new ArgumentNullException(nameof(sealer)); _stateProvider = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider)); _config = config ?? throw new ArgumentNullException(nameof(config)); _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager)); }
protected override IBlockProducer CreateTestBlockProducer(TxPoolTxSource txPoolTxSource, ISealer sealer, ITransactionComparerProvider transactionComparerProvider) { SealEngine = new MergeSealEngine(SealEngine, PoSSwitcher, SealValidator, LogManager); MiningConfig miningConfig = new() { Enabled = true, MinGasPrice = 0 }; TargetAdjustedGasLimitCalculator targetAdjustedGasLimitCalculator = new(SpecProvider, miningConfig); EthSyncingInfo = new EthSyncingInfo(BlockTree); PostMergeBlockProducerFactory blockProducerFactory = new( SpecProvider, SealEngine, Timestamper, miningConfig, LogManager, targetAdjustedGasLimitCalculator); BlockProducerEnvFactory blockProducerEnvFactory = new( DbProvider, BlockTree, ReadOnlyTrieStore, SpecProvider, BlockValidator, NoBlockRewards.Instance, ReceiptStorage, BlockPreprocessorStep, TxPool, transactionComparerProvider, miningConfig, LogManager); BlockProducerEnv blockProducerEnv = blockProducerEnvFactory.Create(); PostMergeBlockProducer postMergeBlockProducer = blockProducerFactory.Create(blockProducerEnv, BlockProductionTrigger); PostMergeBlockProducer = postMergeBlockProducer; PayloadPreparationService ??= new PayloadPreparationService( postMergeBlockProducer, new BlockImprovementContextFactory(BlockProductionTrigger, TimeSpan.FromSeconds(MergeConfig.SecondsPerSlot) ), TimerFactory.Default, LogManager, TimeSpan.FromSeconds(MergeConfig.SecondsPerSlot) ); IAuRaStepCalculator auraStepCalculator = Substitute.For <IAuRaStepCalculator>(); auraStepCalculator.TimeToNextStep.Returns(TimeSpan.FromMilliseconds(0)); FollowOtherMiners gasLimitCalculator = new(MainnetSpecProvider.Instance); AuRaBlockProducer preMergeBlockProducer = new( txPoolTxSource, blockProducerEnvFactory.Create().ChainProcessor, ((TestBlockchain)this).BlockProductionTrigger, State, sealer, BlockTree, Timestamper, auraStepCalculator, NullReportingValidator.Instance, new AuRaConfig(), gasLimitCalculator, SpecProvider, LogManager ); return(new MergeBlockProducer(preMergeBlockProducer, postMergeBlockProducer, PoSSwitcher)); } }
public AuraDifficultyCalculator(IAuRaStepCalculator auRaStepCalculator) { _auRaStepCalculator = auRaStepCalculator; }
public TestAuraProducer(ITxSource transactionSource, IBlockchainProcessor processor, IStateProvider stateProvider, ISealer sealer, IBlockTree blockTree, IBlockProcessingQueue blockProcessingQueue, ITimestamper timestamper, ILogManager logManager, IAuRaStepCalculator auRaStepCalculator, IAuraConfig config, Address nodeAddress) : base(transactionSource, processor, stateProvider, sealer, blockTree, blockProcessingQueue, timestamper, logManager, auRaStepCalculator, config, nodeAddress) { }