| Crates.io | eot |
| lib.rs | eot |
| version | 0.1.5 |
| created_at | 2025-06-29 03:31:25.706101+00 |
| updated_at | 2025-07-11 00:39:41.696864+00 |
| description | EVM opcodes library for all Ethereum forks, with complete fork inheritance, validation, and metadata |
| homepage | https://github.com/g4titanx/eot |
| repository | https://github.com/g4titanx/eot |
| max_upload_size | |
| id | 1730315 |
| size | 594,315 |
EVM opcodes library for all Ethereum forks, with complete fork inheritance, validation, and metadata
eot is an EVM opcode table library that provides complete opcode metadata, fork inheritance, and validation for all Ethereum hard forks from Frontier to Cancun. It offers both a unified interface for simple opcode lookup and fork-specific implementations that accurately reflect the evolution of the EVM instruction set. You can query opcode properties like gas costs, stack behavior, and descriptions, check opcode availability across different forks, validate bytecode sequences, and build EVM analysis tools with confidence that the data matches each fork's specifications exactly.
See the examples/ directory for practical demonstrations of opcode queries, fork compatibility checking, and gas analysis workflows.
| Fork | Block | Date | New Opcodes | Status |
|---|---|---|---|---|
| Frontier | 0 | Jul 2015 | Base set (140+ opcodes) | ✅ |
| Homestead | 1,150,000 | Mar 2016 | DELEGATECALL |
✅ |
| Byzantium | 4,370,000 | Oct 2017 | REVERT, RETURNDATASIZE, RETURNDATACOPY, STATICCALL |
✅ |
| Constantinople | 7,280,000 | Feb 2019 | SHL, SHR, SAR, CREATE2, EXTCODEHASH |
✅ |
| Istanbul | 9,069,000 | Dec 2019 | CHAINID, SELFBALANCE |
✅ |
| Berlin | 12,244,000 | Apr 2021 | Gas cost changes | ✅ |
| London | 12,965,000 | Aug 2021 | BASEFEE |
✅ |
| Shanghai | 17,034,870 | Apr 2023 | PUSH0 |
✅ |
| Cancun | 19,426,587 | Mar 2024 | TLOAD, TSTORE, MCOPY, BLOBHASH, BLOBBASEFEE |
✅ |
Adding a new fork:
Fork enum in lib.rspython3 generate_forks.pyFixing opcode data:
generate_forks.pyAdding features:
traits.rs# In generate_forks.py, add to get_historical_additions():
'prague': """0x61,NEWOP,5,1,1,New operation,StackMemoryStorageFlow,Prague,9999"""
Then:
python3 generate_forks.py
cargo tt