mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore: use Requests instead of Vec<Bytes> (#11895)
This commit is contained in:
3
Cargo.lock
generated
3
Cargo.lock
generated
@ -6417,6 +6417,7 @@ dependencies = [
|
||||
name = "reth-beacon-consensus"
|
||||
version = "1.1.0"
|
||||
dependencies = [
|
||||
"alloy-eips",
|
||||
"alloy-genesis",
|
||||
"alloy-primitives",
|
||||
"alloy-rpc-types-engine",
|
||||
@ -7217,6 +7218,7 @@ name = "reth-engine-util"
|
||||
version = "1.1.0"
|
||||
dependencies = [
|
||||
"alloy-consensus",
|
||||
"alloy-eips",
|
||||
"alloy-primitives",
|
||||
"alloy-rpc-types-engine",
|
||||
"eyre",
|
||||
@ -8400,7 +8402,6 @@ name = "reth-payload-validator"
|
||||
version = "1.1.0"
|
||||
dependencies = [
|
||||
"alloy-eips",
|
||||
"alloy-primitives",
|
||||
"alloy-rpc-types",
|
||||
"reth-chainspec",
|
||||
"reth-primitives",
|
||||
|
||||
@ -31,6 +31,7 @@ reth-node-types.workspace = true
|
||||
reth-chainspec = { workspace = true, optional = true }
|
||||
|
||||
# ethereum
|
||||
alloy-eips.workspace = true
|
||||
alloy-primitives.workspace = true
|
||||
alloy-rpc-types-engine.workspace = true
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ use crate::{
|
||||
engine::message::OnForkChoiceUpdated, BeaconConsensusEngineEvent, BeaconEngineMessage,
|
||||
BeaconForkChoiceUpdateError, BeaconOnNewPayloadError,
|
||||
};
|
||||
use alloy_primitives::Bytes;
|
||||
use alloy_eips::eip7685::Requests;
|
||||
use alloy_rpc_types_engine::{
|
||||
CancunPayloadFields, ExecutionPayload, ForkchoiceState, ForkchoiceUpdated, PayloadStatus,
|
||||
};
|
||||
@ -48,7 +48,7 @@ where
|
||||
&self,
|
||||
payload: ExecutionPayload,
|
||||
cancun_fields: Option<CancunPayloadFields>,
|
||||
execution_requests: Option<Vec<Bytes>>,
|
||||
execution_requests: Option<Requests>,
|
||||
) -> Result<PayloadStatus, BeaconOnNewPayloadError> {
|
||||
let (tx, rx) = oneshot::channel();
|
||||
// HACK(onbjerg): We should have a pectra payload fields struct, this is just a temporary
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
use crate::engine::{error::BeaconOnNewPayloadError, forkchoice::ForkchoiceStatus};
|
||||
use alloy_primitives::Bytes;
|
||||
use alloy_eips::eip7685::Requests;
|
||||
use alloy_rpc_types_engine::{
|
||||
CancunPayloadFields, ExecutionPayload, ForkChoiceUpdateResult, ForkchoiceState,
|
||||
ForkchoiceUpdateError, ForkchoiceUpdated, PayloadId, PayloadStatus, PayloadStatusEnum,
|
||||
@ -150,7 +150,7 @@ pub enum BeaconEngineMessage<Engine: EngineTypes> {
|
||||
// HACK(onbjerg): We should have a pectra payload fields struct, this is just a temporary
|
||||
// workaround.
|
||||
/// The pectra EIP-7685 execution requests.
|
||||
execution_requests: Option<Vec<Bytes>>,
|
||||
execution_requests: Option<Requests>,
|
||||
/// The sender for returning payload status result.
|
||||
tx: oneshot::Sender<Result<PayloadStatus, BeaconOnNewPayloadError>>,
|
||||
},
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
use alloy_primitives::{BlockNumber, Bytes, B256};
|
||||
use alloy_eips::eip7685::Requests;
|
||||
use alloy_primitives::{BlockNumber, B256};
|
||||
use alloy_rpc_types_engine::{
|
||||
CancunPayloadFields, ExecutionPayload, ForkchoiceState, PayloadStatus, PayloadStatusEnum,
|
||||
PayloadValidationError,
|
||||
@ -1087,7 +1088,7 @@ where
|
||||
cancun_fields: Option<CancunPayloadFields>,
|
||||
// HACK(onbjerg): We should have a pectra payload fields struct, this is just a temporary
|
||||
// workaround.
|
||||
execution_requests: Option<Vec<Bytes>>,
|
||||
execution_requests: Option<Requests>,
|
||||
) -> Result<Either<PayloadStatus, SealedBlock>, BeaconOnNewPayloadError> {
|
||||
self.metrics.new_payload_messages.increment(1);
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ use crate::{
|
||||
use alloy_eips::BlockNumHash;
|
||||
use alloy_primitives::{
|
||||
map::{HashMap, HashSet},
|
||||
BlockNumber, Bytes, B256, U256,
|
||||
BlockNumber, B256, U256,
|
||||
};
|
||||
use alloy_rpc_types_engine::{
|
||||
CancunPayloadFields, ExecutionPayload, ForkchoiceState, PayloadStatus, PayloadStatusEnum,
|
||||
@ -70,6 +70,7 @@ use crate::{
|
||||
engine::{EngineApiKind, EngineApiRequest},
|
||||
tree::metrics::EngineApiMetrics,
|
||||
};
|
||||
use alloy_eips::eip7685::Requests;
|
||||
pub use config::TreeConfig;
|
||||
pub use invalid_block_hook::{InvalidBlockHooks, NoopInvalidBlockHook};
|
||||
pub use persistence_state::PersistenceState;
|
||||
@ -721,7 +722,7 @@ where
|
||||
&mut self,
|
||||
payload: ExecutionPayload,
|
||||
cancun_fields: Option<CancunPayloadFields>,
|
||||
execution_requests: Option<Vec<Bytes>>,
|
||||
execution_requests: Option<Requests>,
|
||||
) -> Result<TreeOutcome<PayloadStatus>, InsertBlockFatalError> {
|
||||
trace!(target: "engine::tree", "invoked new payload");
|
||||
self.metrics.engine.new_payload_messages.increment(1);
|
||||
|
||||
@ -27,6 +27,7 @@ revm-primitives.workspace = true
|
||||
reth-trie.workspace = true
|
||||
|
||||
# alloy
|
||||
alloy-eips.workspace = true
|
||||
alloy-primitives.workspace = true
|
||||
alloy-rpc-types-engine.workspace = true
|
||||
alloy-consensus.workspace = true
|
||||
@ -49,6 +50,4 @@ itertools.workspace = true
|
||||
tracing.workspace = true
|
||||
|
||||
[features]
|
||||
optimism = [
|
||||
"reth-beacon-consensus/optimism",
|
||||
]
|
||||
optimism = ["reth-beacon-consensus/optimism"]
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
//! Stream wrapper that simulates reorgs.
|
||||
|
||||
use alloy_consensus::Transaction;
|
||||
use alloy_primitives::{Bytes, U256};
|
||||
use alloy_eips::eip7685::Requests;
|
||||
use alloy_primitives::U256;
|
||||
use alloy_rpc_types_engine::{
|
||||
CancunPayloadFields, ExecutionPayload, ForkchoiceState, PayloadStatus,
|
||||
};
|
||||
@ -250,8 +251,8 @@ fn create_reorg_head<Provider, Evm, Spec>(
|
||||
mut depth: usize,
|
||||
next_payload: ExecutionPayload,
|
||||
next_cancun_fields: Option<CancunPayloadFields>,
|
||||
next_execution_requests: Option<Vec<Bytes>>,
|
||||
) -> RethResult<(ExecutionPayload, Option<CancunPayloadFields>, Option<Vec<Bytes>>)>
|
||||
next_execution_requests: Option<Requests>,
|
||||
) -> RethResult<(ExecutionPayload, Option<CancunPayloadFields>, Option<Requests>)>
|
||||
where
|
||||
Provider: BlockReader + StateProviderFactory,
|
||||
Evm: ConfigureEvm<Header = Header>,
|
||||
|
||||
@ -19,5 +19,4 @@ reth-rpc-types-compat.workspace = true
|
||||
|
||||
# alloy
|
||||
alloy-eips.workspace = true
|
||||
alloy-primitives.workspace = true
|
||||
alloy-rpc-types = { workspace = true, features = ["engine"] }
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
|
||||
|
||||
use alloy_eips::eip7685::Requests;
|
||||
use alloy_primitives::Bytes;
|
||||
use alloy_rpc_types::engine::{ExecutionPayload, MaybeCancunPayloadFields, PayloadError};
|
||||
use reth_chainspec::EthereumHardforks;
|
||||
use reth_primitives::SealedBlock;
|
||||
@ -114,17 +113,14 @@ impl<ChainSpec: EthereumHardforks> ExecutionPayloadValidator<ChainSpec> {
|
||||
&self,
|
||||
payload: ExecutionPayload,
|
||||
cancun_fields: MaybeCancunPayloadFields,
|
||||
execution_requests: Option<Vec<Bytes>>,
|
||||
execution_requests: Option<Requests>,
|
||||
) -> Result<SealedBlock, PayloadError> {
|
||||
let expected_hash = payload.block_hash();
|
||||
|
||||
// First parse the block
|
||||
let sealed_block = try_into_block(
|
||||
payload,
|
||||
cancun_fields.parent_beacon_block_root(),
|
||||
execution_requests.map(Requests::new),
|
||||
)?
|
||||
.seal_slow();
|
||||
let sealed_block =
|
||||
try_into_block(payload, cancun_fields.parent_beacon_block_root(), execution_requests)?
|
||||
.seal_slow();
|
||||
|
||||
// Ensure the hash included in the payload matches the block hash
|
||||
if expected_hash != sealed_block.hash() {
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
//! This contains the `engine_` namespace and the subset of the `eth_` namespace that is exposed to
|
||||
//! the consensus client.
|
||||
|
||||
use alloy_eips::{eip4844::BlobAndProofV1, BlockId, BlockNumberOrTag};
|
||||
use alloy_eips::{eip4844::BlobAndProofV1, eip7685::Requests, BlockId, BlockNumberOrTag};
|
||||
use alloy_json_rpc::RpcObject;
|
||||
use alloy_primitives::{Address, BlockHash, Bytes, B256, U256, U64};
|
||||
use alloy_rpc_types::{
|
||||
@ -57,7 +57,7 @@ pub trait EngineApi<Engine: EngineTypes> {
|
||||
payload: ExecutionPayloadV3,
|
||||
versioned_hashes: Vec<B256>,
|
||||
parent_beacon_block_root: B256,
|
||||
execution_requests: Vec<Bytes>,
|
||||
execution_requests: Requests,
|
||||
) -> RpcResult<PayloadStatus>;
|
||||
|
||||
/// See also <https://github.com/ethereum/execution-apis/blob/6709c2a795b707202e93c4f2867fa0bf2640a84f/src/engine/paris.md#engine_forkchoiceupdatedv1>
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
use crate::{
|
||||
capabilities::EngineCapabilities, metrics::EngineApiMetrics, EngineApiError, EngineApiResult,
|
||||
};
|
||||
use alloy_eips::eip4844::BlobAndProofV1;
|
||||
use alloy_primitives::{BlockHash, BlockNumber, Bytes, B256, U64};
|
||||
use alloy_eips::{eip4844::BlobAndProofV1, eip7685::Requests};
|
||||
use alloy_primitives::{BlockHash, BlockNumber, B256, U64};
|
||||
use alloy_rpc_types_engine::{
|
||||
CancunPayloadFields, ClientVersionV1, ExecutionPayload, ExecutionPayloadBodiesV1,
|
||||
ExecutionPayloadInputV2, ExecutionPayloadV1, ExecutionPayloadV3, ForkchoiceState,
|
||||
@ -189,7 +189,7 @@ where
|
||||
parent_beacon_block_root: B256,
|
||||
// TODO(onbjerg): Figure out why we even get these here, since we'll check the requests
|
||||
// from execution against the requests root in the header.
|
||||
execution_requests: Vec<Bytes>,
|
||||
execution_requests: Requests,
|
||||
) -> EngineApiResult<PayloadStatus> {
|
||||
let payload = ExecutionPayload::from(payload);
|
||||
let payload_or_attrs =
|
||||
@ -677,7 +677,7 @@ where
|
||||
payload: ExecutionPayloadV3,
|
||||
versioned_hashes: Vec<B256>,
|
||||
parent_beacon_block_root: B256,
|
||||
execution_requests: Vec<Bytes>,
|
||||
execution_requests: Requests,
|
||||
) -> RpcResult<PayloadStatus> {
|
||||
trace!(target: "rpc::engine", "Serving engine_newPayloadV4");
|
||||
let start = Instant::now();
|
||||
|
||||
Reference in New Issue
Block a user