chore: replace h64 with payload (#2149)

This commit is contained in:
Matthias Seitz
2023-04-07 09:46:15 +02:00
committed by GitHub
parent 2fd2825e24
commit 2df7b8c2ac
4 changed files with 18 additions and 16 deletions

View File

@ -1,8 +1,8 @@
use jsonrpsee::{core::RpcResult as Result, proc_macros::rpc};
use reth_primitives::{BlockHash, H64, U64};
use reth_primitives::{BlockHash, U64};
use reth_rpc_types::engine::{
ExecutionPayload, ExecutionPayloadBodies, ForkchoiceState, ForkchoiceUpdated,
PayloadAttributes, PayloadStatus, TransitionConfiguration,
PayloadAttributes, PayloadId, PayloadStatus, TransitionConfiguration,
};
#[cfg_attr(not(feature = "client"), rpc(server))]
@ -39,11 +39,11 @@ pub trait EngineApi {
///
/// Caution: This should not return the `withdrawals` field
#[method(name = "engine_getPayloadV1")]
async fn get_payload_v1(&self, payload_id: H64) -> Result<ExecutionPayload>;
async fn get_payload_v1(&self, payload_id: PayloadId) -> Result<ExecutionPayload>;
/// See also <https://github.com/ethereum/execution-apis/blob/6709c2a795b707202e93c4f2867fa0bf2640a84f/src/engine/shanghai.md#engine_getpayloadv2>
#[method(name = "engine_getPayloadV2")]
async fn get_payload_v2(&self, payload_id: H64) -> Result<ExecutionPayload>;
async fn get_payload_v2(&self, payload_id: PayloadId) -> Result<ExecutionPayload>;
/// See also <https://github.com/ethereum/execution-apis/blob/6452a6b194d7db269bf1dbd087a267251d3cc7f8/src/engine/shanghai.md#engine_getpayloadbodiesbyhashv1>
#[method(name = "engine_getPayloadBodiesByHashV1")]

View File

@ -1,9 +1,11 @@
use crate::{EngineApiError, EngineApiMessage, EngineApiResult};
use futures::StreamExt;
use reth_beacon_consensus::BeaconEngineMessage;
use reth_primitives::{BlockHash, BlockId, BlockNumber, ChainSpec, Hardfork, H64};
use reth_primitives::{BlockHash, BlockId, BlockNumber, ChainSpec, Hardfork};
use reth_provider::{BlockProvider, EvmEnvProvider, HeaderProvider, StateProviderFactory};
use reth_rpc_types::engine::{ExecutionPayload, ExecutionPayloadBodies, TransitionConfiguration};
use reth_rpc_types::engine::{
ExecutionPayload, ExecutionPayloadBodies, PayloadId, TransitionConfiguration,
};
use std::{
future::Future,
pin::Pin,
@ -83,7 +85,7 @@ impl<Client: HeaderProvider + BlockProvider + StateProviderFactory + EvmEnvProvi
///
/// NOTE: Will always result in `PayloadUnknown` since we don't support block
/// building for now.
pub fn get_payload(&self, _payload_id: H64) -> Option<ExecutionPayload> {
pub fn get_payload(&self, _payload_id: PayloadId) -> Option<ExecutionPayload> {
None
}

View File

@ -1,17 +1,17 @@
use crate::EngineApiSender;
use reth_beacon_consensus::BeaconEngineSender;
use reth_interfaces::consensus::ForkchoiceState;
use reth_primitives::{BlockHash, BlockNumber, H64};
use reth_primitives::{BlockHash, BlockNumber};
use reth_rpc_types::engine::{
ExecutionPayload, ExecutionPayloadBodies, ForkchoiceUpdated, PayloadAttributes, PayloadStatus,
TransitionConfiguration,
ExecutionPayload, ExecutionPayloadBodies, ForkchoiceUpdated, PayloadAttributes, PayloadId,
PayloadStatus, TransitionConfiguration,
};
/// Message type for communicating with [`EngineApi`][crate::EngineApi].
#[derive(Debug)]
pub enum EngineApiMessage {
/// Get payload message
GetPayload(H64, EngineApiSender<ExecutionPayload>),
GetPayload(PayloadId, EngineApiSender<ExecutionPayload>),
/// Get payload bodies by range message
GetPayloadBodiesByRange(BlockNumber, u64, EngineApiSender<ExecutionPayloadBodies>),
/// Get payload bodies by hash message

View File

@ -1,14 +1,14 @@
use async_trait::async_trait;
use jsonrpsee::core::{Error, RpcResult as Result};
use reth_interfaces::consensus::ForkchoiceState;
use reth_primitives::{BlockHash, ChainSpec, Hardfork, H64, U64};
use reth_primitives::{BlockHash, ChainSpec, Hardfork, U64};
use reth_rpc_api::EngineApiServer;
use reth_rpc_engine_api::{
EngineApiError, EngineApiHandle, EngineApiMessage, EngineApiMessageVersion, EngineApiResult,
};
use reth_rpc_types::engine::{
ExecutionPayload, ExecutionPayloadBodies, ForkchoiceUpdated, PayloadAttributes, PayloadStatus,
TransitionConfiguration, CAPABILITIES,
ExecutionPayload, ExecutionPayloadBodies, ForkchoiceUpdated, PayloadAttributes, PayloadId,
PayloadStatus, TransitionConfiguration, CAPABILITIES,
};
use std::sync::Arc;
use tokio::sync::oneshot::{self, Receiver};
@ -155,14 +155,14 @@ impl EngineApiServer for EngineApi {
/// See also <https://github.com/ethereum/execution-apis/blob/8db51dcd2f4bdfbd9ad6e4a7560aac97010ad063/src/engine/specification.md#engine_getPayloadV1>
///
/// Caution: This should not return the `withdrawals` field
async fn get_payload_v1(&self, payload_id: H64) -> Result<ExecutionPayload> {
async fn get_payload_v1(&self, payload_id: PayloadId) -> Result<ExecutionPayload> {
let (tx, rx) = oneshot::channel();
self.delegate_request(EngineApiMessage::GetPayload(payload_id, tx), rx).await
}
/// Handler for `engine_getPayloadV2`
/// See also <https://github.com/ethereum/execution-apis/blob/main/src/engine/specification.md#engine_getpayloadv2>
async fn get_payload_v2(&self, payload_id: H64) -> Result<ExecutionPayload> {
async fn get_payload_v2(&self, payload_id: PayloadId) -> Result<ExecutionPayload> {
let (tx, rx) = oneshot::channel();
self.delegate_request(EngineApiMessage::GetPayload(payload_id, tx), rx).await
}