Merge remote-tracking branch, resolve conflicts preserving FOCIL/Heze logic

- test_utils: Heze branch uses DataColumnSidecarGloas (shared format), keeps
  heze_enabled() check ahead of gloas_enabled() so Heze blocks are handled first
- genesis.rs: Keep both Gloas and Heze bid initialisation in genesis_block()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Eitan Seri-Levi
2026-04-30 10:04:04 +02:00
12 changed files with 33 additions and 180 deletions

View File

@@ -204,9 +204,10 @@ pub fn initialize_beacon_state_from_eth1<E: EthSpec>(
/// Create an unsigned genesis `BeaconBlock`.
///
/// For Gloas and later, the block's `signed_execution_payload_bid` is populated from the state's
/// `latest_execution_payload_bid` so that the body root is consistent with
/// `state.latest_block_header.body_root`.
/// Per spec, the genesis block body is empty (all default fields) except for Gloas and later,
/// where `body.signed_execution_payload_bid.message` is initialised from
/// `state.latest_execution_payload_bid` so that the first post-genesis proposer can
/// build on the correct execution layer head.
///
/// `state.latest_block_header.body_root` is set from this same block's body, so the
/// two must stay in sync.