reth_rpc_eth_api/
types.rs1use crate::{AsEthApiError, FromEthApiError, RpcNodeCore};
4use alloy_rpc_types_eth::Block;
5use reth_rpc_convert::{RpcConvert, SignableTxRequest};
6pub use reth_rpc_convert::{RpcTransaction, RpcTxReq, RpcTypes};
7use reth_storage_api::ProviderTx;
8use std::error::Error;
9
10pub trait EthApiTypes: Send + Sync + Clone {
19 type Error: Into<jsonrpsee_types::error::ErrorObject<'static>>
21 + FromEthApiError
22 + AsEthApiError
23 + From<<Self::RpcConvert as RpcConvert>::Error>
24 + Error
25 + Send
26 + Sync;
27 type NetworkTypes: RpcTypes;
29 type RpcConvert: RpcConvert<Network = Self::NetworkTypes>;
31
32 fn converter(&self) -> &Self::RpcConvert;
34}
35
36pub type RpcBlock<T> = Block<RpcTransaction<T>, RpcHeader<T>>;
38
39pub type RpcReceipt<T> = <T as RpcTypes>::Receipt;
41
42pub type RpcHeader<T> = <T as RpcTypes>::Header;
44
45pub type RpcError<T> = <T as EthApiTypes>::Error;
47
48pub trait FullEthApiTypes
50where
51 Self: RpcNodeCore
52 + EthApiTypes<
53 NetworkTypes: RpcTypes<
54 TransactionRequest: SignableTxRequest<ProviderTx<Self::Provider>>,
55 >,
56 RpcConvert: RpcConvert<Primitives = Self::Primitives>,
57 >,
58{
59}
60
61impl<T> FullEthApiTypes for T where
62 T: RpcNodeCore
63 + EthApiTypes<
64 NetworkTypes: RpcTypes<
65 TransactionRequest: SignableTxRequest<ProviderTx<Self::Provider>>,
66 >,
67 RpcConvert: RpcConvert<Primitives = Self::Primitives>,
68 >
69{
70}