Return RecoveredBlock in ensure_well_formed_payload (#14625)

This commit is contained in:
Joseph Zhao
2025-02-21 18:42:54 +08:00
committed by GitHub
parent faa55d96bf
commit 86e8a2a245
6 changed files with 39 additions and 68 deletions

View File

@ -356,17 +356,13 @@ where
&self,
request: BuilderBlockValidationRequestV3,
) -> Result<(), ValidationApiError> {
let block = self
.payload_validator
.ensure_well_formed_payload(ExecutionData {
payload: ExecutionPayload::V3(request.request.execution_payload),
sidecar: ExecutionPayloadSidecar::v3(CancunPayloadFields {
parent_beacon_block_root: request.parent_beacon_block_root,
versioned_hashes: self.validate_blobs_bundle(request.request.blobs_bundle)?,
}),
})?
.try_recover()
.map_err(|_| ValidationApiError::InvalidTransactionSignature)?;
let block = self.payload_validator.ensure_well_formed_payload(ExecutionData {
payload: ExecutionPayload::V3(request.request.execution_payload),
sidecar: ExecutionPayloadSidecar::v3(CancunPayloadFields {
parent_beacon_block_root: request.parent_beacon_block_root,
versioned_hashes: self.validate_blobs_bundle(request.request.blobs_bundle)?,
}),
})?;
self.validate_message_against_block(
block,
@ -381,25 +377,20 @@ where
&self,
request: BuilderBlockValidationRequestV4,
) -> Result<(), ValidationApiError> {
let block = self
.payload_validator
.ensure_well_formed_payload(ExecutionData {
payload: ExecutionPayload::V3(request.request.execution_payload),
sidecar: ExecutionPayloadSidecar::v4(
CancunPayloadFields {
parent_beacon_block_root: request.parent_beacon_block_root,
versioned_hashes: self
.validate_blobs_bundle(request.request.blobs_bundle)?,
},
PraguePayloadFields {
requests: RequestsOrHash::Requests(
request.request.execution_requests.to_requests(),
),
},
),
})?
.try_recover()
.map_err(|_| ValidationApiError::InvalidTransactionSignature)?;
let block = self.payload_validator.ensure_well_formed_payload(ExecutionData {
payload: ExecutionPayload::V3(request.request.execution_payload),
sidecar: ExecutionPayloadSidecar::v4(
CancunPayloadFields {
parent_beacon_block_root: request.parent_beacon_block_root,
versioned_hashes: self.validate_blobs_bundle(request.request.blobs_bundle)?,
},
PraguePayloadFields {
requests: RequestsOrHash::Requests(
request.request.execution_requests.to_requests(),
),
},
),
})?;
self.validate_message_against_block(
block,