Skip to main content

tendermint_rpc/endpoint/
genesis_chunked.rs

1//! `/genesis_chunked` endpoint JSON-RPC wrapper
2
3use alloc::{
4    string::{String, ToString},
5    vec::Vec,
6};
7use serde::{Deserialize, Serialize};
8use tendermint_proto::serializers;
9
10use crate::{dialect::Dialect, request::RequestMessage};
11
12/// Get the genesis state in multiple chunks for the current chain
13#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
14pub struct Request {
15    pub chunk: String,
16}
17
18impl Request {
19    pub fn new(chunk: u64) -> Self {
20        Self {
21            chunk: chunk.to_string(),
22        }
23    }
24}
25
26impl RequestMessage for Request {
27    fn method(&self) -> crate::Method {
28        crate::Method::GenesisChunked
29    }
30}
31
32impl<S> crate::Request<S> for Request
33where
34    S: Dialect,
35{
36    type Response = Response;
37}
38
39impl<S> crate::SimpleRequest<S> for Request
40where
41    S: Dialect,
42{
43    type Output = Response;
44}
45
46/// Block responses
47#[derive(Clone, Debug, Deserialize, Serialize)]
48pub struct Response {
49    #[serde(with = "serializers::from_str")]
50    pub chunk: u64,
51    #[serde(with = "serializers::from_str")]
52    pub total: u64,
53    #[serde(with = "serializers::bytes::base64string")]
54    pub data: Vec<u8>,
55}
56
57impl crate::Response for Response {}