Closed mds1 closed 5 months ago
Helpfully, we have the raw JSON config files for these chains now https://github.com/ethereum-optimism/superchain-registry/pull/226 .
From a slack thread:
For both chains (Superlumio and Metal Sepolia) which fail the check at the moment, we are hardcoding "eip1559Denominator": 50 which doesn't match the value of 0 used in the supplied json files. I don't think this makes a difference to the genesis block hash validation check.
For Superlumio, it looks like you have hardfork times "missing". In the registry we allow chains to override superchain-wide hardfork times, but not with nil values. So by not specifying overrides for e.g. ecotone_time, the chain is inheriting the superchain-wide hardfork times (and a bunch of other values that are pinned to that hardfork time) when we reconstruct the genesis, and this affects the genesis block hash which we compute in the check.
On a local branch I hacked around with this by deactivating the hardfork times for the entire supechain, then the checks for these chains pass.
I can see two possible resolutions:
The key thing is if either canyon or ecotone is activated at or before genesis. this affects genesis block because of these lines https://github.com/ethereum-optimism/op-geth/blob/9617f2a7dd0ab80c468d6e474e3cc26be9572c97/core/genesis.go#L538-L552
Canyon implies Shanghai Ecotone implies Cancun
Here's one way of fixing this https://github.com/ethereum-optimism/superchain-registry/compare/gk/skip-default-hf-times?expand=1.
The idea is to not specify hardfork times in a superchain wide way any more. Every chain has to specify their own hard fork times.
Pros:
Cons:
Here is the PR where the behaviour was added https://github.com/ethereum-optimism/superchain-registry/pull/101
From https://github.com/ethereum-optimism/superchain-registry/pull/107#pullrequestreview-1998488407