Skip to content

feat(spec-specs,tests): add the EIP-8272 recent root contract and its tests - #3738

Closed
AnkushinDaniil wants to merge 1 commit into
ethereum:eips/bogota/eip-8272from
AnkushinDaniil:daniil/eip8272-recent-roots-bogota
Closed

AnkushinDaniil wants to merge 1 commit into
ethereum:eips/bogota/eip-8272from
AnkushinDaniil:daniil/eip8272-recent-roots-bogota

Conversation

@AnkushinDaniil

Copy link
Copy Markdown

Description

Brings the EIP-8272 work from spencer-tb#71 onto the Bogota fork module, with the deployment model from ethereum/EIPs#12443: the recent root contract is an ordinary contract created by the pre-signed transaction in the EIP at 0x8272D9679689Ea2f307140CdF9002D27dC00Ffff. The fork installs nothing.

  • Specification: recent_roots.py moves to src/ethereum/forks/bogota with the address and the 320-byte runtime code from the EIP PR. apply_fork is untouched.
  • Testing framework: EIP8272 pre-allocates the contract with nonce 1 for state and blockchain tests, as feat(specs, tests): deploy the EIP-8141 expiry verifier as an ordinary contract #3729 does for the expiry verifier. No activation-install hook.
  • Tests: the suite moves to tests/bogota/eip8272_recent_roots. contract.py is gone, the code pin compares against the EIP bytes. VALIDATION_FIXED_GAS is 119 and VALIDATION_TUPLE_GAS is 296 for the new code. The install-at-transition test becomes test_fork_transition_leaves_recent_root_contract_unchanged. test_contract_deployment.py is new: it runs the EIP's transaction before, at and after the fork block, then publishes a root and verifies it.

fill tests/bogota/eip8272_recent_roots --fork Bogota: 173 passed. just typecheck lint-spec spellcheck deadcode format-check lint pass; I did not run lint-actions and lock-check. The reference spec pin is unchanged because the EIP PR is not merged.

Related Issues or PRs

Checklist

  • Ran fast static checks to avoid CI fails, see Code Standards & Verifying Changes: just static
  • PR title has the form <type>(<area>): <title>, where <type> and <area> come from an appropriate C-<type>, respectively A-<area>, label. The title should match the target squash commit message.

… tests

Co-authored-by: spencer-tb <spencer.tb@ethereum.org>
@AnkushinDaniil

Copy link
Copy Markdown
Author

superseded by #3740

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant