narrows dependencies of BlockchainService (#7882)

Signed-off-by: jflo <justin+github@florentine.us>
pull/7877/head
Justin Florentine 3 days ago committed by GitHub
parent 37ea0282de
commit dc81641c58
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      acceptance-tests/dsl/src/main/java/org/hyperledger/besu/tests/acceptance/dsl/node/ThreadBesuNodeRunner.java
  2. 2
      besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java
  3. 18
      besu/src/main/java/org/hyperledger/besu/services/BlockchainServiceImpl.java

@ -327,7 +327,9 @@ public class ThreadBesuNodeRunner implements BesuNodeRunner {
@Singleton @Singleton
BlockchainServiceImpl provideBlockchainService(final BesuController besuController) { BlockchainServiceImpl provideBlockchainService(final BesuController besuController) {
BlockchainServiceImpl retval = new BlockchainServiceImpl(); BlockchainServiceImpl retval = new BlockchainServiceImpl();
retval.init(besuController.getProtocolContext(), besuController.getProtocolSchedule()); retval.init(
besuController.getProtocolContext().getBlockchain(),
besuController.getProtocolSchedule());
return retval; return retval;
} }

@ -1233,7 +1233,7 @@ public class BesuCommand implements DefaultCommandValues, Runnable {
private void startPlugins(final Runner runner) { private void startPlugins(final Runner runner) {
blockchainServiceImpl.init( blockchainServiceImpl.init(
besuController.getProtocolContext(), besuController.getProtocolSchedule()); besuController.getProtocolContext().getBlockchain(), besuController.getProtocolSchedule());
transactionSimulationServiceImpl.init( transactionSimulationServiceImpl.init(
besuController.getProtocolContext().getBlockchain(), besuController.getProtocolContext().getBlockchain(),
new TransactionSimulator( new TransactionSimulator(

@ -16,7 +16,6 @@ package org.hyperledger.besu.services;
import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.datatypes.Hash;
import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.datatypes.Wei;
import org.hyperledger.besu.ethereum.ProtocolContext;
import org.hyperledger.besu.ethereum.chain.MutableBlockchain; import org.hyperledger.besu.ethereum.chain.MutableBlockchain;
import org.hyperledger.besu.ethereum.core.Block; import org.hyperledger.besu.ethereum.core.Block;
import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule; import org.hyperledger.besu.ethereum.mainnet.ProtocolSchedule;
@ -40,7 +39,6 @@ import java.util.stream.Collectors;
@Unstable @Unstable
public class BlockchainServiceImpl implements BlockchainService { public class BlockchainServiceImpl implements BlockchainService {
private ProtocolContext protocolContext;
private ProtocolSchedule protocolSchedule; private ProtocolSchedule protocolSchedule;
private MutableBlockchain blockchain; private MutableBlockchain blockchain;
@ -50,13 +48,12 @@ public class BlockchainServiceImpl implements BlockchainService {
/** /**
* Initialize the Blockchain service. * Initialize the Blockchain service.
* *
* @param protocolContext the protocol context * @param blockchain the blockchain
* @param protocolSchedule the protocol schedule * @param protocolSchedule the protocol schedule
*/ */
public void init(final ProtocolContext protocolContext, final ProtocolSchedule protocolSchedule) { public void init(final MutableBlockchain blockchain, final ProtocolSchedule protocolSchedule) {
this.protocolContext = protocolContext;
this.protocolSchedule = protocolSchedule; this.protocolSchedule = protocolSchedule;
this.blockchain = protocolContext.getBlockchain(); this.blockchain = blockchain;
} }
/** /**
@ -67,25 +64,24 @@ public class BlockchainServiceImpl implements BlockchainService {
*/ */
@Override @Override
public Optional<BlockContext> getBlockByNumber(final long number) { public Optional<BlockContext> getBlockByNumber(final long number) {
return protocolContext return blockchain
.getBlockchain()
.getBlockByNumber(number) .getBlockByNumber(number)
.map(block -> blockContext(block::getHeader, block::getBody)); .map(block -> blockContext(block::getHeader, block::getBody));
} }
@Override @Override
public Hash getChainHeadHash() { public Hash getChainHeadHash() {
return protocolContext.getBlockchain().getChainHeadHash(); return blockchain.getChainHeadHash();
} }
@Override @Override
public BlockHeader getChainHeadHeader() { public BlockHeader getChainHeadHeader() {
return protocolContext.getBlockchain().getChainHeadHeader(); return blockchain.getChainHeadHeader();
} }
@Override @Override
public Optional<Wei> getNextBlockBaseFee() { public Optional<Wei> getNextBlockBaseFee() {
final var chainHeadHeader = protocolContext.getBlockchain().getChainHeadHeader(); final var chainHeadHeader = blockchain.getChainHeadHeader();
final var protocolSpec = final var protocolSpec =
protocolSchedule.getForNextBlockHeader(chainHeadHeader, System.currentTimeMillis()); protocolSchedule.getForNextBlockHeader(chainHeadHeader, System.currentTimeMillis());
return Optional.of(protocolSpec.getFeeMarket()) return Optional.of(protocolSpec.getFeeMarket())

Loading…
Cancel
Save