This commit is contained in:
Eitan Seri-Levi
2026-04-29 22:38:13 +02:00
70 changed files with 2749 additions and 330 deletions

View File

@@ -89,6 +89,8 @@ pub const FORK_NAME_ENV_VAR: &str = "FORK_NAME";
// `beacon_node/execution_layer/src/test_utils/fixtures/mainnet/test_blobs_bundle.ssz`
pub const TEST_DATA_COLUMN_SIDECARS_SSZ: &[u8] =
include_bytes!("test_utils/fixtures/test_data_column_sidecars.ssz");
pub const TEST_DATA_COLUMN_SIDECARS_GLOAS_SSZ: &[u8] =
include_bytes!("test_utils/fixtures/test_data_column_sidecars_gloas.ssz");
// Default target aggregators to set during testing, this ensures an aggregator at each slot.
//
@@ -1192,6 +1194,7 @@ where
randao_reveal,
graffiti_settings,
ProduceBlockVerification::VerifyRandao,
None,
)
.await
.unwrap();
@@ -3797,20 +3800,9 @@ pub fn generate_data_column_sidecars_from_block<E: EthSpec>(
block: &SignedBeaconBlock<E>,
spec: &ChainSpec,
) -> DataColumnSidecarList<E> {
let kzg_commitments = block.message().body().blob_kzg_commitments().unwrap();
if kzg_commitments.is_empty() {
return vec![];
}
let kzg_commitments_inclusion_proof = block
.message()
.body()
.kzg_commitments_merkle_proof()
.unwrap();
let signed_block_header = block.signed_block_header();
// Load the precomputed column sidecar to avoid computing them for every block in the tests.
// Then repeat the cells and proofs for every blob
<<<<<<< HEAD
if block.fork_name_unchecked().heze_enabled() {
let template_data_columns =
RuntimeVariableList::<DataColumnSidecarHeze<E>>::from_ssz_bytes(
@@ -3844,9 +3836,24 @@ pub fn generate_data_column_sidecars_from_block<E: EthSpec>(
)
.unwrap()
} else if block.fork_name_unchecked().gloas_enabled() {
=======
if block.fork_name_unchecked().gloas_enabled() {
let kzg_commitments = &block
.message()
.body()
.signed_execution_payload_bid()
.expect("Gloas block should have a payload bid")
.message
.blob_kzg_commitments;
if kzg_commitments.is_empty() {
return vec![];
}
let num_blobs = kzg_commitments.len();
let signed_block_header = block.signed_block_header();
>>>>>>> f406e9c3fbf6f4abdd65a7d1501e2e892c96d2c9
let template_data_columns =
RuntimeVariableList::<DataColumnSidecarGloas<E>>::from_ssz_bytes(
TEST_DATA_COLUMN_SIDECARS_SSZ,
TEST_DATA_COLUMN_SIDECARS_GLOAS_SSZ,
E::number_of_columns(),
)
.unwrap();
@@ -3866,7 +3873,7 @@ pub fn generate_data_column_sidecars_from_block<E: EthSpec>(
.collect::<(Vec<_>, Vec<_>)>();
let blob_cells_and_proofs_vec =
vec![(cells.try_into().unwrap(), proofs.try_into().unwrap()); kzg_commitments.len()];
vec![(cells.try_into().unwrap(), proofs.try_into().unwrap()); num_blobs];
build_data_column_sidecars_gloas(
signed_block_header.message.tree_hash_root(),
@@ -3876,6 +3883,18 @@ pub fn generate_data_column_sidecars_from_block<E: EthSpec>(
)
.unwrap()
} else {
let kzg_commitments = block.message().body().blob_kzg_commitments().unwrap();
if kzg_commitments.is_empty() {
return vec![];
}
let kzg_commitments_inclusion_proof = block
.message()
.body()
.kzg_commitments_merkle_proof()
.unwrap();
let signed_block_header = block.signed_block_header();
// load the precomputed column sidecar to avoid computing them for every block in the tests.
let template_data_columns =
RuntimeVariableList::<DataColumnSidecarFulu<E>>::from_ssz_bytes(