1use serde::{Deserialize, Serialize};
4
5use crate::{chain, consensus, prelude::*, serializers, validator, AppHash, Time};
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
9pub struct Genesis<AppState = serde_json::Value> {
10 pub genesis_time: Time,
12
13 pub chain_id: chain::Id,
15
16 #[serde(with = "serializers::from_str")]
18 pub initial_height: i64,
19
20 pub consensus_params: consensus::Params,
22
23 #[serde(default)]
25 pub validators: Vec<validator::Info>,
26
27 #[serde(with = "serializers::apphash")]
29 pub app_hash: AppHash,
30
31 pub app_state: AppState,
33}