@Override public Integer getChainIdForNextBlock() { BlockchainConfig nextBlockConfig = config.getBlockchainConfig().getConfigForBlock(getBlockchain() .getBestBlock().getNumber() + 1); return nextBlockConfig.getChainId(); }
@Test public void testChainIdIsCorrectlySetOnEip160HFConfig() { GenesisConfig genesisConfig = new GenesisConfig(); genesisConfig.eip155Block = 10; JsonNetConfig config = new JsonNetConfig(genesisConfig); BlockchainConfig eip160 = config.getConfigForBlock(10); assertEquals("Default chainId must be '1'", new Integer(1), eip160.getChainId()); genesisConfig.chainId = 99; config = new JsonNetConfig(genesisConfig); eip160 = config.getConfigForBlock(10); assertEquals("chainId should be copied from genesis config", new Integer(99), eip160.getChainId()); }
@Test public void testByzantiumBlock() { GenesisConfig genesisConfig = new GenesisConfig(); genesisConfig.byzantiumBlock = 50; JsonNetConfig config = new JsonNetConfig(genesisConfig); assertBlockchainConfigExistsAt(config, 50, ByzantiumConfig.class); BlockchainConfig eip160 = config.getConfigForBlock(50); assertEquals("Default chainId must be '1'", new Integer(1), eip160.getChainId()); genesisConfig.chainId = 99; config = new JsonNetConfig(genesisConfig); eip160 = config.getConfigForBlock(50); assertEquals("chainId should be copied from genesis config", new Integer(99), eip160.getChainId()); }
@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()); }