From a57f64c650dbdd4c9d18e6671a5b14e528765ba7 Mon Sep 17 00:00:00 2001 From: Eitan Seri-Levi Date: Tue, 11 Feb 2025 12:04:59 +0200 Subject: [PATCH] refactor --- .../http_api/src/aggregate_attestation.rs | 80 ++++++++----------- 1 file changed, 32 insertions(+), 48 deletions(-) diff --git a/beacon_node/http_api/src/aggregate_attestation.rs b/beacon_node/http_api/src/aggregate_attestation.rs index 9c5b4330e9..23af5b0cb5 100644 --- a/beacon_node/http_api/src/aggregate_attestation.rs +++ b/beacon_node/http_api/src/aggregate_attestation.rs @@ -18,43 +18,39 @@ pub fn get_aggregate_attestation( endpoint_version: EndpointVersion, chain: Arc>, ) -> Result, warp::reject::Rejection> { - if endpoint_version == V2 { - let fork_name = chain.spec.fork_name_at_slot::(slot); - let aggregate_attestation = if fork_name.electra_enabled() { - let Some(committee_index) = committee_index else { - return Err(warp_utils::reject::custom_bad_request( - "missing committee index".to_string(), - )); - }; - chain - .get_aggregated_attestation_electra(slot, attestation_data_root, committee_index) - .map_err(|e| { - warp_utils::reject::custom_bad_request(format!( - "unable to fetch aggregate: {:?}", - e - )) - })? - .ok_or_else(|| { - warp_utils::reject::custom_not_found("no matching aggregate found".to_string()) - })? - } else { - chain - .get_pre_electra_aggregated_attestation_by_slot_and_root( - slot, - attestation_data_root, - ) - .map_err(|e| { - warp_utils::reject::custom_bad_request(format!( - "unable to fetch aggregate: {:?}", - e - )) - })? - .ok_or_else(|| { - warp_utils::reject::custom_not_found("no matching aggregate found".to_string()) - })? + let fork_name = chain.spec.fork_name_at_slot::(slot); + let aggregate_attestation = if fork_name.electra_enabled() { + let Some(committee_index) = committee_index else { + return Err(warp_utils::reject::custom_bad_request( + "missing committee index".to_string(), + )); }; + chain + .get_aggregated_attestation_electra(slot, attestation_data_root, committee_index) + .map_err(|e| { + warp_utils::reject::custom_bad_request(format!( + "unable to fetch aggregate: {:?}", + e + )) + })? + .ok_or_else(|| { + warp_utils::reject::custom_not_found("no matching aggregate found".to_string()) + })? + } else { + chain + .get_pre_electra_aggregated_attestation_by_slot_and_root(slot, attestation_data_root) + .map_err(|e| { + warp_utils::reject::custom_bad_request(format!( + "unable to fetch aggregate: {:?}", + e + )) + })? + .ok_or_else(|| { + warp_utils::reject::custom_not_found("no matching aggregate found".to_string()) + })? + }; - let fork_name = chain.spec.fork_name_at_slot::(slot); + if endpoint_version == V2 { let fork_versioned_response = ForkVersionedResponse { version: Some(fork_name), metadata: EmptyMetadata {}, @@ -65,19 +61,7 @@ pub fn get_aggregate_attestation( fork_name, )) } else if endpoint_version == V1 { - let aggregate_attestation = chain - .get_pre_electra_aggregated_attestation_by_slot_and_root(slot, attestation_data_root) - .map_err(|e| { - warp_utils::reject::custom_bad_request(format!( - "unable to fetch aggregate: {:?}", - e - )) - })? - .map(GenericResponse::from) - .ok_or_else(|| { - warp_utils::reject::custom_not_found("no matching aggregate found".to_string()) - })?; - Ok(warp::reply::json(&aggregate_attestation).into_response()) + Ok(warp::reply::json(&GenericResponse::from(aggregate_attestation)).into_response()) } else { return Err(unsupported_version_rejection(endpoint_version)); }