#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientState {
#[prost(string, tag="1")]
pub chain_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub trust_level: ::core::option::Option<Fraction>,
#[prost(message, optional, tag="3")]
pub trusting_period: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
#[prost(message, optional, tag="4")]
pub unbonding_period: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
#[prost(message, optional, tag="5")]
pub max_clock_drift: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
#[prost(message, optional, tag="6")]
pub frozen_height: ::core::option::Option<super::super::super::core::client::v1::Height>,
#[prost(message, optional, tag="7")]
pub latest_height: ::core::option::Option<super::super::super::core::client::v1::Height>,
#[prost(message, repeated, tag="8")]
pub proof_specs: ::prost::alloc::vec::Vec<super::super::super::super::ics23::ProofSpec>,
#[prost(string, repeated, tag="9")]
pub upgrade_path: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[deprecated]
#[prost(bool, tag="10")]
pub allow_update_after_expiry: bool,
#[deprecated]
#[prost(bool, tag="11")]
pub allow_update_after_misbehaviour: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConsensusState {
#[prost(message, optional, tag="1")]
pub timestamp: ::core::option::Option<super::super::super::super::google::protobuf::Timestamp>,
#[prost(message, optional, tag="2")]
pub root: ::core::option::Option<super::super::super::core::commitment::v1::MerkleRoot>,
#[prost(bytes="vec", tag="3")]
pub next_validators_hash: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Misbehaviour {
#[prost(string, tag="1")]
pub client_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub header_1: ::core::option::Option<Header>,
#[prost(message, optional, tag="3")]
pub header_2: ::core::option::Option<Header>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Header {
#[prost(message, optional, tag="1")]
pub signed_header: ::core::option::Option<::tendermint_proto::types::SignedHeader>,
#[prost(message, optional, tag="2")]
pub validator_set: ::core::option::Option<::tendermint_proto::types::ValidatorSet>,
#[prost(message, optional, tag="3")]
pub trusted_height: ::core::option::Option<super::super::super::core::client::v1::Height>,
#[prost(message, optional, tag="4")]
pub trusted_validators: ::core::option::Option<::tendermint_proto::types::ValidatorSet>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Fraction {
#[prost(uint64, tag="1")]
pub numerator: u64,
#[prost(uint64, tag="2")]
pub denominator: u64,
}