Fix execution payload request block prod code path

This commit is contained in:
Eitan Seri-Levi
2026-06-23 11:38:35 +03:00
parent 84407b3033
commit d685ba1e4a
4 changed files with 39 additions and 44 deletions

View File

@@ -474,6 +474,7 @@ pub enum RequestsError {
InvalidOrdering,
InvalidPrefix(u8),
DecodeError(String),
VariantMismatch,
}
/// Format of `ExecutionRequests` received over the engine api.
@@ -606,6 +607,28 @@ impl<E: EthSpec> TryFrom<JsonExecutionRequests> for ExecutionRequests<E> {
}
}
impl<E: EthSpec> TryFrom<JsonExecutionRequests> for ExecutionRequestsElectra<E> {
type Error = RequestsError;
fn try_from(value: JsonExecutionRequests) -> Result<Self, Self::Error> {
match ExecutionRequests::<E>::try_from(value)? {
ExecutionRequests::Electra(requests) => Ok(requests),
ExecutionRequests::Gloas(_) => Err(RequestsError::VariantMismatch),
}
}
}
impl<E: EthSpec> TryFrom<JsonExecutionRequests> for ExecutionRequestsGloas<E> {
type Error = RequestsError;
fn try_from(value: JsonExecutionRequests) -> Result<Self, Self::Error> {
match ExecutionRequests::<E>::try_from(value)? {
ExecutionRequests::Gloas(requests) => Ok(requests),
ExecutionRequests::Electra(_) => Err(RequestsError::VariantMismatch),
}
}
}
#[superstruct(
variants(Bellatrix, Capella, Deneb, Electra, Fulu, Gloas),
variant_attributes(