heze boilerplate

This commit is contained in:
Eitan Seri-Levi
2026-04-27 12:51:16 +02:00
parent fae7941b2d
commit a9a9ccfad0
70 changed files with 2643 additions and 177 deletions

View File

@@ -4,7 +4,7 @@ use crate::decode::{ssz_decode_state, yaml_decode_file};
use serde::Deserialize;
use state_processing::upgrade::{
upgrade_to_altair, upgrade_to_bellatrix, upgrade_to_capella, upgrade_to_deneb,
upgrade_to_electra, upgrade_to_fulu, upgrade_to_gloas,
upgrade_to_electra, upgrade_to_fulu, upgrade_to_gloas, upgrade_to_heze,
};
use types::BeaconState;
@@ -73,6 +73,7 @@ impl<E: EthSpec> Case for ForkTest<E> {
ForkName::Electra => upgrade_to_electra(&mut result_state, spec).map(|_| result_state),
ForkName::Fulu => upgrade_to_fulu(&mut result_state, spec).map(|_| result_state),
ForkName::Gloas => upgrade_to_gloas(&mut result_state, spec).map(|_| result_state),
ForkName::Heze => upgrade_to_heze(&mut result_state, spec).map(|_| result_state),
};
compare_beacon_state_results_without_caches(&mut result, &mut expected)

View File

@@ -6,7 +6,8 @@ use tree_hash::Hash256;
use typenum::Unsigned;
use types::{
BeaconBlockBody, BeaconBlockBodyCapella, BeaconBlockBodyDeneb, BeaconBlockBodyElectra,
BeaconBlockBodyFulu, BeaconBlockBodyGloas, BeaconState, FullPayload, light_client,
BeaconBlockBodyFulu, BeaconBlockBodyGloas, BeaconBlockBodyHeze, BeaconState, FullPayload,
light_client,
};
#[derive(Debug, Clone, Deserialize)]
@@ -177,6 +178,9 @@ impl<E: EthSpec> LoadCase for KzgInclusionMerkleProofValidity<E> {
ForkName::Gloas => {
ssz_decode_file::<BeaconBlockBodyGloas<E>>(&path.join("object.ssz_snappy"))?.into()
}
ForkName::Heze => {
ssz_decode_file::<BeaconBlockBodyHeze<E>>(&path.join("object.ssz_snappy"))?.into()
}
};
let merkle_proof = yaml_decode_file(&path.join("proof.yaml"))?;
// Metadata does not exist in these tests but it is left like this just in case.
@@ -298,6 +302,9 @@ impl<E: EthSpec> LoadCase for BeaconBlockBodyMerkleProofValidity<E> {
ForkName::Gloas => {
ssz_decode_file::<BeaconBlockBodyGloas<E>>(&path.join("object.ssz_snappy"))?.into()
}
ForkName::Heze => {
ssz_decode_file::<BeaconBlockBodyHeze<E>>(&path.join("object.ssz_snappy"))?.into()
}
};
let merkle_proof = yaml_decode_file(&path.join("proof.yaml"))?;
// Metadata does not exist in these tests but it is left like this just in case.

View File

@@ -77,6 +77,16 @@ impl<E: EthSpec> LoadCase for TransitionTest<E> {
spec.fulu_fork_epoch = Some(Epoch::new(0));
spec.gloas_fork_epoch = Some(metadata.fork_epoch);
}
ForkName::Heze => {
spec.altair_fork_epoch = Some(Epoch::new(0));
spec.bellatrix_fork_epoch = Some(Epoch::new(0));
spec.capella_fork_epoch = Some(Epoch::new(0));
spec.deneb_fork_epoch = Some(Epoch::new(0));
spec.electra_fork_epoch = Some(Epoch::new(0));
spec.fulu_fork_epoch = Some(Epoch::new(0));
spec.gloas_fork_epoch = Some(Epoch::new(0));
spec.heze_fork_epoch = Some(metadata.fork_epoch);
}
}
// Load blocks

View File

@@ -309,6 +309,10 @@ impl<T, E> SszStaticHandler<T, E> {
Self::for_forks(vec![ForkName::Gloas])
}
pub fn heze_only() -> Self {
Self::for_forks(vec![ForkName::Heze])
}
pub fn altair_and_later() -> Self {
Self::for_forks(ForkName::list_all()[1..].to_vec())
}
@@ -337,6 +341,10 @@ impl<T, E> SszStaticHandler<T, E> {
Self::for_forks(ForkName::list_all()[7..].to_vec())
}
pub fn heze_and_later() -> Self {
Self::for_forks(ForkName::list_all()[8..].to_vec())
}
pub fn pre_electra() -> Self {
Self::for_forks(ForkName::list_all()[0..5].to_vec())
}
@@ -772,7 +780,7 @@ impl<E: EthSpec + TypeName> Handler for OptimisticSyncHandler<E> {
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas optimistic sync tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}
@@ -997,7 +1005,7 @@ impl<E: EthSpec> Handler for KZGComputeCellsHandler<E> {
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas KZG tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}
@@ -1022,7 +1030,7 @@ impl<E: EthSpec> Handler for KZGComputeCellsAndKZGProofHandler<E> {
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas KZG tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}
@@ -1047,7 +1055,7 @@ impl<E: EthSpec> Handler for KZGVerifyCellKZGProofBatchHandler<E> {
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas KZG tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}
@@ -1072,7 +1080,7 @@ impl<E: EthSpec> Handler for KZGRecoverCellsAndKZGProofHandler<E> {
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas KZG tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}
@@ -1101,7 +1109,7 @@ impl<E: EthSpec + TypeName> Handler for KzgInclusionMerkleProofValidityHandler<E
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas KZG merkle proof tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}
@@ -1130,7 +1138,7 @@ impl<E: EthSpec + TypeName> Handler for MerkleProofValidityHandler<E> {
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas light client tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}
@@ -1160,7 +1168,7 @@ impl<E: EthSpec + TypeName> Handler for LightClientUpdateHandler<E> {
fn disabled_forks(&self) -> Vec<ForkName> {
// TODO(gloas): remove once we have Gloas light client tests
vec![ForkName::Gloas]
vec![ForkName::Gloas, ForkName::Heze]
}
}

View File

@@ -56,6 +56,7 @@ type_name_generic!(BeaconBlockBodyDeneb, "BeaconBlockBody");
type_name_generic!(BeaconBlockBodyElectra, "BeaconBlockBody");
type_name_generic!(BeaconBlockBodyFulu, "BeaconBlockBody");
type_name_generic!(BeaconBlockBodyGloas, "BeaconBlockBody");
type_name_generic!(BeaconBlockBodyHeze, "BeaconBlockBody");
type_name!(BeaconBlockHeader);
type_name_generic!(BeaconState);
type_name!(BlobIdentifier);
@@ -64,6 +65,7 @@ type_name_generic!(BlobSidecar);
type_name_generic!(DataColumnSidecar);
type_name_generic!(DataColumnSidecarFulu, "DataColumnSidecar");
type_name_generic!(DataColumnSidecarGloas, "DataColumnSidecar");
type_name_generic!(DataColumnSidecarHeze, "DataColumnSidecar");
type_name!(Checkpoint);
type_name!(ConsolidationRequest);
type_name_generic!(ContributionAndProof);
@@ -83,6 +85,7 @@ type_name_generic!(ExecutionPayloadDeneb, "ExecutionPayload");
type_name_generic!(ExecutionPayloadElectra, "ExecutionPayload");
type_name_generic!(ExecutionPayloadFulu, "ExecutionPayload");
type_name_generic!(ExecutionPayloadGloas, "ExecutionPayload");
type_name_generic!(ExecutionPayloadHeze, "ExecutionPayload");
type_name_generic!(FullPayload, "ExecutionPayload");
type_name_generic!(ExecutionPayloadHeader);
type_name_generic!(ExecutionPayloadHeaderBellatrix, "ExecutionPayloadHeader");

View File

@@ -400,6 +400,10 @@ mod ssz_static {
.run();
SszStaticHandler::<BeaconBlockBodyGloas<MainnetEthSpec>, MainnetEthSpec>::gloas_only()
.run();
SszStaticHandler::<BeaconBlockBodyHeze<MinimalEthSpec>, MinimalEthSpec>::heze_only()
.run();
SszStaticHandler::<BeaconBlockBodyHeze<MainnetEthSpec>, MainnetEthSpec>::heze_only()
.run();
}
// Altair and later
@@ -631,6 +635,10 @@ mod ssz_static {
.run();
SszStaticHandler::<ExecutionPayloadGloas<MainnetEthSpec>, MainnetEthSpec>::gloas_only()
.run();
SszStaticHandler::<ExecutionPayloadHeze<MinimalEthSpec>, MinimalEthSpec>::heze_only()
.run();
SszStaticHandler::<ExecutionPayloadHeze<MainnetEthSpec>, MainnetEthSpec>::heze_only()
.run();
}
#[test]
@@ -717,6 +725,10 @@ mod ssz_static {
.run();
SszStaticHandler::<DataColumnSidecarGloas<MainnetEthSpec>, MainnetEthSpec>::gloas_only()
.run();
SszStaticHandler::<DataColumnSidecarHeze<MinimalEthSpec>, MinimalEthSpec>::heze_only()
.run();
SszStaticHandler::<DataColumnSidecarHeze<MainnetEthSpec>, MainnetEthSpec>::heze_only()
.run();
}
#[test]