From d1401452193bcb3aa8b4b9ac74df88f0d7aa8a91 Mon Sep 17 00:00:00 2001 From: Eitan Seri- Levi Date: Fri, 13 Feb 2026 17:26:38 -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 bdf3ab9594..1c0fd505e7 100644 --- a/beacon_node/beacon_chain/src/execution_payload.rs +++ b/beacon_node/beacon_chain/src/execution_payload.rs @@ -367,9 +367,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 {