Skip to main content

check_minimum_block_work

Function check_minimum_block_work 

Source
pub fn check_minimum_block_work<'a>(
    txs_with_sender: impl IntoIterator<Item = (&'a Transaction, Address)>,
    fork: Fork,
    block_gas_limit: u64,
) -> Result<(), EvmError>
Expand description

Reject a block whose transactions cannot all be admitted, before executing any of them.

Ordered gas admission (check_2d_gas_allowance) needs each transaction’s real gas, so on the parallel path it can only run once every transaction has executed and its report is held in memory. This bound needs none of that: every transaction spends at least its EIP-7623/7976 floor, so a block whose floors already exceed block_work_budget cannot pass admission whatever it executes to.

Sound in the accepting direction: for any block that could be valid, sum(floor) <= sum(gas_used) <= block_work_budget, so this never rejects a block ordered admission would have accepted.