- Sponsor
-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(meta): structure and content of execution-level differences #4
Comments
Some further thoughts:
|
Thanks! I created #5 to track the first bullet. For the second, I added a new "Account Types" section above. And for the third, I added that to the "Block Production" section |
Looking forward to evmdiff, this is a great start for some em-standardization! Even if only research, but maybe also like https://caniuse.com/ that lists all browser differences. And +1 on showing transaction types and precompiles. It always surprises me how many extra tx types and precompiles some EVM chains, even L2s have. And fwiw: Optimism has no custom precompiles, and only 1 extra tx type that is equivalent to EIP-1559 but without signature, for deposits from L1. And happy to answer any questions about the Optimism diff / link any useful specs. |
Thanks @protolambda, appreciate all that! 🙌 And good call on the similarities with caniuse, haven't used it in a while so will check it out for any good ideas |
Some references for 1559 parameters: OP Mainnet + Base + Zora (+ any other bedrock chain): https://community.optimism.io/docs/developers/bedrock/differences/#eip-1559 Polygon PoS Chain: Gnosis: Avalanche C-Chain: |
Some small requests:
|
Closing this issue as part of the move to automated data collection in #62. All new data to fetch will be tracked in separate issues instead of relying on keeping this meta issue up to date. Additionally:
This will exist once the refactor is merged, on the https://www.evmdiff.com/features page
Transaction types are tracked in #68. Precompiles are currently supported based on a fixed set of precompiles to test for.
1559 data is tracked as part of #31, unsure yet if its feasible to detect parameter values automatically. Other block production data is tracked in #69 |
This is a tracking issue, and will link out to specific issues below
Overview
The overall scope of the diff should be "things a smart contract developer or app developer needs to care about". For the most part, this means the diff is primarily an execution layer diff, as contract/app devs don't usually need to worry about consensus layer details. There are exceptions here, e.g. it's easier to manipulate TWAPs in PoS compared to PoW because an attacker knows when they'll be the block proposer for consecutive blocks. Things like this should be included.
Additionally, data should be focused on the current hard fork for a given chain. Including historical data when possible is great, but for now the plan it to keep it simple and focus on doing one thing—diff current EVM specs—really well.
Data Sections
The current plan for sections is below.
In terms of implementation, always start by implementing Ethereum mainnet's spec first, and other chains' specs can import/modify that. Alternatively, another chain may import a non-mainnet chain as it's template. However, mainnet is always the chain that should be independently defined.
Adding data for any of these sections should include references. Lean towards including too many vs. too few, so things are easy to validate.
@wagmi/chains
.evmVersion
supported by each chain in each section and overall #27References
The text was updated successfully, but these errors were encountered: