feat: add version_specific_fields method to EngineTypes (#6050)

This commit is contained in:
Dan Cline
2024-01-15 15:29:45 -05:00
committed by GitHub
parent 685d1c51e4
commit 9d65a4cfbb
9 changed files with 135 additions and 21 deletions

View File

@@ -4,9 +4,8 @@ use jsonrpsee_core::RpcResult;
use reth_beacon_consensus::BeaconConsensusEngineHandle;
use reth_interfaces::consensus::ForkchoiceState;
use reth_node_api::{
validate_payload_timestamp, validate_version_specific_fields, BuiltPayload,
EngineApiMessageVersion, EngineTypes, PayloadAttributes, PayloadBuilderAttributes,
PayloadOrAttributes,
validate_payload_timestamp, BuiltPayload, EngineApiMessageVersion, EngineTypes,
PayloadAttributes, PayloadBuilderAttributes, PayloadOrAttributes,
};
use reth_payload_builder::PayloadStore;
use reth_primitives::{BlockHash, BlockHashOrNumber, BlockNumber, ChainSpec, Hardfork, B256, U64};
@@ -100,10 +99,10 @@ where
PayloadOrAttributes::<'_, EngineT::PayloadAttributes>::from_execution_payload(
&payload, None,
);
validate_version_specific_fields(
EngineT::validate_version_specific_fields(
&self.inner.chain_spec,
EngineApiMessageVersion::V1,
&payload_or_attrs,
payload_or_attrs,
)?;
Ok(self.inner.beacon_consensus.new_payload(payload, None).await?)
}
@@ -118,10 +117,10 @@ where
PayloadOrAttributes::<'_, EngineT::PayloadAttributes>::from_execution_payload(
&payload, None,
);
validate_version_specific_fields(
EngineT::validate_version_specific_fields(
&self.inner.chain_spec,
EngineApiMessageVersion::V2,
&payload_or_attrs,
payload_or_attrs,
)?;
Ok(self.inner.beacon_consensus.new_payload(payload, None).await?)
}
@@ -139,10 +138,10 @@ where
&payload,
Some(parent_beacon_block_root),
);
validate_version_specific_fields(
EngineT::validate_version_specific_fields(
&self.inner.chain_spec,
EngineApiMessageVersion::V3,
&payload_or_attrs,
payload_or_attrs,
)?;
let cancun_fields = CancunPayloadFields { versioned_hashes, parent_beacon_block_root };