Skip to content

EIP-7708: Missing negative test for CALL with value to coinbase #2692

@chfast

Description

@chfast

Summary

EIP-7708 specifies transfer logs for CALL, SELFDESTRUCT, and transaction-level value transfers. The spec explicitly does not require logging for protocol-level balance changes such as coinbase priority fee payments.

There is currently no EEST test that verifies the absence of a transfer log when the coinbase receives its priority fee payment at the end of transaction processing.

What's missing

A test where:

  1. A transaction executes a regular CALL with value to the coinbase address
  2. The transaction also pays a priority fee to the coinbase
  3. The expected logs include a Transfer log for the CALL value transfer
  4. The expected logs do not include a Transfer log for the priority fee payment

This would catch an implementation that incorrectly emits a transfer log for the coinbase fee credit (a protocol-level balance addition, not an EVM CALL).

Why it matters

The coinbase fee payment (state.touch(block.coinbase).balance += gas_used * priority_gas_price) is done outside the EVM, after execution completes. An implementation that hooks all balance additions (rather than only CALL/SELFDESTRUCT) would produce extra logs that break consensus.

A focused test with a CALL-with-value to the coinbase address would exercise both the legitimate transfer log (from the CALL) and the non-logged fee payment in the same transaction, making it easy to detect over-logging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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