Skip to content

Always charge for EVM precompile configuration reads#3037

Open
theodorebugnet wants to merge 1 commit into
theodore/multisig-upgradefrom
theodore/fix-evm-precompile-gas-charging
Open

Always charge for EVM precompile configuration reads#3037
theodorebugnet wants to merge 1 commit into
theodore/multisig-upgradefrom
theodore/fix-evm-precompile-gas-charging

Conversation

@theodorebugnet

@theodorebugnet theodorebugnet commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes EVM custom precompile gas charging:

  1. Revert/clean-up Add global activation height for precompiles to avoid a state read checking their individual activation state #3036 after the hard fork
  2. Remove the compatibility activation height for hard-fork runtimes and always load the stored enabled-precompile set, regardless of the precompiles compiled into the binary.

This way, after the hard fork, every EVM tx gets a single extra state access of gas (minimal), but precompiles can be added and removed at will safely without risking a consensus fork.

  • I have updated CHANGELOG.md with a new entry if my PR makes any breaking changes or fixes a bug. If my PR removes a feature or changes its behavior, I provide help for users on how to migrate to the new behavior.
  • I have carefully reviewed all my Cargo.toml changes before opening the PRs. (Are all new dependencies necessary? Is any module dependency leaked into the full-node (hint: it shouldn't)?)

Linked Issues

  • Fixes # (issue, if applicable)
  • Related to # (issue)

Testing

Describe how these changes were tested. If you've added new features, have you added unit tests?

Docs

Describe where this code is documented. If it changes a documented interface, have the docs been updated?

Rendered docs are available at https://sovlabs-ci-rustdoc-artifacts.us-east-1.amazonaws.com/<BRANCH_NAME>/index.html

Remove the compatibility activation height for hard-fork runtimes and always load the stored enabled-precompile set, regardless of the precompiles compiled into the binary.
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