feat(evm): align Zones with Tempo T11 precompile decoding - #1372
feat(evm): align Zones with Tempo T11 precompile decoding#1372legion2002 wants to merge 5 commits into
Conversation
|
Caution Review the following alerts detected in dependencies. According to your organization's Security Policy, you must resolve all "Block" alerts before proceeding. Learn more about Socket for GitHub.
|
28f9480 to
4d12736
Compare
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
| check_caller(caller, &[call.account]) | ||
| } | ||
| IAccountKeychain::IAccountKeychainCalls::isAdminKey(call) => { | ||
| check_caller(caller, &[call.account]) | ||
| } | ||
| IAccountKeychain::IAccountKeychainCalls::authorizeKey_0(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::authorizeKey_1(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::authorizeKey_2(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::authorizeAdminKey(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::burnKeyAuthorizationWitness(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::revokeKey(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::updateSpendingLimit(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::setAllowedCalls(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::removeAllowedCalls(_) | ||
| | IAccountKeychain::IAccountKeychainCalls::getTransactionKey(_) => CallCheck::Continue, | ||
| } |
There was a problem hiding this comment.
we can only check these selectors using .get(..4) after T11
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Summary
Updates the Zones EVM integration to Tempo PR #7444 and makes Zone precompile admission follow the active Tempo hardfork.
Why
Tempo precompile input cost and ABI decoding are now hardfork-dependent. Zones wraps Tempo precompiles with its own authorization layer, so decoding calldata with a different configuration before forwarding can produce caller-dependent results for malformed input.
Using the same Tempo configuration in both layers ensures historical pre-T11 blocks retain their old decoding and gas behavior, while T11 blocks use the increased input cost, strict ABI validation, and the allocation limit selected by Tempo.
Zone chain specs already inherit Tempo fork activation times, and ZoneEvmConfig selects the Tempo spec from each block timestamp. This change carries that selected spec through the wrapper admission paths.
Reexecution
Validation
Stack note
This is the base of a two-PR stack.
The dependency alignment includes a newer Reth revision that removed the old HashedStorage.wiped and sparse-trie wipe APIs. As a result, the full workspace check stops at the expected zone-spf compatibility errors on this PR alone. The stacked child adapts stateless proof execution and the node APIs to the new Reth revision, and restores the full workspace build.
This split keeps the Tempo/T11 behavior change independently reviewable.