Skip to content

Commit

Permalink
rollback header changes
Browse files Browse the repository at this point in the history
  • Loading branch information
klkvr committed Nov 3, 2024
1 parent 19072c7 commit 00de90f
Show file tree
Hide file tree
Showing 14 changed files with 100 additions and 173 deletions.
1 change: 0 additions & 1 deletion crates/node/builder/src/launch/common.rs
Original file line number Diff line number Diff line change
Expand Up @@ -939,7 +939,6 @@ where
EthApiClient::<
alloy_rpc_types::Transaction,
alloy_rpc_types::Block,
alloy_rpc_types::Header,
alloy_rpc_types::Receipt,
>::chain_id(&client)
.await
Expand Down
2 changes: 0 additions & 2 deletions crates/rpc/rpc-builder/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,6 @@ use reth_rpc::{
use reth_rpc_api::servers::*;
use reth_rpc_eth_api::{
helpers::{Call, EthApiSpec, EthTransactions, LoadPendingBlock, TraceExt},
types::RpcHeader,
EthApiServer, EthApiTypes, FullEthApiServer, RpcBlock, RpcReceipt, RpcTransaction,
};
use reth_rpc_eth_types::{EthConfig, EthStateCache, EthSubscriptionIdProvider};
Expand Down Expand Up @@ -1073,7 +1072,6 @@ where
EthApi: EthApiServer<
RpcTransaction<EthApi::NetworkTypes>,
RpcBlock<EthApi::NetworkTypes>,
RpcHeader<EthApi::NetworkTypes>,
RpcReceipt<EthApi::NetworkTypes>,
> + EthApiTypes,
BlockExecutor: BlockExecutorProvider,
Expand Down
135 changes: 52 additions & 83 deletions crates/rpc/rpc-builder/tests/it/http.rs
Original file line number Diff line number Diff line change
Expand Up @@ -173,126 +173,101 @@ where
.unwrap();

// Implemented
EthApiClient::<Transaction, Block, Header, Receipt>::protocol_version(client).await.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::chain_id(client).await.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::accounts(client).await.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::get_account(
client,
address,
block_number.into(),
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::block_number(client).await.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::get_code(client, address, None)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::send_raw_transaction(client, tx)
EthApiClient::<Transaction, Block, Receipt>::protocol_version(client).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::chain_id(client).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::accounts(client).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::get_account(client, address, block_number.into())
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::fee_history(
EthApiClient::<Transaction, Block, Receipt>::block_number(client).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::get_code(client, address, None).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::send_raw_transaction(client, tx).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::fee_history(
client,
U64::from(0),
block_number,
None,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::balance(client, address, None)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::transaction_count(client, address, None)
EthApiClient::<Transaction, Block, Receipt>::balance(client, address, None).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::transaction_count(client, address, None)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::storage_at(
EthApiClient::<Transaction, Block, Receipt>::storage_at(
client,
address,
U256::default().into(),
None,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::block_by_hash(client, hash, false)
EthApiClient::<Transaction, Block, Receipt>::block_by_hash(client, hash, false).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::block_by_number(client, block_number, false)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::block_by_number(
EthApiClient::<Transaction, Block, Receipt>::block_transaction_count_by_number(
client,
block_number,
false,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::block_transaction_count_by_number(
client,
block_number,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::block_transaction_count_by_hash(
client, hash,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::block_uncles_count_by_hash(client, hash)
EthApiClient::<Transaction, Block, Receipt>::block_transaction_count_by_hash(client, hash)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::block_uncles_count_by_number(
client,
block_number,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::uncle_by_block_hash_and_index(
client, hash, index,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::uncle_by_block_number_and_index(
EthApiClient::<Transaction, Block, Receipt>::block_uncles_count_by_hash(client, hash)
.await
.unwrap();
EthApiClient::<Transaction, Block, Receipt>::block_uncles_count_by_number(client, block_number)
.await
.unwrap();
EthApiClient::<Transaction, Block, Receipt>::uncle_by_block_hash_and_index(client, hash, index)
.await
.unwrap();
EthApiClient::<Transaction, Block, Receipt>::uncle_by_block_number_and_index(
client,
block_number,
index,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::sign(client, address, bytes.clone())
EthApiClient::<Transaction, Block, Receipt>::sign(client, address, bytes.clone())
.await
.unwrap_err();
EthApiClient::<Transaction, Block, Header, Receipt>::sign_typed_data(
client, address, typed_data,
)
.await
.unwrap_err();
EthApiClient::<Transaction, Block, Header, Receipt>::transaction_by_hash(client, tx_hash)
EthApiClient::<Transaction, Block, Receipt>::sign_typed_data(client, address, typed_data)
.await
.unwrap_err();
EthApiClient::<Transaction, Block, Receipt>::transaction_by_hash(client, tx_hash)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::transaction_by_block_hash_and_index(
EthApiClient::<Transaction, Block, Receipt>::transaction_by_block_hash_and_index(
client, hash, index,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::transaction_by_block_number_and_index(
EthApiClient::<Transaction, Block, Receipt>::transaction_by_block_number_and_index(
client,
block_number,
index,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::create_access_list(
EthApiClient::<Transaction, Block, Receipt>::create_access_list(
client,
call_request.clone(),
Some(block_number.into()),
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::estimate_gas(
EthApiClient::<Transaction, Block, Receipt>::estimate_gas(
client,
call_request.clone(),
Some(block_number.into()),
None,
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::call(
EthApiClient::<Transaction, Block, Receipt>::call(
client,
call_request.clone(),
Some(block_number.into()),
Expand All @@ -301,41 +276,38 @@ where
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::syncing(client).await.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::send_transaction(
client,
transaction_request,
)
.await
.unwrap_err();
EthApiClient::<Transaction, Block, Header, Receipt>::hashrate(client).await.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::submit_hashrate(
EthApiClient::<Transaction, Block, Receipt>::syncing(client).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::send_transaction(client, transaction_request)
.await
.unwrap_err();
EthApiClient::<Transaction, Block, Receipt>::hashrate(client).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::submit_hashrate(
client,
U256::default(),
B256::default(),
)
.await
.unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::gas_price(client).await.unwrap_err();
EthApiClient::<Transaction, Block, Header, Receipt>::max_priority_fee_per_gas(client)
EthApiClient::<Transaction, Block, Receipt>::gas_price(client).await.unwrap_err();
EthApiClient::<Transaction, Block, Receipt>::max_priority_fee_per_gas(client)
.await
.unwrap_err();
EthApiClient::<Transaction, Block, Header, Receipt>::get_proof(client, address, vec![], None)
EthApiClient::<Transaction, Block, Receipt>::get_proof(client, address, vec![], None)
.await
.unwrap();

// Unimplemented
assert!(is_unimplemented(
EthApiClient::<Transaction, Block, Header, Receipt>::author(client).await.err().unwrap()
EthApiClient::<Transaction, Block, Receipt>::author(client).await.err().unwrap()
));
assert!(is_unimplemented(
EthApiClient::<Transaction, Block, Header, Receipt>::is_mining(client).await.err().unwrap()
EthApiClient::<Transaction, Block, Receipt>::is_mining(client).await.err().unwrap()
));
assert!(is_unimplemented(
EthApiClient::<Transaction, Block, Header, Receipt>::get_work(client).await.err().unwrap()
EthApiClient::<Transaction, Block, Receipt>::get_work(client).await.err().unwrap()
));
assert!(is_unimplemented(
EthApiClient::<Transaction, Block, Header, Receipt>::submit_work(
EthApiClient::<Transaction, Block, Receipt>::submit_work(
client,
B64::default(),
B256::default(),
Expand All @@ -346,13 +318,10 @@ where
.unwrap()
));
assert!(is_unimplemented(
EthApiClient::<Transaction, Block, Header, Receipt>::sign_transaction(
client,
call_request.clone()
)
.await
.err()
.unwrap()
EthApiClient::<Transaction, Block, Receipt>::sign_transaction(client, call_request.clone())
.await
.err()
.unwrap()
));
}

Expand Down
4 changes: 2 additions & 2 deletions crates/rpc/rpc-builder/tests/it/middleware.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use crate::utils::{test_address, test_rpc_builder};
use alloy_rpc_types_eth::{Block, Header, Receipt, Transaction};
use alloy_rpc_types_eth::{Block, Receipt, Transaction};
use jsonrpsee::{
server::{middleware::rpc::RpcServiceT, RpcServiceBuilder},
types::Request,
Expand Down Expand Up @@ -75,7 +75,7 @@ async fn test_rpc_middleware() {
.unwrap();

let client = handle.http_client().unwrap();
EthApiClient::<Transaction, Block, Header, Receipt>::protocol_version(&client).await.unwrap();
EthApiClient::<Transaction, Block, Receipt>::protocol_version(&client).await.unwrap();
let count = mylayer.count.load(Ordering::Relaxed);
assert_eq!(count, 1);
}
21 changes: 7 additions & 14 deletions crates/rpc/rpc-eth-api/src/core.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ use alloy_rpc_types::{
serde_helpers::JsonStorageKey,
simulate::{SimulatePayload, SimulatedBlock},
state::{EvmOverrides, StateOverride},
BlockOverrides, Bundle, EIP1186AccountProofResponse, EthCallResponse, FeeHistory, Index,
StateContext, SyncStatus, Work,
BlockOverrides, Bundle, EIP1186AccountProofResponse, EthCallResponse, FeeHistory, Header,
Index, StateContext, SyncStatus, Work,
};
use alloy_rpc_types_eth::transaction::TransactionRequest;
use jsonrpsee::{core::RpcResult, proc_macros::rpc};
Expand All @@ -19,7 +19,6 @@ use tracing::trace;

use crate::{
helpers::{EthApiSpec, EthBlocks, EthCall, EthFees, EthState, EthTransactions, FullEthApi},
types::RpcHeader,
RpcBlock, RpcReceipt, RpcTransaction,
};

Expand All @@ -29,7 +28,6 @@ pub trait FullEthApiServer:
EthApiServer<
RpcTransaction<Self::NetworkTypes>,
RpcBlock<Self::NetworkTypes>,
RpcHeader<Self::NetworkTypes>,
RpcReceipt<Self::NetworkTypes>,
> + FullEthApi
+ Clone
Expand All @@ -40,7 +38,6 @@ impl<T> FullEthApiServer for T where
T: EthApiServer<
RpcTransaction<T::NetworkTypes>,
RpcBlock<T::NetworkTypes>,
RpcHeader<T::NetworkTypes>,
RpcReceipt<T::NetworkTypes>,
> + FullEthApi
+ Clone
Expand All @@ -50,7 +47,7 @@ impl<T> FullEthApiServer for T where
/// Eth rpc interface: <https://ethereum.github.io/execution-apis/api-documentation/>
#[cfg_attr(not(feature = "client"), rpc(server, namespace = "eth"))]
#[cfg_attr(feature = "client", rpc(server, client, namespace = "eth"))]
pub trait EthApi<T: RpcObject, B: RpcObject, H: RpcObject, R: RpcObject> {
pub trait EthApi<T: RpcObject, B: RpcObject, R: RpcObject> {
/// Returns the protocol version encoded as a string.
#[method(name = "protocolVersion")]
async fn protocol_version(&self) -> RpcResult<U64>;
Expand Down Expand Up @@ -204,11 +201,11 @@ pub trait EthApi<T: RpcObject, B: RpcObject, H: RpcObject, R: RpcObject> {

/// Returns the block's header at given number.
#[method(name = "getHeaderByNumber")]
async fn header_by_number(&self, hash: BlockNumberOrTag) -> RpcResult<Option<H>>;
async fn header_by_number(&self, hash: BlockNumberOrTag) -> RpcResult<Option<Header>>;

/// Returns the block's header at given hash.
#[method(name = "getHeaderByHash")]
async fn header_by_hash(&self, hash: B256) -> RpcResult<Option<H>>;
async fn header_by_hash(&self, hash: B256) -> RpcResult<Option<Header>>;

/// `eth_simulateV1` executes an arbitrary number of transactions on top of the requested state.
/// The transactions are packed into individual blocks. Overrides can be provided.
Expand Down Expand Up @@ -369,7 +366,6 @@ impl<T>
EthApiServer<
RpcTransaction<T::NetworkTypes>,
RpcBlock<T::NetworkTypes>,
RpcHeader<T::NetworkTypes>,
RpcReceipt<T::NetworkTypes>,
> for T
where
Expand Down Expand Up @@ -611,16 +607,13 @@ where
}

/// Handler for: `eth_getHeaderByNumber`
async fn header_by_number(
&self,
block_number: BlockNumberOrTag,
) -> RpcResult<Option<RpcHeader<T::NetworkTypes>>> {
async fn header_by_number(&self, block_number: BlockNumberOrTag) -> RpcResult<Option<Header>> {
trace!(target: "rpc::eth", ?block_number, "Serving eth_getHeaderByNumber");
Ok(EthBlocks::rpc_block_header(self, block_number.into()).await?)
}

/// Handler for: `eth_getHeaderByHash`
async fn header_by_hash(&self, hash: B256) -> RpcResult<Option<RpcHeader<T::NetworkTypes>>> {
async fn header_by_hash(&self, hash: B256) -> RpcResult<Option<Header>> {
trace!(target: "rpc::eth", ?hash, "Serving eth_getHeaderByHash");
Ok(EthBlocks::rpc_block_header(self, hash.into()).await?)
}
Expand Down
8 changes: 3 additions & 5 deletions crates/rpc/rpc-eth-api/src/helpers/block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@ use reth_primitives::{BlockId, Receipt, SealedBlock, SealedBlockWithSenders};
use reth_provider::{BlockIdReader, BlockReader, BlockReaderIdExt, HeaderProvider};
use reth_rpc_types_compat::block::from_block;

use crate::{
node::RpcNodeCoreExt, types::RpcHeader, FromEthApiError, FullEthApiTypes, RpcBlock, RpcReceipt,
};
use crate::{node::RpcNodeCoreExt, FromEthApiError, FullEthApiTypes, RpcBlock, RpcReceipt};

use super::{LoadPendingBlock, LoadReceipt, SpawnBlocking};

Expand All @@ -26,7 +24,7 @@ pub trait EthBlocks: LoadBlock {
fn rpc_block_header(
&self,
block_id: BlockId,
) -> impl Future<Output = Result<Option<RpcHeader<Self::NetworkTypes>>, Self::Error>> + Send
) -> impl Future<Output = Result<Option<Header>, Self::Error>> + Send
where
Self: FullEthApiTypes,
{
Expand Down Expand Up @@ -194,7 +192,7 @@ pub trait EthBlocks: LoadBlock {
let block = Block::uncle_from_header(uncle);
Block {
header: Header {
inner: block.header.inner.into(),
inner: block.header.inner,
size: block.header.size,
total_difficulty: block.header.total_difficulty,
hash: block.header.hash,
Expand Down
Loading

0 comments on commit 00de90f

Please sign in to comment.