diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/BlockReplay.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/BlockReplay.java index 6f47b451a5e..04f2167b7a4 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/BlockReplay.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/BlockReplay.java @@ -85,7 +85,7 @@ public Optional beforeTransactionInBlock( action.performAction( transaction, header, blockchain, mutableWorldState, transactionProcessor)); } else { - final ProtocolSpec spec = protocolSchedule.getByBlockNumber(header.getNumber()); + final ProtocolSpec spec = protocolSchedule.getByBlockHeader(header); transactionProcessor.processTransaction( blockchain, mutableWorldState.updater(), @@ -107,7 +107,7 @@ public Optional afterTransactionInBlock( blockHash, transactionHash, (transaction, blockHeader, blockchain, worldState, transactionProcessor) -> { - final ProtocolSpec spec = protocolSchedule.getByBlockNumber(blockHeader.getNumber()); + final ProtocolSpec spec = protocolSchedule.getByBlockHeader(blockHeader); transactionProcessor.processTransaction( blockchain, worldState.updater(), @@ -139,7 +139,7 @@ private Optional performActionWithBlock( if (body == null) { return Optional.empty(); } - final ProtocolSpec protocolSpec = protocolSchedule.getByBlockNumber(header.getNumber()); + final ProtocolSpec protocolSpec = protocolSchedule.getByBlockHeader(header); final MainnetTransactionProcessor transactionProcessor = protocolSpec.getTransactionProcessor(); final BlockHeader previous = blockchain.getBlockHeader(header.getParentHash()).orElse(null); if (previous == null) { @@ -172,7 +172,7 @@ private Optional getBlock(final Hash blockHash) { private Optional getBadBlock(final Hash blockHash) { final ProtocolSpec protocolSpec = - protocolSchedule.getByBlockNumber(blockchain.getChainHeadHeader().getNumber()); + protocolSchedule.getByBlockHeader(blockchain.getChainHeadHeader()); return protocolSpec.getBadBlocksManager().getBadBlock(blockHash); } diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java index 833dfefc35e..1215a898c1b 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java @@ -113,7 +113,7 @@ public void setUp() throws Exception { when(previousBlockHeader.getStateRoot()).thenReturn(Hash.ZERO); when(worldStateArchive.getMutable(Hash.ZERO, null, false)) .thenReturn(Optional.of(mutableWorldState)); - when(protocolSchedule.getByBlockNumber(12)).thenReturn(protocolSpec); + when(protocolSchedule.getByBlockHeader(blockHeader)).thenReturn(protocolSpec); when(protocolSpec.getTransactionProcessor()).thenReturn(transactionProcessor); when(protocolSpec.getMiningBeneficiaryCalculator()).thenReturn(BlockHeader::getCoinbase); when(blockchain.getChainHeadHeader()).thenReturn(blockHeader);