Skip to content

zkevm@v0.4.0 fixtures: stale EIP-8037 AUTH_BASE gas on EIP-7702 undelegated clears #21563

@awskii

Description

@awskii

The eest_zkevm_witness suite pins zkevm@v0.4.0 (2026-05-13). Those fixtures charge the EIP-8037 per-auth state gas STATE_BYTES_PER_AUTH_BASE × CPSB (23 × 1530 = 35190) when an EIP-7702 authorization clears a delegation (auth.address == 0x0) on an authority that has no prior delegation.

Current EIP-8037 refunds AUTH_BASE in that case — the rule is "refill if codeHash != empty OR auth.address == 0". This matches tests-bal@v7.2.0 (2026-05-18) and erigon's implementation (verifyAuthorities, execution/protocol/txn_executor.go). So the two fixture sets encode opposite gas for the same operation; zkevm@v0.4.0 predates the spec settling on refund.

21 for_amsterdam witness subtests fail block import with gas used = header − 35190 (all EIP-7702 type-4 clears of an undelegated authority): variants of delegation_clearing, delegation_clearing_and_set, delegation_clearing_tx_to, double_auth (first_delegation=RESET), valid_tx_invalid_auth_signature, the tx_type_4 parametrizations of tx_to_beacon_root_contract / blobhash_gas_cost / blobhash_opcode_contexts_tx_types, and bal_7702_null_address_delegation_no_code_change.

These are skipped via SkipLoad in execution/tests/eest_zkevm_witness/witness_test.go. Remove the skips once the zkevm corpus is bumped to a release matching the current EIP-8037 refund rule.

Metadata

Metadata

Assignees

Labels

Glamsterdamhttps://eips.ethereum.org/EIPS/eip-7773

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions