public BoostBlockImprovementContextFactory(IManualBlockProductionTrigger blockProductionTrigger, TimeSpan timeout, IBoostRelay boostRelay, IStateReader stateReader) { _blockProductionTrigger = blockProductionTrigger; _timeout = timeout; _boostRelay = boostRelay; _stateReader = stateReader; }
public AssembleBlockHandler(IBlockTree blockTree, IManualBlockProductionTrigger blockProductionTrigger, ManualTimestamper timestamper, ILogManager logManager) { _blockTree = blockTree; _blockProductionTrigger = blockProductionTrigger; _timestamper = timestamper; _logger = logManager.GetClassLogger(); }
public void Evm_mine() { IManualBlockProductionTrigger trigger = Substitute.For <IManualBlockProductionTrigger>(); EvmModule module = new EvmModule(trigger); string response = RpcTest.TestSerializedRequest <IEvmModule>(module, "evm_mine"); Assert.AreEqual("{\"jsonrpc\":\"2.0\",\"result\":true,\"id\":67}", response); trigger.Received().BuildBlock(); }
public DelayBlockImprovementContext( Block currentBestBlock, IManualBlockProductionTrigger blockProductionTrigger, TimeSpan timeout, BlockHeader parentHeader, PayloadAttributes payloadAttributes, int delay) { _cancellationTokenSource = new CancellationTokenSource(timeout); CurrentBestBlock = currentBestBlock; ImprovementTask = BuildBlock(blockProductionTrigger, parentHeader, payloadAttributes, delay, _cancellationTokenSource.Token); }
public BlockImprovementContext( Block currentBestBlock, IManualBlockProductionTrigger blockProductionTrigger, TimeSpan timeout, BlockHeader parentHeader, PayloadAttributes payloadAttributes) { _cancellationTokenSource = new CancellationTokenSource(timeout); CurrentBestBlock = currentBestBlock; ImprovementTask = blockProductionTrigger .BuildBlock(parentHeader, _cancellationTokenSource.Token, NullBlockTracer.Instance, payloadAttributes) .ContinueWith(SetCurrentBestBlock, _cancellationTokenSource.Token); }
public BoostBlockImprovementContext( Block currentBestBlock, IManualBlockProductionTrigger blockProductionTrigger, TimeSpan timeout, BlockHeader parentHeader, PayloadAttributes payloadAttributes, IBoostRelay boostRelay, IStateReader stateReader) { _boostRelay = boostRelay; _stateReader = stateReader; _cancellationTokenSource = new CancellationTokenSource(timeout); CurrentBestBlock = currentBestBlock; ImprovementTask = StartImprovingBlock(blockProductionTrigger, parentHeader, payloadAttributes, _cancellationTokenSource.Token); }
private async Task <Block?> BuildBlock( IManualBlockProductionTrigger blockProductionTrigger, BlockHeader parentHeader, PayloadAttributes payloadAttributes, int delay, CancellationToken cancellationToken) { Block?block = await blockProductionTrigger.BuildBlock(parentHeader, cancellationToken, NullBlockTracer.Instance, payloadAttributes); await Task.Delay(delay, cancellationToken); if (block is not null) { CurrentBestBlock = block; } return(CurrentBestBlock); }
private async Task <Block?> StartImprovingBlock( IManualBlockProductionTrigger blockProductionTrigger, BlockHeader parentHeader, PayloadAttributes payloadAttributes, CancellationToken cancellationToken) { payloadAttributes = await _boostRelay.GetPayloadAttributes(payloadAttributes, cancellationToken); UInt256 balanceBefore = _stateReader.GetAccount(parentHeader.StateRoot !, payloadAttributes.SuggestedFeeRecipient)?.Balance ?? UInt256.Zero; Block? block = await blockProductionTrigger.BuildBlock(parentHeader, cancellationToken, NullBlockTracer.Instance, payloadAttributes); if (block is not null) { CurrentBestBlock = block; UInt256 balanceAfter = _stateReader.GetAccount(block.StateRoot !, payloadAttributes.SuggestedFeeRecipient)?.Balance ?? UInt256.Zero; await _boostRelay.SendPayload(new BoostExecutionPayloadV1 { Block = new ExecutionPayloadV1(block), Profit = balanceAfter - balanceBefore }, cancellationToken); } return(CurrentBestBlock); }
public EvmModule(IManualBlockProductionTrigger?trigger) { _trigger = trigger ?? throw new ArgumentNullException(nameof(trigger)); }
public BlockImprovementContextFactory(IManualBlockProductionTrigger blockProductionTrigger, TimeSpan timeout) { _blockProductionTrigger = blockProductionTrigger; _timeout = timeout; }
public DelayBlockImprovementContextFactory(IManualBlockProductionTrigger productionTrigger, TimeSpan timeout, int delay) { _productionTrigger = productionTrigger; _timeout = timeout; _delay = delay; }