From d54802cc4b3ac75963b4c00539994e874fc0efee Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 2 Aug 2024 10:49:39 -0300 Subject: [PATCH 1/2] feat: add rpc endpoint `eth_blockNumber` --- crates/rpc/eth/block.rs | 10 ++++++++++ crates/rpc/rpc.rs | 1 + 2 files changed, 11 insertions(+) diff --git a/crates/rpc/eth/block.rs b/crates/rpc/eth/block.rs index 81f2bbed407..c7d2d79b3b1 100644 --- a/crates/rpc/eth/block.rs +++ b/crates/rpc/eth/block.rs @@ -511,6 +511,16 @@ pub fn create_access_list( serde_json::to_value(result).map_err(|_| RpcErr::Internal) } +pub fn block_number(storage: Store) -> Result { + info!("Requested chain id"); + match storage.get_latest_block_number() { + Ok(Some(block_number)) => { + serde_json::to_value(format!("{:#x}", block_number)).map_err(|_| RpcErr::Internal) + } + _ => Err(RpcErr::Internal), + } +} + impl Display for BlockIdentifier { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { diff --git a/crates/rpc/rpc.rs b/crates/rpc/rpc.rs index 2b1738eb84a..9de1591c8b6 100644 --- a/crates/rpc/rpc.rs +++ b/crates/rpc/rpc.rs @@ -139,6 +139,7 @@ pub fn map_requests(req: &RpcRequest, storage: Store) -> Result { let request = CreateAccessListRequest::parse(&req.params).ok_or(RpcErr::BadParams)?; block::create_access_list(&request, storage) } + "eth_blockNumber" => block::block_number(storage), "engine_forkchoiceUpdatedV3" => engine::forkchoice_updated_v3(), "engine_newPayloadV3" => { let request = From 0b556d1cad6ed68fdf26ab43faa2279415d66993 Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 2 Aug 2024 11:22:25 -0300 Subject: [PATCH 2/2] fix log --- crates/rpc/eth/block.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/rpc/eth/block.rs b/crates/rpc/eth/block.rs index c7d2d79b3b1..2e24b671fc8 100644 --- a/crates/rpc/eth/block.rs +++ b/crates/rpc/eth/block.rs @@ -512,7 +512,7 @@ pub fn create_access_list( } pub fn block_number(storage: Store) -> Result { - info!("Requested chain id"); + info!("Requested latest block number"); match storage.get_latest_block_number() { Ok(Some(block_number)) => { serde_json::to_value(format!("{:#x}", block_number)).map_err(|_| RpcErr::Internal)