Skip to main content

ethrex_rpc/debug/
chain_config.rs

1use serde_json::Value;
2
3use crate::{RpcApiContext, RpcErr, RpcHandler};
4
5pub struct ChainConfigRequest;
6
7impl RpcHandler for ChainConfigRequest {
8    fn parse(params: &Option<Vec<Value>>) -> Result<Self, RpcErr> {
9        if let Some(params) = params
10            && !params.is_empty()
11        {
12            return Err(RpcErr::BadParams(format!(
13                "Expected no params and {} were provided",
14                params.len()
15            )));
16        }
17        Ok(ChainConfigRequest)
18    }
19
20    async fn handle(&self, context: RpcApiContext) -> Result<Value, RpcErr> {
21        let chain_config = context.storage.get_chain_config();
22        serde_json::to_value(chain_config).map_err(|e| RpcErr::Internal(e.to_string()))
23    }
24}