From 0e377fc8ac2a076e542b9bc62c30bbe67959f009 Mon Sep 17 00:00:00 2001 From: Eitan Seri- Levi Date: Fri, 13 Feb 2026 17:22:48 -0800 Subject: [PATCH] Fix --- beacon_node/beacon_chain/src/execution_payload.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/beacon_node/beacon_chain/src/execution_payload.rs b/beacon_node/beacon_chain/src/execution_payload.rs index a2022f7d5e..3ac0b1fd11 100644 --- a/beacon_node/beacon_chain/src/execution_payload.rs +++ b/beacon_node/beacon_chain/src/execution_payload.rs @@ -387,9 +387,18 @@ pub fn get_execution_payload( let timestamp = compute_timestamp_at_slot(state, state.slot(), spec).map_err(BeaconStateError::from)?; let random = *state.get_randao_mix(current_epoch)?; - let latest_execution_payload_header = state.latest_execution_payload_header()?; - let latest_execution_payload_header_block_hash = latest_execution_payload_header.block_hash(); - let latest_execution_payload_header_gas_limit = latest_execution_payload_header.gas_limit(); + // In GLOAS (ePBS), the execution payload header is replaced by + // `latest_block_hash` and `latest_execution_payload_bid`. + let (latest_execution_payload_header_block_hash, latest_execution_payload_header_gas_limit) = + if state.fork_name_unchecked() == ForkName::Gloas { + ( + *state.latest_block_hash()?, + state.latest_execution_payload_bid()?.gas_limit, + ) + } else { + let header = state.latest_execution_payload_header()?; + (header.block_hash(), header.gas_limit()) + }; let withdrawals = if state.fork_name_unchecked().capella_enabled() { Some(Withdrawals::::from(get_expected_withdrawals(state, spec)?).into()) } else {