gnosischain/specs

Add shapella fork details

Closed this issue · 2 comments

  • Explicitly list the EIPs included in Gnosis shapella fork
  • Link existing withdrawals spec

List confirmed in May 3rd core devs call:

  • EIP-170: Contract code size limit. Activated in Gnosis at a latter fork than Ethereum
  • EIP-3651: Warm COINBASE. Makes it a bit less expensive to access the coinbase address. Useful for flashbots for example
  • EIP-3855: PUSH0 instruction. Slight gas optimization when pushing a 0 to the stack
  • EIP-3860: Limit and meter initcode. Limits the size of deployed contracts and makes deployments a bit more expensive
  • EIP-4895: Beacon chain push withdrawals as operations** Gnosis modified
  • EIP-6049: Deprecate SELFDESTRUCT. Deprecates the SELFDESTRUCT opcode. Doesn’t actually change its behavior yet

I guess we should discuss how these should be added to the repo. My suggestion would be to create a file in the /consensus folder called capella.md and another one in /execution called shanghai.md where we list the EIPs added in those forks for Gnosis. In this case, all EIPs would appear in the shanghai file, and EIP-4895 would also appear in the capella one. That's the option I went with for #7.

Another possibility would be to have a more generic /hardforks folder where in this case we'd have a shapella.md file that contains all included EIPs. However, I think that making it clear which EIPs concern which layer makes it a bit clearer.

In both cases, the /consensus.md and /execution.md files would only contain configurations.

Approach sounds sensible 👍 FYI this repo was bootstrapped without a lot of though in organization, which we should figure out as it's progressively populated