Skip to content

Commit

Permalink
Refactor RequestContractAddresses class and update method calls and test
Browse files Browse the repository at this point in the history
Signed-off-by: gconnect <agatevureglory@gmail.com>
  • Loading branch information
gconnect committed Sep 20, 2024
1 parent b938f79 commit 48ed827
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,8 @@
*/
package org.hyperledger.besu.ethereum.mainnet;

import static org.hyperledger.besu.ethereum.mainnet.requests.ConsolidationRequestProcessor.CONSOLIDATION_REQUEST_CONTRACT_ADDRESS;
import static org.hyperledger.besu.ethereum.mainnet.requests.DepositRequestProcessor.DEFAULT_DEPOSIT_CONTRACT_ADDRESS;
import static org.hyperledger.besu.ethereum.mainnet.requests.MainnetRequestsValidator.pragueRequestsProcessors;
import static org.hyperledger.besu.ethereum.mainnet.requests.MainnetRequestsValidator.pragueRequestsValidator;
import static org.hyperledger.besu.ethereum.mainnet.requests.WithdrawalRequestProcessor.DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS;

import org.hyperledger.besu.config.GenesisConfigOptions;
import org.hyperledger.besu.config.PowAlgorithm;
Expand Down Expand Up @@ -769,23 +766,8 @@ static ProtocolSpecBuilder pragueDefinition(
final boolean isParallelTxProcessingEnabled,
final MetricsSystem metricsSystem) {

final Address withdrawalRequestContractAddress =
genesisConfigOptions
.getWithdrawalRequestContractAddress()
.orElse(DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS);
final Address depositContractAddress =
genesisConfigOptions.getDepositContractAddress().orElse(DEFAULT_DEPOSIT_CONTRACT_ADDRESS);

final Address consolidationRequestContractAddress =
genesisConfigOptions
.getConsolidationRequestContractAddress()
.orElse(CONSOLIDATION_REQUEST_CONTRACT_ADDRESS);

RequestContractAddresses requestContractAddresses =
new RequestContractAddresses(
withdrawalRequestContractAddress,
depositContractAddress,
consolidationRequestContractAddress);
RequestContractAddresses.fromGenesis(genesisConfigOptions);

return cancunDefinition(
chainId,
Expand All @@ -807,9 +789,7 @@ static ProtocolSpecBuilder pragueDefinition(
.precompileContractRegistryBuilder(MainnetPrecompiledContractRegistries::prague)

// EIP-7002 Withdrawals / EIP-6610 Deposits / EIP-7685 Requests
.requestsValidator(pragueRequestsValidator(requestContractAddresses.getWithdrawalRequestContractAddress()))
.requestsValidator(pragueRequestsValidator(requestContractAddresses.getDepositContractAddress()))
.requestsValidator(pragueRequestsValidator(requestContractAddresses.getConsolidationRequestContractAddress()))
.requestsValidator(pragueRequestsValidator(requestContractAddresses))
// EIP-7002 Withdrawals / EIP-6610 Deposits / EIP-7685 Requests
.requestProcessorCoordinator(pragueRequestsProcessors(requestContractAddresses))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,17 @@
*/
package org.hyperledger.besu.ethereum.mainnet.requests;

import org.hyperledger.besu.datatypes.Address;
import org.hyperledger.besu.datatypes.RequestType;

public class MainnetRequestsValidator {
public static RequestsValidatorCoordinator pragueRequestsValidator(
final Address depositContractAddress) {
final RequestContractAddresses requestContractAddresses) {
return new RequestsValidatorCoordinator.Builder()
.addValidator(RequestType.WITHDRAWAL, new WithdrawalRequestValidator())
.addValidator(RequestType.CONSOLIDATION, new ConsolidationRequestValidator())
.addValidator(RequestType.DEPOSIT, new DepositRequestValidator(depositContractAddress))
.addValidator(
RequestType.DEPOSIT,
new DepositRequestValidator(requestContractAddresses.getDepositContractAddress()))
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
*/
package org.hyperledger.besu.ethereum.mainnet.requests;

import static org.hyperledger.besu.ethereum.mainnet.requests.ConsolidationRequestProcessor.CONSOLIDATION_REQUEST_CONTRACT_ADDRESS;
import static org.hyperledger.besu.ethereum.mainnet.requests.DepositRequestProcessor.DEFAULT_DEPOSIT_CONTRACT_ADDRESS;
import static org.hyperledger.besu.ethereum.mainnet.requests.WithdrawalRequestProcessor.DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS;

import org.hyperledger.besu.config.GenesisConfigOptions;
import org.hyperledger.besu.datatypes.Address;

public class RequestContractAddresses {
Expand All @@ -30,6 +35,18 @@ public RequestContractAddresses(
this.consolidationRequestContractAddress = consolidationRequestContractAddress;
}

public static RequestContractAddresses fromGenesis(
final GenesisConfigOptions genesisConfigOptions) {
return new RequestContractAddresses(
genesisConfigOptions
.getWithdrawalRequestContractAddress()
.orElse(DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS),
genesisConfigOptions.getDepositContractAddress().orElse(DEFAULT_DEPOSIT_CONTRACT_ADDRESS),
genesisConfigOptions
.getConsolidationRequestContractAddress()
.orElse(CONSOLIDATION_REQUEST_CONTRACT_ADDRESS));
}

public Address getWithdrawalRequestContractAddress() {
return withdrawalRequestContractAddress;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@
import static java.util.Collections.emptyList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode.NONE;
import static org.hyperledger.besu.ethereum.mainnet.requests.ConsolidationRequestProcessor.CONSOLIDATION_REQUEST_CONTRACT_ADDRESS;
import static org.hyperledger.besu.ethereum.mainnet.requests.DepositRequestProcessor.DEFAULT_DEPOSIT_CONTRACT_ADDRESS;
import static org.hyperledger.besu.ethereum.mainnet.requests.MainnetRequestsValidator.pragueRequestsValidator;
import static org.hyperledger.besu.ethereum.mainnet.requests.WithdrawalRequestProcessor.DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.lenient;

Expand All @@ -31,6 +33,7 @@
import org.hyperledger.besu.ethereum.core.BlockchainSetupUtil;
import org.hyperledger.besu.ethereum.core.Request;
import org.hyperledger.besu.ethereum.core.WithdrawalRequest;
import org.hyperledger.besu.ethereum.mainnet.requests.RequestContractAddresses;
import org.hyperledger.besu.ethereum.mainnet.requests.RequestsValidatorCoordinator;
import org.hyperledger.besu.evm.log.LogsBloomFilter;

Expand All @@ -52,9 +55,13 @@ class PragueRequestsValidatorTest {
@Mock private ProtocolSchedule protocolSchedule;
@Mock private ProtocolSpec protocolSpec;
@Mock private WithdrawalsValidator withdrawalsValidator;
private final RequestContractAddresses requestContractAddresses =
new RequestContractAddresses(
DEFAULT_WITHDRAWAL_REQUEST_CONTRACT_ADDRESS,
DEFAULT_DEPOSIT_CONTRACT_ADDRESS,
CONSOLIDATION_REQUEST_CONTRACT_ADDRESS);

RequestsValidatorCoordinator requestValidator =
pragueRequestsValidator(DEFAULT_DEPOSIT_CONTRACT_ADDRESS);
RequestsValidatorCoordinator requestValidator = pragueRequestsValidator(requestContractAddresses);

@BeforeEach
public void setUp() {
Expand Down

0 comments on commit 48ed827

Please sign in to comment.