| eof-devnet-0 | eof-devnet-1 | eof-devnet-2 | |
|---|---|---|---|
| Megaspec | ✅ Megaspec v0.1.1 | ✅ Megaspec main | 🚧 |
| EIP | ✅ EIP-7692 8580af |
✅ EIP-7692 | 🚧 |
| testing | ✅ EEST eip7692@v2.3.0 | ✅ EEST v4.3.0 | 🚧 |
| besu | ✅ | ✅ | |
| erigon | ✅ | ||
| ethereumjs | ✅ | ||
| evmone | ✅ | ✅ | |
| geth | ✅ | ✅ | |
| nethermind | ✅ | ||
| revm | ✅ | ||
| EELS | ✅ | ||
| solidity | ✅ | ||
| vyper |
NOTE: Compiling to EOF with solidity requires one to use the --experimental-eof-version 1 flag, more details here
| besu | erigon | ethereumjs | evmone | geth | nethermind | revm | EELS | |
|---|---|---|---|---|---|---|---|---|
EEST v4.3.0 - state_tests |
✅ | ✅ | ✅ | |||||
EEST v4.3.0 - blockchain_tests |
✅ | ✅ | ✅ | |||||
EEST v4.3.0 - eof_tests |
✅ | ✅ | ✅ | |||||
EEST eip7692@v2.3.0 - state_tests |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
EEST eip7692@v2.3.0 - blockchain_tests |
✅ | ✅ | ✅ | ✅ | ✅ | |||
EEST eip7692@v2.3.0 - eof_tests |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
[*] EEST eip7692@v2.2.0 - state_tests |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
[*] EEST eip7692@v2.2.0 - blockchain_tests |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
[*] EEST eip7692@v2.2.0 - eof_tests |
✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||
[*] tests v14.1 - EIPTests/StateTests/stEOF |
✅ | ✅ | ✅ | ✅ | ||||
tests v14.1 - EOFTests |
✅ | ✅ | ✅ | ✅ | ||||
evmone exported v0.13.0 - state_tests |
❓ | ✅ | ✅ | ✅ | ||||
evmone exported v0.13.0 - eof_tests |
❓ | ✅ | ✅ | ✅ |
[*] NOTE: old version, will be dropped once clients report back with recent version passing. NOTE: EEST eip7692@v2.3.0 release follows eof-devnet-0 spec NOTE: EEST v4.3.0 release follows eof-devnet-1 spec
Megaspec is ready and main source of truth.
Are aligned with the Megaspec, Meta EOF EIP at https://eips.ethereum.org/EIPS/eip-7692.
Erigon++ is a version of Erigon using Silkworm as the execution engine. Since Silkworm uses evmone, it receives the feature from upstream.
Current work-in-progress implementation resides in a fork at: https://github.com/shemnon/go-ethereum/tree/osaka-mega-eof
Nethermind currently has EOF support in the branch feature/evm/eof (PR#8176).
Current work-in-progress implementation split into PRs at: https://github.com/ethereum/solidity/pulls?q=is%3Aopen+is%3Apr+label%3AEOF
There is a contributor submitted PR from mid 2023 implementing some of EOF: vyperlang/vyper#3457
The WIP implementation of EOF on EELS can be found here: https://github.com/ethereum/execution-specs/tree/eips/osaka/eip-7692
-
EIP-3540 - EOF Container
-
EIP-3670 - Code Validation
- Validation - https://github.com/ethereum/tests/tree/develop/EOFTests/EIP3670
- Validation tests generated from evmone unit tests - https://github.com/ethereum/tests/tree/develop/EOFTests/efValidation
- these cover validation rules from all EIPs
-
EIP-4200 - Static Relative Jumps
-
EIP-4750 - Functions
-
EIP-5450 - Stack Validation
- Validation - https://github.com/ethereum/tests/tree/develop/EOFTests/EIP5450
- Validation tests generated from evmone unit tests - https://github.com/ethereum/tests/tree/develop/EOFTests/efStack
- https://github.com/ethereum/execution-spec-tests/tree/main/tests/osaka/eip7692_eof_v1/eip5450_stack
-
EIP-6206 - JUMPF and non-returning functions
-
EIP-7480 - Data section access
-
EIP-7069 - Revamped CALL instructions
-
EIP-7620 - EOF Create Instructions
-
EIP-7698 - EOF - Creation transaction
-
EIP-663 - SWAPN/DUPN/EXCHANGE