eigen_client_eth/client.rs
1use alloy::eips::BlockNumberOrTag;
2use alloy::primitives::BlockNumber;
3use alloy::rpc::types::eth::Block;
4
5#[async_trait::async_trait]
6pub trait BackendClient {
7 type Error;
8
9 /// Get the latest block number.
10 ///
11 /// # Returns
12 ///
13 /// The latest block number.
14 async fn block_number(&self) -> Result<BlockNumber, Self::Error>;
15
16 /// Get the block hash given its block number.
17 ///
18 /// # Arguments
19 ///
20 /// * `number` - The block number.
21 ///
22 /// # Returns
23 ///
24 /// The block having that number.
25 async fn block_by_number(&self, number: BlockNumberOrTag)
26 -> Result<Option<Block>, Self::Error>;
27}