Skip to content

chore: remove hardcoded fork reference osaka and fetch latest fork #1337

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

Open
wants to merge 38 commits into
base: forks/osaka
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
1f5b621
Initial Osaka commit
SamWilsn Jun 25, 2025
268f67f
Implement EIP-7823
gurukamath May 9, 2025
7f4fc84
Implement EIP-7825
gurukamath May 9, 2025
0af9e4e
Implement EIP-7883
gurukamath May 9, 2025
30b1cd2
Implement EIP-7918
gurukamath May 9, 2025
ba4c566
Eip 7918 changes (#1273)
Carsons-Eels Jun 10, 2025
9f9bdb7
run osaka tests (#1290)
gurukamath Jun 20, 2025
0a1eebf
chore(osaka): update modexp eip-7883.
spencer-tb Jun 9, 2025
c47b68f
feat(osaka): add eip-7939 count leading zeros opcode (#1275)
spencer-tb Jun 24, 2025
96fed55
Implement EIP-7934 (#1289)
gurukamath Jun 25, 2025
f069e08
Implement EIP-7907
gurukamath May 9, 2025
4708376
introduce warm_code_addresses
gurukamath May 21, 2025
275d66a
feat: implement eip-7951
LouisTsai-Csie Jun 20, 2025
54aa418
Code review feedback
SamWilsn Jun 27, 2025
1d290e8
Bump version to 2.18.0rc2.dev1
SamWilsn Jun 27, 2025
0aa92a0
Grab latest EEST
SamWilsn Jun 28, 2025
f947ab1
Bump version to 2.18.0rc2
SamWilsn Jun 30, 2025
afdd3b7
Enhance account creation handling to respect EIP-6780 constraints in …
tomaswoj-eth May 22, 2025
9a5a6a8
Update docs to mention EIP-6780 (prague,osaka)
SamWilsn Jul 2, 2025
5614686
Make workflows agnostic to default branch name
SamWilsn Jul 3, 2025
bcee9d9
Changed to_address to to_address_masked
Antrikshgwal May 23, 2025
bfa4b14
improve readability of calculations
vedant-asati May 25, 2025
d12896a
fix: update EIP-7610 link to official EIP page
eeemmmmmm Jul 2, 2025
e6108ed
Refactor transaction validation to use MAX_INIT_CODE_SIZE instead of …
timsburk May 22, 2025
7b1694e
add specific exceptions on tests
souradeep-das Jun 19, 2025
16762ec
Turn vulture fully on, remove dead code, whitelist
Carsons-Eels Jun 2, 2025
7631b97
remove setup.cfg
souradeep-das Jul 2, 2025
e9e94ed
Switch to newer license metadata format
SamWilsn Jul 9, 2025
5bab4da
chore: fix some minor issues
bytetigers Jul 8, 2025
a91a505
update eip7951 gas
souradeep-das Jul 4, 2025
2171f03
update eip7918
souradeep-das Jul 7, 2025
07bd1f1
update clz gas cost
gurukamath Jul 9, 2025
2eb1ba4
Update EIP-7883: Change modexp gas calculation (#1318)
gurukamath Jul 17, 2025
58d6dca
eip-7825: update tx gas limit (#1317)
gurukamath Jul 17, 2025
20cdaf9
Remove redundant set_account call in json_to_state
reallesee Jul 15, 2025
951e054
feat(weld): add eest tests as a submodule
gurukamath Jul 18, 2025
6e993fc
chore: remove hardcoded fork reference osaka and fetch latest fork
Dyslex7c Jul 19, 2025
5240354
fix(tox): add windows command for EEST tests
Dyslex7c Jul 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[flake8]
dictionaries=en_US,python,technical
docstring-convention = all
extend-ignore =
U101
E203
D107
D200
D203
D205
D212
D400
D401
D410
D411
D412
D413
D414
D415
D416

extend-exclude =
doc/
tests/fixtures/

per-file-ignores =
tests/*:D100,D101,D103,D104,E501,SC100,SC200

unused-arguments-ignore-abstract-functions = true
unused-arguments-ignore-override-functions = true
unused-arguments-ignore-overload-functions = true
unused-arguments-ignore-dunder = true
4 changes: 3 additions & 1 deletion .github/workflows/gh-pages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- master
- mainnet
- 'forks/**'
workflow_dispatch:
pull_request:

Expand Down Expand Up @@ -41,7 +43,7 @@ jobs:
needs: build
runs-on: ubuntu-latest
name: "Deploy Documentation"
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
if: ${{ github.event_name == 'push' && github.ref_name == github.event.repository.default_branch }}

permissions:
pages: write
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- master
- mainnet
- 'forks/**'
workflow_dispatch:
pull_request:

Expand Down Expand Up @@ -43,7 +45,7 @@ jobs:

- name: Run Tox (CPython)
if: "${{ !startsWith(matrix.py, 'pypy') }}"
run: tox -e static,optimized,py3
run: tox -e static,py3_eest,optimized,py3

- name: Run Tox (PyPy)
if: "${{ startsWith(matrix.py, 'pypy') }}"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,5 @@ pip-delete-this-directory.txt
tests/execution-spec-generated-tests
tests/fixtures
tests/t8n_testdata

fixtures
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "eest_tests/execution-spec-tests"]
path = eest_tests/execution-spec-tests
url = https://github.com/ethereum/execution-spec-tests.git
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ Some clarifications were enabled without protocol releases:
| [EIP-2681](https://eips.ethereum.org/EIPS/eip-2681) | 0 |
| [EIP-3607](https://eips.ethereum.org/EIPS/eip-3607) | 0 |
| [EIP-7523](https://eips.ethereum.org/EIPS/eip-7523) | 15537394 |
| [EIP-7610](https://github.com/ethereum/EIPs/pull/8161) | 0 |
| [EIP-7610](https://eips.ethereum.org/EIPS/eip-7610) | 0 |


## Execution Specification (work-in-progress)
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ recommend using the [latest version](https://github.com/ethereum/execution-specs
### What Contitutes a Serious Issue

- Issues which affect any production EL client (geth, Nethermind, Besu, etc.)
- EELS has inadvertantly leaked secure information into the codebase
- EELS has inadvertently leaked secure information into the codebase

### What Does _Not_ Constitute a Serious Issue

Expand Down
8 changes: 8 additions & 0 deletions eest_tests/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import pytest
from ethereum_spec_tools.evm_tools.t8n.transition_tool import EELST8N
from ethereum_clis import TransitionTool


@pytest.hookimpl(tryfirst=True)
def pytest_configure(config):
TransitionTool.set_default_tool(EELST8N)
1 change: 1 addition & 0 deletions eest_tests/execution-spec-tests
Submodule execution-spec-tests added at 6cf510
2 changes: 1 addition & 1 deletion network-upgrades/mainnet-upgrades/cancun.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Execution layer changes included in the Network Upgrade.
* [EIP-7516: BLOBBASEFEE opcode](https://eips.ethereum.org/EIPS/eip-7516)


### Implementation Progresss
### Implementation Progress

Implementation status of Included EIPs across participating clients.

Expand Down
211 changes: 210 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,216 @@
[build-system]
requires = ["setuptools", "wheel"]
requires = ["setuptools>=77.0.3", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "ethereum-execution"
description = "Ethereum execution layer specification, provided as a Python package for tooling and testing"
readme = "README.md"
requires-python = ">=3.11"
dynamic = ["version"]
license = "CC0-1.0"
urls = { "Homepage" = "https://github.com/ethereum/execution-specs" }
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: Implementation :: PyPy",
"Programming Language :: Python :: Implementation :: CPython",
"Intended Audience :: Developers",
"Natural Language :: English",
]
dependencies = [
"pycryptodome>=3.22,<4",
"coincurve>=20,<21",
"typing_extensions>=4.4",
"py-ecc>=8.0.0b2,<9",
"ethereum-types>=0.2.1,<0.3",
"ethereum-rlp>=0.1.4,<0.2",
"cryptography>=45.0.1,<46",
"ethereum-execution-spec-tests @ git+https://github.com/ethereum/execution-spec-tests@6cf5107cee0eae1c2d4dd6a5ef5bc729aea6c379",
"ethereum-spec-evm-resolver @ git+https://github.com/petertdavies/ethereum-spec-evm-resolver",
]

[tool.setuptools]
package-dir = {"" = "src"}
packages = [
"ethereum_spec_tools",
"ethereum_spec_tools.evm_tools",
"ethereum_spec_tools.evm_tools.t8n",
"ethereum_spec_tools.evm_tools.b11r",
"ethereum_spec_tools.evm_tools.statetest",
"ethereum_spec_tools.evm_tools.loaders",
"ethereum_spec_tools.lint",
"ethereum_spec_tools.lint.lints",
"ethereum",
"ethereum.frontier",
"ethereum.frontier.utils",
"ethereum.frontier.vm",
"ethereum.frontier.vm.instructions",
"ethereum.frontier.vm.precompiled_contracts",
"ethereum.utils",
"ethereum.crypto",
"ethereum_optimized",
"ethereum.homestead",
"ethereum.homestead.utils",
"ethereum.homestead.vm",
"ethereum.homestead.vm.instructions",
"ethereum.homestead.vm.precompiled_contracts",
"ethereum.dao_fork",
"ethereum.dao_fork.utils",
"ethereum.dao_fork.vm",
"ethereum.dao_fork.vm.instructions",
"ethereum.dao_fork.vm.precompiled_contracts",
"ethereum.tangerine_whistle",
"ethereum.tangerine_whistle.utils",
"ethereum.tangerine_whistle.vm",
"ethereum.tangerine_whistle.vm.instructions",
"ethereum.tangerine_whistle.vm.precompiled_contracts",
"ethereum.spurious_dragon",
"ethereum.spurious_dragon.utils",
"ethereum.spurious_dragon.vm",
"ethereum.spurious_dragon.vm.instructions",
"ethereum.spurious_dragon.vm.precompiled_contracts",
"ethereum.byzantium",
"ethereum.byzantium.utils",
"ethereum.byzantium.vm",
"ethereum.byzantium.vm.instructions",
"ethereum.byzantium.vm.precompiled_contracts",
"ethereum.constantinople",
"ethereum.constantinople.utils",
"ethereum.constantinople.vm",
"ethereum.constantinople.vm.instructions",
"ethereum.constantinople.vm.precompiled_contracts",
"ethereum.istanbul",
"ethereum.istanbul.utils",
"ethereum.istanbul.vm",
"ethereum.istanbul.vm.instructions",
"ethereum.istanbul.vm.precompiled_contracts",
"ethereum.muir_glacier",
"ethereum.muir_glacier.utils",
"ethereum.muir_glacier.vm",
"ethereum.muir_glacier.vm.instructions",
"ethereum.muir_glacier.vm.precompiled_contracts",
"ethereum.berlin",
"ethereum.berlin.utils",
"ethereum.berlin.vm",
"ethereum.berlin.vm.instructions",
"ethereum.berlin.vm.precompiled_contracts",
"ethereum.london",
"ethereum.london.utils",
"ethereum.london.vm",
"ethereum.london.vm.instructions",
"ethereum.london.vm.precompiled_contracts",
"ethereum.arrow_glacier",
"ethereum.arrow_glacier.utils",
"ethereum.arrow_glacier.vm",
"ethereum.arrow_glacier.vm.instructions",
"ethereum.arrow_glacier.vm.precompiled_contracts",
"ethereum.gray_glacier",
"ethereum.gray_glacier.utils",
"ethereum.gray_glacier.vm",
"ethereum.gray_glacier.vm.instructions",
"ethereum.gray_glacier.vm.precompiled_contracts",
"ethereum.paris",
"ethereum.paris.utils",
"ethereum.paris.vm",
"ethereum.paris.vm.instructions",
"ethereum.paris.vm.precompiled_contracts",
"ethereum.shanghai",
"ethereum.shanghai.utils",
"ethereum.shanghai.vm",
"ethereum.shanghai.vm.instructions",
"ethereum.shanghai.vm.precompiled_contracts",
"ethereum.cancun",
"ethereum.cancun.utils",
"ethereum.cancun.vm",
"ethereum.cancun.vm.instructions",
"ethereum.cancun.vm.precompiled_contracts",
"ethereum.prague",
"ethereum.prague.utils",
"ethereum.prague.vm",
"ethereum.prague.vm.instructions",
"ethereum.prague.vm.precompiled_contracts",
"ethereum.prague.vm.precompiled_contracts.bls12_381",
"ethereum.osaka",
"ethereum.osaka.utils",
"ethereum.osaka.vm",
"ethereum.osaka.vm.instructions",
"ethereum.osaka.vm.precompiled_contracts",
"ethereum.osaka.vm.precompiled_contracts.bls12_381",
]

[tool.setuptools.package-data]
"ethereum" = [
"py.typed",
"assets/mainnet.json",
"assets/mainnet_genesis_alloc_rlp.hex",
"assets/cache_sizes_2048_epochs.json",
"assets/dataset_sizes_2048_epochs.json",
"assets/blocks/block_1.json",
"assets/blocks/block_1234567.json",
"assets/blocks/block_12964999.json",
]
"ethereum_spec_tools" = ["py.typed"]

[project.optional-dependencies]
test = [
"pytest>=8,<9",
"pytest-cov>=4.1.0,<5",
"pytest-xdist>=3.3.1,<4",
"GitPython>=3.1.0,<3.2",
"filelock>=3.15.1,<4",
"requests",
"requests-cache>=1.2.1,<2",
]

lint = [
"isort==5.13.2",
"mypy==1.14.1",
"black==23.12.0",
"flake8==6.1.0",
"flake8-bugbear==23.12.2",
"flake8-docstrings==1.7.0",
"flake8-spellcheck==0.28.0",
"flake8-unused-arguments==0.0.13",
"vulture==2.14.0",
]

tools = [
"platformdirs>=4.2,<5",
]
doc = [
"docc>=0.3.0,<0.4.0",
"fladrif>=0.2.0,<0.3.0",
]
optimized = [
"rust-pyspec-glue>=0.0.9,<0.1.0",
"ethash>=1.1.0,<2",
]


[tool.setuptools.dynamic]
version = { attr = "ethereum.__version__" }

[project.scripts]
ethereum-spec-lint = "ethereum_spec_tools.lint:main"
ethereum-spec-sync = "ethereum_spec_tools.sync:main"
ethereum-spec-new-fork = "ethereum_spec_tools.new_fork:main"
ethereum-spec-patch = "ethereum_spec_tools.patch_tool:main"
ethereum-spec-evm = "ethereum_spec_tools.evm_tools:main"
ethereum-spec-fill = "cli.pytest_commands.fill:fill"
ethereum-spec-forks = "ethereum_spec_tools.cli_forks:main"

[project.entry-points."docc.plugins"]
"ethereum_spec_tools.docc.discover" = "ethereum_spec_tools.docc:EthereumDiscover"
"ethereum_spec_tools.docc.build" = "ethereum_spec_tools.docc:EthereumBuilder"
"ethereum_spec_tools.docc.fix-indexes" = "ethereum_spec_tools.docc:FixIndexTransform"
"ethereum_spec_tools.docc.minimize-diffs" = "ethereum_spec_tools.docc:MinimizeDiffsTransform"

[project.entry-points."docc.plugins.html"]
"ethereum_spec_tools.docc:DiffNode" = "ethereum_spec_tools.docc:render_diff"
"ethereum_spec_tools.docc:BeforeNode" = "ethereum_spec_tools.docc:render_before_after"
"ethereum_spec_tools.docc:AfterNode" = "ethereum_spec_tools.docc:render_before_after"

[tool.isort]
profile = "black"
multi_line_output = 3
Expand Down
Loading