Struct ClientState
pub struct ClientState {
pub chain_id: String,
pub trust_level: Option<Fraction>,
pub trusting_period: Option<Duration>,
pub unbonding_period: Option<Duration>,
pub max_clock_drift: Option<Duration>,
pub frozen_height: Option<Height>,
pub latest_height: Option<Height>,
pub proof_specs: Vec<ProofSpec>,
pub upgrade_path: Vec<String>,
pub allow_update_after_expiry: bool,
pub allow_update_after_misbehaviour: bool,
}
Expand description
ClientState from Tendermint tracks the current validator set, latest height, and a possible frozen height.
Fields§
§chain_id: String
§trust_level: Option<Fraction>
§trusting_period: Option<Duration>
duration of the period since the LastestTimestamp during which the submitted headers are valid for upgrade
unbonding_period: Option<Duration>
duration of the staking unbonding period
max_clock_drift: Option<Duration>
defines how much new (untrusted) header’s Time can drift into the future.
frozen_height: Option<Height>
Block height when the client was frozen due to a misbehaviour
latest_height: Option<Height>
Latest height the client was updated to
proof_specs: Vec<ProofSpec>
Proof specifications used in verifying counterparty state
upgrade_path: Vec<String>
Path at which next upgraded client will be committed.
Each element corresponds to the key for a single CommitmentProof in the
chained proof. NOTE: ClientState must stored under
{upgradePath}/{upgradeHeight}/clientState
ConsensusState must be stored
under {upgradepath}/{upgradeHeight}/consensusState
For SDK chains using
the default upgrade module, upgrade_path should be []string{“upgrade”,
“upgradedIBCState”}`
allow_update_after_expiry: bool
allow_update_after_expiry is deprecated
allow_update_after_misbehaviour: bool
allow_update_after_misbehaviour is deprecated
Trait Implementations§
§impl Clone for ClientState
impl Clone for ClientState
§fn clone(&self) -> ClientState
fn clone(&self) -> ClientState
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for ClientState
impl Debug for ClientState
§impl Default for ClientState
impl Default for ClientState
§fn default() -> ClientState
fn default() -> ClientState
§impl Message for ClientState
impl Message for ClientState
§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.§impl Name for ClientState
impl Name for ClientState
§const NAME: &'static str = "ClientState"
const NAME: &'static str = "ClientState"
Message
.
This name is the same as it appears in the source .proto file, e.g. FooBar
.§const PACKAGE: &'static str = "ibc.lightclients.tendermint.v1"
const PACKAGE: &'static str = "ibc.lightclients.tendermint.v1"
.
, e.g. google.protobuf
.§fn full_name() -> String
fn full_name() -> String
Message
.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation
.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.§impl PartialEq for ClientState
impl PartialEq for ClientState
impl StructuralPartialEq for ClientState
Auto Trait Implementations§
impl Freeze for ClientState
impl RefUnwindSafe for ClientState
impl Send for ClientState
impl Sync for ClientState
impl Unpin for ClientState
impl UnwindSafe for ClientState
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered
].