chore: add PayloadError to PayloadStatus conversion (#2123)

This commit is contained in:
Matthias Seitz
2023-04-12 11:41:15 +02:00
committed by GitHub
parent 74d90de450
commit ad8ca5677a
2 changed files with 17 additions and 4 deletions

View File

@ -294,9 +294,7 @@ where
Ok(block) => block,
Err(error) => {
error!(target: "consensus::engine", ?block_hash, block_number, ?error, "Invalid payload");
return Ok(PayloadStatus::from_status(PayloadStatusEnum::InvalidBlockHash {
validation_error: error.to_string(),
}))
return Ok(error.into())
}
};

View File

@ -193,7 +193,7 @@ pub enum PayloadError {
#[error("Invalid payload base fee: {0}")]
BaseFee(U256),
/// Invalid payload block hash.
#[error("Invalid payload block hash. Execution: {execution}. Consensus: {consensus}")]
#[error("blockhash mismatch, want {consensus}, got {execution}")]
BlockHash {
/// The block hash computed from the payload.
execution: H256,
@ -283,6 +283,21 @@ impl Serialize for PayloadStatus {
}
}
impl From<PayloadError> for PayloadStatus {
fn from(error: PayloadError) -> Self {
match error {
error @ PayloadError::BlockHash { .. } => {
PayloadStatus::from_status(PayloadStatusEnum::InvalidBlockHash {
validation_error: error.to_string(),
})
}
_ => PayloadStatus::from_status(PayloadStatusEnum::Invalid {
validation_error: error.to_string(),
}),
}
}
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[serde(tag = "status", rename_all = "SCREAMING_SNAKE_CASE")]
pub enum PayloadStatusEnum {