@Test public void testConstantinopleBlock() { final int byzStart = 50; final int cnstStart = 60; GenesisConfig genesisConfig = new GenesisConfig(); genesisConfig.constantinopleBlock = cnstStart; JsonNetConfig config = new JsonNetConfig(genesisConfig); assertBlockchainConfigExistsAt(config, cnstStart, ConstantinopleConfig.class); BlockchainConfig blockchainConfig = config.getConfigForBlock(cnstStart); assertEquals("Default chainId must be '1'", new Integer(1), blockchainConfig.getChainId()); assertEquals("Reward should be 2 ETH", EtherUtil.convert(2, EtherUtil.Unit.ETHER), blockchainConfig.getConstants().getBLOCK_REWARD()); assertTrue("EIP-1014 skinny CREATE2 should be activated among others", blockchainConfig.eip1014()); genesisConfig.chainId = 99; config = new JsonNetConfig(genesisConfig); blockchainConfig = config.getConfigForBlock(cnstStart); assertEquals("chainId should be copied from genesis config", new Integer(99), blockchainConfig.getChainId()); assertEquals("Default Frontier reward is 5 ETH", EtherUtil.convert(5, EtherUtil.Unit.ETHER), config.getConfigForBlock(byzStart).getConstants().getBLOCK_REWARD()); genesisConfig.byzantiumBlock = byzStart; config = new JsonNetConfig(genesisConfig); // Respawn so we have Byzantium on byzStart instead of Frontier assertEquals("Reward should be 3 ETH in Byzantium", EtherUtil.convert(3, EtherUtil.Unit.ETHER), config.getConfigForBlock(byzStart).getConstants().getBLOCK_REWARD()); assertEquals("Reward should be changed to 2 ETH in Constantinople", EtherUtil.convert(2, EtherUtil.Unit.ETHER), config.getConfigForBlock(cnstStart).getConstants().getBLOCK_REWARD()); }