Merge branch 'gloas-head-block-number' into glamsterdam-devnet-4

This commit is contained in:
Eitan Seri-Levi
2026-05-24 16:54:21 +03:00
2 changed files with 16 additions and 5 deletions

View File

@@ -5055,16 +5055,16 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
return Ok(None);
};
// TODO(gloas) not sure what to do here see this issue
// https://github.com/sigp/lighthouse/issues/8817
let (prev_randao, parent_block_number) = if self
.spec
.fork_name_at_slot::<T::EthSpec>(proposal_slot)
.gloas_enabled()
{
(cached_head.head_random()?, None)
(
cached_head.head_random()?,
cached_head.head_block_number_gloas(),
)
} else {
// Get the `prev_randao` and parent block number.
let head_block_number = cached_head.head_block_number()?;
if proposer_head == head_parent_block_root {
(

View File

@@ -178,7 +178,7 @@ impl<E: EthSpec> CachedHead<E> {
/// Returns the execution block number of the block at the head of the chain.
///
/// Returns an error if the chain is prior to Bellatrix.
/// Returns an error if the chain is prior to Bellatrix or post-Gloas
pub fn head_block_number(&self) -> Result<u64, BeaconStateError> {
self.snapshot
.beacon_block
@@ -187,6 +187,17 @@ impl<E: EthSpec> CachedHead<E> {
.map(|payload| payload.block_number())
}
/// Returns the execution block number of the block at the head of the chain.
///
/// Returns an error if the chain is prior to Gloas.
pub fn head_block_number_gloas(&self) -> Result<u64, BeaconStateError> {
self.snapshot
.execution_envelope
.as_ref()
.map(|envelope| envelope.message.payload.block_number)
.ok()
}
/// Returns the active validator count for the current epoch of the head state.
///
/// Should only return `None` if the caches have not been built on the head state (this should