Relax condition for updating chain config

This allows for converting any ethereum mainnet node to PulseChain
as long as its height is less than the PrimordialPulse fork block.
This commit is contained in:
Shane Bammel 2023-03-04 14:18:50 -06:00
parent e3a86574ab
commit 52282be5b1

View File

@ -776,8 +776,8 @@ func (c *ChainConfig) checkCompatible(newcfg *ChainConfig, headNumber *big.Int,
if isForkBlockIncompatible(c.EIP158Block, newcfg.EIP158Block, headNumber) {
return newBlockCompatError("EIP158 fork block", c.EIP158Block, newcfg.EIP158Block)
}
// allow mismatching ChainID if we're at the PrimordialPulseBlock
if c.IsEIP158(headNumber) && !configBlockEqual(c.ChainID, newcfg.ChainID) && !newcfg.IsPrimordialPulseBlock(new(big.Int).Add(headNumber, common.Big1)) {
// allow mismatching ChainID if there is a PrimordialPulse block ahead
if c.IsEIP158(headNumber) && !configBlockEqual(c.ChainID, newcfg.ChainID) && !newcfg.PrimordialPulseAhead(headNumber) {
return newBlockCompatError("EIP158 chain ID", c.EIP158Block, newcfg.EIP158Block)
}
if isForkBlockIncompatible(c.ByzantiumBlock, newcfg.ByzantiumBlock, headNumber) {