chore: make return for debug_codeByHash optional (#14572)

This commit is contained in:
cakevm
2025-02-18 19:42:15 +01:00
committed by GitHub
parent 545d5bdf16
commit 534b028203
2 changed files with 14 additions and 7 deletions

View File

@ -198,7 +198,11 @@ pub trait DebugApi {
/// Returns the code associated with a given hash at the specified block ID.
/// If no block ID is provided, it defaults to the latest block.
#[method(name = "codeByHash")]
async fn debug_code_by_hash(&self, hash: B256, block_id: Option<BlockId>) -> RpcResult<Bytes>;
async fn debug_code_by_hash(
&self,
hash: B256,
block_id: Option<BlockId>,
) -> RpcResult<Option<Bytes>>;
/// Turns on CPU profiling for the given duration and writes profile data to disk.
#[method(name = "cpuProfile")]

View File

@ -654,21 +654,20 @@ where
.await
}
/// Returns the code associated with a given hash at the specified block ID.
/// If no block ID is provided, it defaults to the latest block.
/// Returns the code associated with a given hash at the specified block ID. If no code is
/// found, it returns None. If no block ID is provided, it defaults to the latest block.
pub async fn debug_code_by_hash(
&self,
hash: B256,
block_id: Option<BlockId>,
) -> Result<Bytes, Eth::Error> {
) -> Result<Option<Bytes>, Eth::Error> {
Ok(self
.provider()
.state_by_block_id(block_id.unwrap_or_default())
.map_err(Eth::Error::from_eth_err)?
.bytecode_by_hash(&hash)
.map_err(Eth::Error::from_eth_err)?
.unwrap_or_default()
.original_bytes())
.map(|b| b.original_bytes()))
}
/// Executes the configured transaction with the environment on the given database.
@ -1051,7 +1050,11 @@ where
Ok(())
}
async fn debug_code_by_hash(&self, hash: B256, block_id: Option<BlockId>) -> RpcResult<Bytes> {
async fn debug_code_by_hash(
&self,
hash: B256,
block_id: Option<BlockId>,
) -> RpcResult<Option<Bytes>> {
Self::debug_code_by_hash(self, hash, block_id).await.map_err(Into::into)
}