Skip to content

Test Calldata Floor

Documentation for tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py@5fa5938b.

Generate fixtures for these test cases for Amsterdam with:

fill -v tests/amsterdam/eip2780_reduce_intrinsic_tx_gas/test_calldata_floor.py --fork Amsterdam

EIP-2780 interaction with the EIP-7623/7976 calldata floor.

A transaction's gas accounting uses max(intrinsic, calldata_floor). EIP-2780 decomposes the intrinsic (TX_BASE + recipient access + value-transfer charges) and lowers TX_BASE to 12_000; that lowered base also feeds the calldata floor. These tests pin the data-heavy regime where the floor dominates:

  • The floor binds, so gas_used equals the floor and the recipient/value charges folded into the intrinsic are masked: the gas paid is identical for a zero-value and a value-bearing transaction of the same calldata size.
  • One gas below the floor, the transaction is rejected with INTRINSIC_GAS_BELOW_FLOOR_GAS_COST even though it covers the (smaller) decomposed intrinsic.

Test Functions Overview

Name Type Cases (Amsterdam) Description
test_calldata_floor state_test 4 A data-heavy transaction to an existing EOA whose calldata floor