Skip to content

fix(tests): EIP-7825: Pre-Osaka tests consuming tx gas above cap #1928

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 4 commits into
base: main
Choose a base branch
from

Conversation

marioevz
Copy link
Member

@marioevz marioevz commented Jul 19, 2025

🗒️ Description

Fixes all pre-Osaka python tests (outside of tests/cancun/eip4844_blobs which require further fixes) to use less gas than the new gas-limit-cap introduced by EIP-7825.

- tests/cancun/eip6780_selfdestruct/test_selfdestruct_revert.py

Reduced gas limit from 20 million to 500k (test was overusing gas).

- tests/istanbul/eip152_blake2/test_blake2.py

Test was using Environment().gas_limit to exhaust the block gas limit.
A new benchmark test must be developed to exhaust the gas limit with multiple txs (see #1927).

- tests/istanbul/eip1344_chainid/test_chainid.py

Reduced gas limit from 1 gigagas to 100k (test was overusing gas).

- tests/prague/eip6110_deposits/test_deposits.py

Deposit at deepest call depth possible, reduced the number of recursive calls to fit in a single tx.

- tests/prague/eip7002_el_triggerable_withdrawals/test_withdrawal_requests.py

Withdrawal at deepest call depth possible, reduced the number of recursive calls to fit in a single tx.

- tests/prague/eip7702_set_code_tx/test_gas.py

Single tx using as many authorizations as possible. Added track issue to add a new benchmark test (see #1927).

- tests/prague/eip7702_set_code_tx/test_set_code_txs.py

Recursive call into an authorized delegated account, the depth is now reduced due to the tx max gas limit.

- tests/prague/eip2537_bls_12_381_precompiles/test_bls12_pairing.py

Simple reduction of max gas that can be consumed for a test that pushes many times infinity to the pairing pre-compile.

- tests/prague/eip2537_bls_12_381_precompiles/test_bls12_variable_length_input_contracts.py

This is major rework on how the tests that cover the full precompile discount tables (G1 MSM, G2 MSM, and pairing).

We now use parametrize_by_fork to read the transaction gas limit cap and decide whether to split the discount table into multiple tests or a single one, and how many elements of the table per iteration it should test.

🔗 Related Issues or PRs

N/A.

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx --with=tox-uv tox -e lint,typecheck,spellcheck,markdownlint
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered adding an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).

@marioevz marioevz requested a review from spencer-tb July 19, 2025 00:40
@marioevz marioevz added scope:tests Scope: Changes EL client test cases in `./tests` fork:osaka Osaka hardfork labels Jul 19, 2025
@marioevz marioevz force-pushed the fix-pre-osaka-max-transaction-gas-limit-cap branch from 3bf6d86 to f670f90 Compare July 22, 2025 18:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fork:osaka Osaka hardfork scope:tests Scope: Changes EL client test cases in `./tests`
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant