diff --git a/crates/rpc/rpc-api/src/engine.rs b/crates/rpc/rpc-api/src/engine.rs index 175825fe92..aca0af4e76 100644 --- a/crates/rpc/rpc-api/src/engine.rs +++ b/crates/rpc/rpc-api/src/engine.rs @@ -252,6 +252,18 @@ pub trait EngineApi { &self, versioned_hashes: Vec, ) -> RpcResult>>>; + + /// Returns the Block Access Lists for the given block hashes. + /// + /// See also + #[method(name = "getBALsByHashV1")] + async fn get_bals_by_hash_v1(&self, block_hashes: Vec) -> RpcResult>; + + /// Returns the Block Access Lists for the given block range. + /// + /// See also + #[method(name = "getBALsByRangeV1")] + async fn get_bals_by_range_v1(&self, start: U64, count: U64) -> RpcResult>; } /// A subset of the ETH rpc interface: diff --git a/crates/rpc/rpc-engine-api/src/engine_api.rs b/crates/rpc/rpc-engine-api/src/engine_api.rs index 8db352f7b4..b1e9986c41 100644 --- a/crates/rpc/rpc-engine-api/src/engine_api.rs +++ b/crates/rpc/rpc-engine-api/src/engine_api.rs @@ -1161,6 +1161,33 @@ where trace!(target: "rpc::engine", "Serving engine_getBlobsV3"); Ok(self.get_blobs_v3_metered(versioned_hashes)?) } + + /// Handler for `engine_getBALsByHashV1` + /// + /// See also + async fn get_bals_by_hash_v1( + &self, + _block_hashes: Vec, + ) -> RpcResult> { + trace!(target: "rpc::engine", "Serving engine_getBALsByHashV1"); + Err(EngineApiError::EngineObjectValidationError( + reth_payload_primitives::EngineObjectValidationError::UnsupportedFork, + ))? + } + + /// Handler for `engine_getBALsByRangeV1` + /// + /// See also + async fn get_bals_by_range_v1( + &self, + _start: U64, + _count: U64, + ) -> RpcResult> { + trace!(target: "rpc::engine", "Serving engine_getBALsByRangeV1"); + Err(EngineApiError::EngineObjectValidationError( + reth_payload_primitives::EngineObjectValidationError::UnsupportedFork, + ))? + } } impl IntoEngineApiRpcModule diff --git a/typos.toml b/typos.toml index 25f5439266..896c2c783e 100644 --- a/typos.toml +++ b/typos.toml @@ -37,3 +37,4 @@ ONL = "ONL" # Part of base64 encoded ENR Iy = "Iy" # Part of base64 encoded ENR flate = "flate" # zlib-flate is a valid tool name Pn = "Pn" # Part of UPnP (Universal Plug and Play) +BA = "BA" # Part of BAL - Block Access List (EIP-7928)