near_jsonrpc_client/methods/
status.rs

1//! Requests the status of the connected RPC node.
2//!
3//! This includes information about sync status, nearcore node version, protocol version, the current set of validators, etc.
4//!
5//! ## Example
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.testnet.near.org");
13//!
14//! let request = methods::status::RpcStatusRequest;
15//!
16//! let response = client.call(request).await?;
17//!
18//! assert!(matches!(
19//!     response,
20//!     methods::status::RpcStatusResponse { .. }
21//! ));
22//! # Ok(())
23//! # }
24//! ```
25use super::*;
26
27pub use near_jsonrpc_primitives::types::status::RpcStatusError;
28
29pub type RpcStatusResponse = near_primitives::views::StatusResponse;
30
31#[derive(Debug)]
32pub struct RpcStatusRequest;
33
34impl RpcHandlerResponse for RpcStatusResponse {}
35
36impl RpcMethod for RpcStatusRequest {
37    type Response = RpcStatusResponse;
38    type Error = RpcStatusError;
39
40    fn method_name(&self) -> &str {
41        "status"
42    }
43
44    fn params(&self) -> Result<serde_json::Value, io::Error> {
45        Ok(json!(null))
46    }
47}
48
49impl private::Sealed for RpcStatusRequest {}