near_jsonrpc_client/methods/experimental/
genesis_config.rs

1//! Queries the genesis config of the network.
2//!
3//! ## Example
4//!
5//! Returns the genesis config of the network.
6//!
7//! ```
8//! use near_jsonrpc_client::{methods, JsonRpcClient};
9//!
10//! # #[tokio::main]
11//! # async fn main() -> Result<(), Box<dyn std::error::Error>> {
12//! let client = JsonRpcClient::connect("https://rpc.mainnet.near.org");
13//!
14//! let request = methods::EXPERIMENTAL_genesis_config::RpcGenesisConfigRequest;
15//!
16//! let response = client.call(request).await?;
17//!
18//! assert!(matches!(
19//!     response,
20//!     methods::EXPERIMENTAL_genesis_config::RpcGenesisConfigResponse { .. }
21//! ));
22//! # Ok(())
23//! # }
24//! ```
25use super::*;
26
27pub type RpcGenesisConfigResponse = near_chain_configs::GenesisConfig;
28
29#[derive(Debug)]
30pub struct RpcGenesisConfigRequest;
31
32#[derive(Debug, Serialize, Deserialize, Error)]
33#[error("{}", unreachable!("fatal: this error should never be constructed"))]
34pub enum RpcGenesisConfigError {}
35
36impl RpcHandlerResponse for RpcGenesisConfigResponse {}
37
38impl RpcHandlerError for RpcGenesisConfigError {}
39
40impl RpcMethod for RpcGenesisConfigRequest {
41    type Response = RpcGenesisConfigResponse;
42    type Error = RpcGenesisConfigError;
43
44    fn method_name(&self) -> &str {
45        "EXPERIMENTAL_genesis_config"
46    }
47
48    fn params(&self) -> Result<serde_json::Value, io::Error> {
49        Ok(json!(null))
50    }
51}
52
53impl private::Sealed for RpcGenesisConfigRequest {}