tendermint/
genesis.rs

1//! Genesis data
2
3use serde::{Deserialize, Serialize};
4
5use crate::{chain, consensus, prelude::*, serializers, validator, AppHash, Time};
6
7/// Genesis data
8#[derive(Clone, Debug, Serialize, Deserialize)]
9pub struct Genesis<AppState = serde_json::Value> {
10    /// Time of genesis
11    pub genesis_time: Time,
12
13    /// Chain ID
14    pub chain_id: chain::Id,
15
16    /// Starting height of the blockchain
17    #[serde(with = "serializers::from_str")]
18    pub initial_height: i64,
19
20    /// Consensus parameters
21    pub consensus_params: consensus::Params,
22
23    /// Validators
24    #[serde(default)]
25    pub validators: Vec<validator::Info>,
26
27    /// App hash
28    #[serde(with = "serializers::apphash")]
29    pub app_hash: AppHash,
30
31    /// App state
32    pub app_state: AppState,
33}