Skip to content

Commit 575e970

Browse files
committed
chore(all): move eof from osaka to speculative.
1 parent fc9fd8e commit 575e970

File tree

85 files changed

+556
-525
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+556
-525
lines changed

.github/actions/build-fixtures/action.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ runs:
4343
env:
4444
tests_url: https://github.com/ethereum/tests/archive/refs/tags/v
4545
tests_version: 14.1
46-
output_path: blockchain_tests/osaka/eofwrap
46+
output_path: blockchain_tests/speculative/eofwrap
4747
- name: Generate fixtures using fill
4848
shell: bash
4949
run: |

.github/configs/feature.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ zkevm:
1717
solc: 0.8.21
1818
eip7692:
1919
evm-type: eip7692
20-
fill-params: --fork=Osaka ./tests/osaka
20+
fill-params: --fork=EOFv1 ./tests/speculative
2121
solc: 0.8.21
2222
eofwrap: true

.github/workflows/coverage.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
paths:
66
- "tests/**" # This triggers the workflow for any changes in the tests folder
77
- "!tests/prague/**" # exclude changes in 'tests/prague'
8-
- "!tests/osaka/**" # exclude changes in 'tests/osaka'
8+
- "!tests/speculative/**" # exclude changes in 'tests/speculative'
99

1010
jobs:
1111
evmone-coverage-diff:
@@ -35,7 +35,7 @@ jobs:
3535
tests:
3636
- tests/**/test_*.py
3737
- '!tests/prague/**'
38-
- '!tests/osaka/**'
38+
- '!tests/speculative/**'
3939
converted_tests:
4040
- converted-ethereum-tests.txt
4141

docs/CHANGELOG.md

+9
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ Test fixtures for use by clients are available for each release on the [Github r
88

99
### 💥 Breaking Change
1010

11+
#### EOF removed from Osaka
12+
13+
Following ["Interop Testing Call 34"](https://github.com/ethereum/pm/issues/1499) and the procedural EIPs [PR](https://github.com/ethereum/EIPs/pull/9703) the unfortunate decision to remove EOF from Osaka was made.
14+
15+
To accommodate EOF testing for the interim within EEST, its tests have migrated to a new `tests/speculative` folder. This folder will now contain tests for features that are not yet CFI'd in any fork. When EOF is CFI'd for a fork in the future, all tests will be moved from speculative to the respective future fork folder.
16+
17+
A new fork `EOFv1` has additionally been created to fill and consume EOF related fixtures. Client tests fillers such as `evmone` (and client consumers) will now need to use this fork name.
18+
1119
### 🛠️ Framework
1220

1321
- ✨ Add an empty account function for usage within fill and execute ([#1482](https://github.com/ethereum/execution-spec-tests/pull/1482)).
@@ -20,6 +28,7 @@ Test fixtures for use by clients are available for each release on the [Github r
2028

2129
- ✨ Engine API updates for Osaka, add `get_blobs` rpc method ([#1510](https://github.com/ethereum/execution-spec-tests/pull/1510)).
2230
- ✨ The EIP Version checker has been moved from `fill` and `execute` to it's own command-line tool `check_eip_versions` that gets ran daily as a Github Action ([#1537](https://github.com/ethereum/execution-spec-tests/pull/1537)).
31+
🔀 Add new `tests/speculative` folder, move EOF from Osaka to speculative, add `EOFv1` fork name for EOF tests ([#1507](https://github.com/ethereum/execution-spec-tests/pull/1507)).
2332

2433
### 🧪 Test Cases
2534

src/cli/eofwrap.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from ethereum_test_base_types.conversions import to_hex
2727
from ethereum_test_fixtures.blockchain import FixtureBlock, InvalidFixtureBlock
2828
from ethereum_test_fixtures.file import Fixtures
29-
from ethereum_test_forks.forks.forks import Osaka
29+
from ethereum_test_forks.forks.forks import EOFv1
3030
from ethereum_test_specs.blockchain import Block, BlockchainFixture, BlockchainTest
3131
from ethereum_test_specs.debugging import print_traces
3232
from ethereum_test_specs.eof import EOFParse
@@ -309,7 +309,7 @@ def _wrap_fixture(self, fixture: BlockchainFixture, traces: bool):
309309

310310
result = test.generate(
311311
t8n=t8n,
312-
fork=Osaka,
312+
fork=EOFv1,
313313
fixture_format=BlockchainFixture,
314314
)
315315
result.info["fixture-format"] = "blockchain_test"

src/ethereum_test_forks/__init__.py

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
Cancun,
99
Constantinople,
1010
ConstantinopleFix,
11+
EOFv1,
1112
Frontier,
1213
GrayGlacier,
1314
Homestead,
@@ -59,6 +60,7 @@
5960
"Byzantium",
6061
"Constantinople",
6162
"ConstantinopleFix",
63+
"EOFv1",
6264
"ForkRangeDescriptor",
6365
"Frontier",
6466
"GrayGlacier",

src/ethereum_test_forks/forks/forks.py

+19-2
Original file line numberDiff line numberDiff line change
@@ -1291,10 +1291,27 @@ def engine_get_payload_version(
12911291
"""From Osaka, get payload calls must use version 5."""
12921292
return 5
12931293

1294+
@classmethod
1295+
def is_deployed(cls) -> bool:
1296+
"""
1297+
Flag that the fork has not been deployed to mainnet; it is under active
1298+
development.
1299+
"""
1300+
return False
1301+
1302+
@classmethod
1303+
def solc_min_version(cls) -> Version:
1304+
"""Return minimum version of solc that supports this fork."""
1305+
return Version.parse("1.0.0") # set a high version; currently unknown
1306+
1307+
1308+
class EOFv1(Prague, solc_name="cancun"):
1309+
"""EOF fork."""
1310+
12941311
@classmethod
12951312
def evm_code_types(cls, block_number: int = 0, timestamp: int = 0) -> List[EVMCodeType]:
12961313
"""EOF V1 is supported starting from Osaka."""
1297-
return super(Osaka, cls).evm_code_types(
1314+
return super(EOFv1, cls).evm_code_types(
12981315
block_number,
12991316
timestamp,
13001317
) + [EVMCodeType.EOF_V1]
@@ -1308,7 +1325,7 @@ def call_opcodes(
13081325
(Opcodes.EXTCALL, EVMCodeType.EOF_V1),
13091326
(Opcodes.EXTSTATICCALL, EVMCodeType.EOF_V1),
13101327
(Opcodes.EXTDELEGATECALL, EVMCodeType.EOF_V1),
1311-
] + super(Osaka, cls).call_opcodes(block_number, timestamp)
1328+
] + super(EOFv1, cls).call_opcodes(block_number, timestamp)
13121329

13131330
@classmethod
13141331
def is_deployed(cls) -> bool:

src/pytest_plugins/filler/gen_test_doc/gen_test_doc.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ def add_directory_page_props(self) -> None:
491491
pytest_node_id=str(directory),
492492
source_code_url=generate_github_url(directory, branch_or_commit_or_tag=self.ref),
493493
# TODO: This won't work in all cases; should be from the development fork
494-
# Currently breaks for `tests/osaka/eip7692_eof_v1/index.md` # noqa: SC100
494+
# Currently breaks for `tests/speculative/eip7692_eof_v1/index.md` # noqa: SC100
495495
target_or_valid_fork=fork.capitalize(),
496496
package_name=get_import_path(directory), # init.py will be used for docstrings
497497
)
@@ -552,8 +552,8 @@ def sort_by_fork_deployment_and_path(x: PageProps) -> Tuple[Any, ...]:
552552
553553
- ("Test Case Reference",) -> tests/index.md
554554
- ("Test Case Reference", "Berlin") -> tests/berlin/index.md
555-
- ("Test Case Reference", "Osaka", "EIP-7692 EOF V1", tracker.md")
556-
tests/osaka/eip7692_eof_v1/tracker.md
555+
- ("Test Case Reference", "EIP-7692 EOF V1", tracker.md")
556+
tests/speculative/eip7692_eof_v1/tracker.md
557557
- ("Test Case Reference", "Shanghai", "EIP-3855 PUSH0", "Spec") ->
558558
tests/shanghai/eip3855_push0/spec.py
559559

0 commit comments

Comments
 (0)