mirror of
https://github.com/vacp2p/linea-besu.git
synced 2026-01-09 15:37:54 -05:00
Add consolidationRequestContract in jsonGenesisConfig (#7647)
* Include consolidationRequestContract in jsonGenesisConfigOptions Signed-off-by: gconnect <agatevureglory@gmail.com> * Update changelog and ran spotlessApply Signed-off-by: gconnect <agatevureglory@gmail.com> * Rename consolidationRequestPredeployAddress to consolidationRequestContractAddress Signed-off-by: gconnect <agatevureglory@gmail.com> * Create request contract addresses class Signed-off-by: gconnect <agatevureglory@gmail.com> * Update method calls Signed-off-by: gconnect <agatevureglory@gmail.com> * Refactor RequestContractAddresses class and update method calls and test Signed-off-by: gconnect <agatevureglory@gmail.com> --------- Signed-off-by: gconnect <agatevureglory@gmail.com> Co-authored-by: Gabriel-Trintinalia <gabriel.trintinalia@consensys.net>
This commit is contained in:
@@ -539,4 +539,11 @@ public interface GenesisConfigOptions {
|
||||
* @return the deposit address
|
||||
*/
|
||||
Optional<Address> getDepositContractAddress();
|
||||
|
||||
/**
|
||||
* The consolidation request contract address
|
||||
*
|
||||
* @return the consolidation request contract address
|
||||
*/
|
||||
Optional<Address> getConsolidationRequestContractAddress();
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ public class JsonGenesisConfigOptions implements GenesisConfigOptions {
|
||||
private static final String WITHDRAWAL_REQUEST_CONTRACT_ADDRESS_KEY =
|
||||
"withdrawalrequestcontractaddress";
|
||||
private static final String DEPOSIT_CONTRACT_ADDRESS_KEY = "depositcontractaddress";
|
||||
private static final String CONSOLIDATION_REQUEST_CONTRACT_ADDRESS_KEY =
|
||||
"consolidationrequestcontractaddress";
|
||||
|
||||
private final ObjectNode configRoot;
|
||||
private final Map<String, String> configOverrides = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
|
||||
@@ -453,6 +455,13 @@ public class JsonGenesisConfigOptions implements GenesisConfigOptions {
|
||||
return inputAddress.map(Address::fromHexString);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Address> getConsolidationRequestContractAddress() {
|
||||
Optional<String> inputAddress =
|
||||
JsonUtil.getString(configRoot, CONSOLIDATION_REQUEST_CONTRACT_ADDRESS_KEY);
|
||||
return inputAddress.map(Address::fromHexString);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> asMap() {
|
||||
final ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
|
||||
@@ -504,6 +513,8 @@ public class JsonGenesisConfigOptions implements GenesisConfigOptions {
|
||||
getWithdrawalRequestContractAddress()
|
||||
.ifPresent(l -> builder.put("withdrawalRequestContractAddress", l));
|
||||
getDepositContractAddress().ifPresent(l -> builder.put("depositContractAddress", l));
|
||||
getConsolidationRequestContractAddress()
|
||||
.ifPresent(l -> builder.put("consolidationRequestContractAddress", l));
|
||||
|
||||
if (isClique()) {
|
||||
builder.put("clique", getCliqueConfigOptions().asMap());
|
||||
|
||||
@@ -467,6 +467,11 @@ public class StubGenesisConfigOptions implements GenesisConfigOptions, Cloneable
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Address> getConsolidationRequestContractAddress() {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* Homestead block stub genesis config options.
|
||||
*
|
||||
|
||||
@@ -382,6 +382,33 @@ class GenesisConfigOptionsTest {
|
||||
.containsValue(Address.ZERO);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldGetConsolidationRequestContractAddress() {
|
||||
final GenesisConfigOptions config =
|
||||
fromConfigOptions(
|
||||
singletonMap(
|
||||
"consolidationRequestContractAddress",
|
||||
"0x00000000219ab540356cbb839cbe05303d7705fa"));
|
||||
assertThat(config.getConsolidationRequestContractAddress())
|
||||
.hasValue(Address.fromHexString("0x00000000219ab540356cbb839cbe05303d7705fa"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldNotHaveConsolidationRequestContractAddressWhenEmpty() {
|
||||
final GenesisConfigOptions config = fromConfigOptions(emptyMap());
|
||||
assertThat(config.getConsolidationRequestContractAddress()).isEmpty();
|
||||
}
|
||||
|
||||
@Test
|
||||
void asMapIncludesConsolidationRequestContractAddress() {
|
||||
final GenesisConfigOptions config =
|
||||
fromConfigOptions(Map.of("consolidationRequestContractAddress", "0x0"));
|
||||
|
||||
assertThat(config.asMap())
|
||||
.containsOnlyKeys("consolidationRequestContractAddress")
|
||||
.containsValue(Address.ZERO);
|
||||
}
|
||||
|
||||
private GenesisConfigOptions fromConfigOptions(final Map<String, Object> configOptions) {
|
||||
final ObjectNode rootNode = JsonUtil.createEmptyObjectNode();
|
||||
final ObjectNode options = JsonUtil.objectNodeFromMap(configOptions);
|
||||
|
||||
Reference in New Issue
Block a user