From d23bc9b8b49070a2b84b77e32d4a6e40918db689 Mon Sep 17 00:00:00 2001 From: Luca Joss Date: Thu, 27 Jun 2024 15:12:41 +0200 Subject: [PATCH] Add genesis-chunked CLI --- rpc/src/client/bin/main.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rpc/src/client/bin/main.rs b/rpc/src/client/bin/main.rs index d53de8602..7b15498cf 100644 --- a/rpc/src/client/bin/main.rs +++ b/rpc/src/client/bin/main.rs @@ -136,6 +136,8 @@ enum ClientRequest { ConsensusState, /// Get the node's genesis data. Genesis, + /// Get the node's genesis data by chunks + GenesisChunked, /// Get the node's health. Health, /// Request the latest block. @@ -413,6 +415,20 @@ where serde_json::to_string_pretty(&client.genesis::().await?) .map_err(Error::serde)? }, + ClientRequest::GenesisChunked => { + let mut data = Vec::new(); + let mut chunks = client.genesis_chunked_stream().await; + + while let Some(chunk) = chunks.next().await { + let mut chunk = chunk?; + data.append(&mut chunk); + } + + let genesis: tendermint::genesis::Genesis = + serde_json::from_slice(&data).map_err(Error::serde)?; + + serde_json::to_string_pretty(&genesis).map_err(Error::serde)? + }, ClientRequest::Health => { serde_json::to_string_pretty(&client.health().await?).map_err(Error::serde)? },