feat(tests, spec-specs): raise EIP-7954 max code size to 64KiB - #2987
Conversation
b9194d3 to
7a55901
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #2987 +/- ##
===================================================
- Coverage 90.52% 81.28% -9.24%
===================================================
Files 535 620 +85
Lines 32895 36641 +3746
Branches 3022 3311 +289
===================================================
+ Hits 29778 29784 +6
- Misses 2595 6335 +3740
Partials 522 522
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
7a55901 to
27a19ea
Compare
danceratopz
left a comment
There was a problem hiding this comment.
Thanks! Will spend a bit more time on this tomorrow.
LouisTsai-Csie
left a comment
There was a problem hiding this comment.
Leave a note here, not blocking the merge but hope this could be added to the tracker or resolved in a follow-up PR.
build_unique_contract_initcode: this still uses the legacy max code size, since the deployed contract is based on Jochemnet, which is not updated to the latest spec.test_tstore_rollback_on_failed_create: the test logic is correct but the docstring description needs updated.test_codesize_valid: I believe this is stress testing theCODESIZEopcode but the new spec exceeds the old limit, we should update this too.test_create_address_warm_after_fail: there are parametrization that is touching the old code size limit.test_create_large_result,test_create_oo_gafter_max_codesize: this one is capped at Prauge, not sure why but it should support from Osaka to Amsterdam.- test_codecopy_benchmark: the max code size is hardcoded to 24576
- Spec class object under block access list is still using hardcoded 24576 (you could find it by searching
24_576). test_create2_code_size_limitandtest_create_code_size_limit: docstring needs updated,0x8000->0x10000
There are some cases marked with @pytest.mark.valid_before("EIP7954"), i think we should revisit these cases again later and try to make it more general for different max code size length.
Co-authored-by: danceratopz <danceratopz@gmail.com>
Added these to the EIP tracker issue: #2028 (comment) |
danceratopz
left a comment
There was a problem hiding this comment.
Thanks! LGTM! Will add a follow-up PR with a new test case.
🗒️ Description
Apply the EIP-7954 constant update from ethereum/EIPs#11540.
Required changes:
Initcodegenerator: widen the deploy-code-lengthPUSH2toPUSH3once code exceeds 64 KiB-1.test_max_code_size_fork_transition: deployparent.max_code_size() + 1so the code size boundary is exercised via the code deposit check in isolation from the initcode-size limit.test_cases.md: drop the staletest_max_initcode_size_gas_metering_via_createrow (moved to the EIP-8037 suite), documenttest_warm_after_failed_create_over_max_code_size, and update the transition test row.🔗 Related Issues or PRs
EIP-7954 tracker:
✅ Checklist
just statictype(scope):.Cute Animal Picture