From 7e7c2a37df3406023c368de2f065709d12ec4456 Mon Sep 17 00:00:00 2001 From: Andrei Maiboroda Date: Thu, 1 Aug 2024 21:20:53 +0200 Subject: [PATCH 1/4] Add EIP-4200 execution cases to EOF tracker --- tests/prague/eip7692_eof_v1/tracker.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/prague/eip7692_eof_v1/tracker.md b/tests/prague/eip7692_eof_v1/tracker.md index 7eed10efeb..05bae7c223 100644 --- a/tests/prague/eip7692_eof_v1/tracker.md +++ b/tests/prague/eip7692_eof_v1/tracker.md @@ -136,6 +136,18 @@ - [ ] RJUMPV out of section bounds (ethereum/tests: ./src/EOFTestsFiller/efValidation/EOF1_rjumpv_invalid_destination_Copier.json) - [ ] RJUMPV into immediate (ethereum/tests: ./src/EOFTestsFiller/efValidation/EOF1_rjumpv_invalid_destination_Copier.json) +### Execution + +- [ ] RJUMP forwards +- [ ] RJUMP backwards (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [ ] RJUMP with 0 offset (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [ ] RJUMPI forwards with condition true/false (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [ ] RJUMPI backwards with condition true/false (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [ ] RJUMPI with 0 offset with condition true/false (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [ ] RJUMPV with different case values (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [ ] RJUMPV with case value out of table bounds (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [ ] RJUMPV with max cases number (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) + ## EIP-4750: EOF - Functions ### Validation From 6d34cd52269eb16f18c5c96ac72ac1d73d4c44d2 Mon Sep 17 00:00:00 2001 From: Andrei Maiboroda Date: Thu, 1 Aug 2024 21:24:56 +0200 Subject: [PATCH 2/4] Add EIP-4750 execution cases to EOF tracker --- tests/prague/eip7692_eof_v1/tracker.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/prague/eip7692_eof_v1/tracker.md b/tests/prague/eip7692_eof_v1/tracker.md index 05bae7c223..8d9584c6d6 100644 --- a/tests/prague/eip7692_eof_v1/tracker.md +++ b/tests/prague/eip7692_eof_v1/tracker.md @@ -159,6 +159,12 @@ - [ ] Sections reachable from other sections, but not reachable from section 0 (ethereum/tests: src/EOFTestsFiller/efValidation/unreachable_code_sections_Copier.json) - [ ] RETF with maximum number of outputs (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml) +### Execution + +- [ ] CALLF/RETF execution (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/CALLF_RETF_ExecutionFiller.yml) +- [ ] Dispatch to CALLF to different functions based on calldata (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/CALLF_RETF_ExecutionFiller.yml) +- [ ] Maximum number of code sections, calling each section with CALLF (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/CALLF_RETF_ExecutionFiller.yml) + ## EIP-5450: EOF - Stack Validation ### Validation From 974384500f6db8008b866afb921dd51c129f686d Mon Sep 17 00:00:00 2001 From: Andrei Maiboroda Date: Thu, 1 Aug 2024 21:28:00 +0200 Subject: [PATCH 3/4] Add EIP-5450 execution case to EOF tracker --- tests/prague/eip7692_eof_v1/tracker.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/prague/eip7692_eof_v1/tracker.md b/tests/prague/eip7692_eof_v1/tracker.md index 8d9584c6d6..2ccac29e30 100644 --- a/tests/prague/eip7692_eof_v1/tracker.md +++ b/tests/prague/eip7692_eof_v1/tracker.md @@ -193,6 +193,11 @@ - [ ] All opcodes correctly account for stack inputs/outputs (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml) - [ ] Check that unreachable code is invalid after all terminating instructions (ethereum/tests: src/EOFTestsFiller/EIP5450/validInvalidFiller.yml) +### Execution + +- [ ] Max stack size (1024) in CALLF-ed function (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_CALLF_ExecutionFiller.yml) + + ## EIP-6206: EOF - JUMPF and non-returning functions ### Validation From c812634b3d1f30b1d60ca4f65ef13a1e5a0d7c63 Mon Sep 17 00:00:00 2001 From: Andrei Maiboroda Date: Tue, 6 Aug 2024 16:37:33 +0200 Subject: [PATCH 4/4] Mark EIP-4200 execution cases covered --- tests/prague/eip7692_eof_v1/tracker.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/prague/eip7692_eof_v1/tracker.md b/tests/prague/eip7692_eof_v1/tracker.md index 2ccac29e30..5efb665bd6 100644 --- a/tests/prague/eip7692_eof_v1/tracker.md +++ b/tests/prague/eip7692_eof_v1/tracker.md @@ -138,15 +138,15 @@ ### Execution -- [ ] RJUMP forwards -- [ ] RJUMP backwards (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) -- [ ] RJUMP with 0 offset (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) -- [ ] RJUMPI forwards with condition true/false (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) -- [ ] RJUMPI backwards with condition true/false (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) -- [ ] RJUMPI with 0 offset with condition true/false (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) -- [ ] RJUMPV with different case values (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) -- [ ] RJUMPV with case value out of table bounds (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) -- [ ] RJUMPV with max cases number (ethereum/tests: src/EIPTestsFiller/StateTests/stEOF/stEIP4200/EOF1_RJUMP_RJUMPI_RJUMPV_ExecutionFiller.yml) +- [x] RJUMP forwards (eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_positive_negative) +- [x] RJUMP backwards (eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_positive_negative) +- [x] RJUMP with 0 offset (eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_zero) +- [x] RJUMPI forwards with condition true/false (eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_condition_forwards) +- [x] RJUMPI backwards with condition true/false (eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_condition_backwards) +- [x] RJUMPI with 0 offset with condition true/false (eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_condition_zero) +- [x] RJUMPV with different case values (eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_condition) +- [x] RJUMPV with case value out of table bounds (eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_condition) +- [x] RJUMPV with max cases number (eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_condition eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_full_table*) ## EIP-4750: EOF - Functions