From 39d4c1a4275b2fb392512e2dd2ef7da37b1685a8 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Fri, 29 Nov 2024 07:26:18 +0100 Subject: [PATCH] chore: use new payload validator in tree (#12987) --- crates/engine/tree/src/tree/mod.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/crates/engine/tree/src/tree/mod.rs b/crates/engine/tree/src/tree/mod.rs index 5dc8039afe..fd0e5aeec8 100644 --- a/crates/engine/tree/src/tree/mod.rs +++ b/crates/engine/tree/src/tree/mod.rs @@ -34,7 +34,7 @@ use reth_errors::{ConsensusError, ProviderResult}; use reth_evm::execute::BlockExecutorProvider; use reth_payload_builder::PayloadBuilderHandle; use reth_payload_builder_primitives::PayloadBuilder; -use reth_payload_primitives::{PayloadAttributes, PayloadBuilderAttributes}; +use reth_payload_primitives::PayloadBuilderAttributes; use reth_primitives::{ Block, EthPrimitives, GotExpected, NodePrimitives, SealedBlock, SealedBlockWithSenders, SealedHeader, @@ -2532,12 +2532,10 @@ where state: ForkchoiceState, version: EngineApiMessageVersion, ) -> OnForkChoiceUpdated { - // 7. Client software MUST ensure that payloadAttributes.timestamp is greater than timestamp - // of a block referenced by forkchoiceState.headBlockHash. If this condition isn't held - // client software MUST respond with -38003: `Invalid payload attributes` and MUST NOT - // begin a payload build process. In such an event, the forkchoiceState update MUST NOT - // be rolled back. - if attrs.timestamp() <= head.timestamp { + if let Err(err) = + self.payload_validator.validate_payload_attributes_against_header(&attrs, head) + { + warn!(target: "engine::tree", %err, ?head, "Invalid payload attributes"); return OnForkChoiceUpdated::invalid_payload_attributes() }