@Test public void shouldUseCliqueWhenCliqueInConfig() { final GenesisConfigOptions config = fromConfigOptions(singletonMap("clique", emptyMap())); assertThat(config.isClique()).isTrue(); assertThat(config.getCliqueConfigOptions()).isNotSameAs(CliqueConfigOptions.DEFAULT); }
@Test public void shouldNotUseIbftIfIbftNotPresent() { final GenesisConfigOptions config = fromConfigOptions(emptyMap()); assertThat(config.isIbft()).isFalse(); assertThat(config.getIbftConfigOptions()).isSameAs(IbftConfigOptions.DEFAULT); }
@Test public void shouldSupportEmptyGenesisConfig() { final GenesisConfigOptions config = GenesisConfigFile.fromConfig("{}").getConfigOptions(); assertThat(config.isEthHash()).isFalse(); assertThat(config.isIbft()).isFalse(); assertThat(config.isClique()).isFalse(); assertThat(config.getHomesteadBlockNumber()).isEmpty(); }
if (configOptions.isEthHash()) { return MainnetPantheonController.init( storageProvider, metricsSystem, privacyParameters); } else if (configOptions.isRevisedIbft()) { return IbftPantheonController.init( storageProvider, nodeKeys, metricsSystem); } else if (configOptions.isIbft()) { return IbftLegacyPantheonController.init( storageProvider, nodeKeys, metricsSystem); } else if (configOptions.isClique()) { return CliquePantheonController.init( storageProvider,
@Test public void shouldNotReturnEmptyOptionalWhenBlockNumberNotSpecified() { final GenesisConfigOptions config = fromConfigOptions(emptyMap()); assertThat(config.getHomesteadBlockNumber()).isEmpty(); assertThat(config.getDaoForkBlock()).isEmpty(); assertThat(config.getTangerineWhistleBlockNumber()).isEmpty(); assertThat(config.getSpuriousDragonBlockNumber()).isEmpty(); assertThat(config.getByzantiumBlockNumber()).isEmpty(); assertThat(config.getConstantinopleBlockNumber()).isEmpty(); assertThat(config.getConstantinopleFixBlockNumber()).isEmpty(); }
@Test public void shouldLoadDevelopmentConfigFile() { final GenesisConfigFile config = GenesisConfigFile.development(); // Sanity check some basic properties to confirm this is the dev file. assertThat(config.getConfigOptions().isEthHash()).isTrue(); assertThat(config.getConfigOptions().getChainId()).hasValue(DEVELOPMENT_CHAIN_ID); assertThat(config.getAllocations().map(GenesisAllocation::getAddress)) .contains( "fe3b557e8fb62b89f4916b721be55ceb828dbd73", "627306090abab3a6e1400e9345bc60c78a8bef57", "f17f52151ebef6c7334fad080c5704d77216b732"); }
@Test public void shouldGetChainIdWhenSpecified() { final GenesisConfigOptions config = fromConfigOptions(singletonMap("chainId", 32)); assertThat(config.getChainId()).hasValue(32); }
private CliqueConfigOptions fromConfigOptions(final Map<String, Object> cliqueConfigOptions) { return GenesisConfigFile.fromConfig( new JsonObject(singletonMap("config", singletonMap("clique", cliqueConfigOptions)))) .getConfigOptions() .getCliqueConfigOptions(); } }
private IbftConfigOptions fromConfigOptions(final Map<String, Object> ibftConfigOptions) { return GenesisConfigFile.fromConfig( new JsonObject(singletonMap("config", singletonMap("ibft", ibftConfigOptions)))) .getConfigOptions() .getIbftConfigOptions(); } }
@Test public void shouldUseEthHashWhenEthHashInConfig() { final GenesisConfigOptions config = fromConfigOptions(singletonMap("ethash", emptyMap())); assertThat(config.isEthHash()).isTrue(); }
@Test public void shouldGetConstantinopleBlockNumber() { final GenesisConfigOptions config = fromConfigOptions(singletonMap("constantinopleBlock", 1000)); assertThat(config.getConstantinopleBlockNumber()).hasValue(1000); }
@Test public void shouldGetByzantiumBlockNumber() { final GenesisConfigOptions config = fromConfigOptions(singletonMap("byzantiumBlock", 1000)); assertThat(config.getByzantiumBlockNumber()).hasValue(1000); }
@Test public void shouldGetConstantinopleFixBlockNumber() { final GenesisConfigOptions config = fromConfigOptions(singletonMap("constantinopleFixBlock", 1000)); assertThat(config.getConstantinopleFixBlockNumber()).hasValue(1000); }
@Test public void shouldLoadMainnetConfigFile() { final GenesisConfigFile config = GenesisConfigFile.mainnet(); // Sanity check some basic properties to confirm this is the mainnet file. assertThat(config.getConfigOptions().isEthHash()).isTrue(); assertThat(config.getConfigOptions().getChainId()).hasValue(MAINNET_CHAIN_ID); assertThat(config.getAllocations().map(GenesisAllocation::getAddress)) .contains( "000d836201318ec6899a67540690382780743280", "001762430ea9c3a26e5749afdb70da5f78ddbb8c", "001d14804b399c6ef80e64576f657660804fec0b"); }
@Test public void predefinedNetworkIdsMustBeEqualToChainIds() { // check the network id against the one in mainnet genesis config // it implies that EthNetworkConfig.mainnet().getNetworkId() returns a value equals to the chain // id // in this network genesis file. GenesisConfigFile genesisConfigFile = GenesisConfigFile.fromConfig(EthNetworkConfig.getNetworkConfig(MAINNET).getGenesisConfig()); assertThat(genesisConfigFile.getConfigOptions().getChainId().isPresent()).isTrue(); assertThat(genesisConfigFile.getConfigOptions().getChainId().getAsInt()) .isEqualTo(EthNetworkConfig.getNetworkConfig(MAINNET).getNetworkId()); }
private int cliqueBlockPeriod(final PantheonNode node) { final String config = node.genesisConfigProvider().createGenesisConfig(emptyList()).get(); final GenesisConfigFile genesisConfigFile = GenesisConfigFile.fromConfig(config); final CliqueConfigOptions cliqueConfigOptions = genesisConfigFile.getConfigOptions().getCliqueConfigOptions(); return cliqueConfigOptions.getBlockPeriodSeconds(); }
genesisState.writeStateTo(worldStateArchive.getMutable(Hash.EMPTY_TRIE_HASH)); final IbftConfigOptions ibftConfig = genesisConfig.getConfigOptions().getIbftConfigOptions(); final EpochManager epochManager = new EpochManager(ibftConfig.getEpochLength());
@Test public void shouldNotUseEthHashIfEthHashNotPresent() { final GenesisConfigOptions config = fromConfigOptions(emptyMap()); assertThat(config.isEthHash()).isFalse(); }
@Test public void shouldNotUseCliqueIfCliqueNotPresent() { final GenesisConfigOptions config = fromConfigOptions(emptyMap()); assertThat(config.isClique()).isFalse(); assertThat(config.getCliqueConfigOptions()).isSameAs(CliqueConfigOptions.DEFAULT); }
genesisConfigFile .getConfigOptions() .getChainId() .orElse(EthNetworkConfig.getNetworkConfig(MAINNET).getNetworkId())); } catch (final DecodeException e) {