use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct ChainInfo {
pub chain_name: String,
pub status: String,
pub network_type: String,
pub pretty_name: String,
pub chain_id: String,
pub bech32_prefix: String,
pub daemon_name: String,
pub node_home: String,
pub slip44: u32,
pub genesis: Genesis,
pub codebase: Codebase,
pub peers: Peers,
pub apis: Apis,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Genesis {
pub genesis_url: String,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Codebase {
pub git_repo: String,
pub recommended_version: String,
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new")]
pub compatible_versions: Vec<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Peers {
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new")]
pub seeds: Vec<Seed>,
pub persistent_peers: Vec<PersistentPeer>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Seed {
pub id: String,
pub address: String,
pub provider: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct PersistentPeer {
pub id: String,
pub address: String,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Apis {
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new")]
pub rpc: Vec<Rpc>,
#[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new")]
pub rest: Vec<Rest>,
pub grpc: Vec<Grpc>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Rpc {
pub address: String,
pub provider: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Rest {
pub address: String,
pub provider: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(default)]
pub struct Grpc {
pub address: String,
pub provider: Option<String>,
}