pub struct MockClientState {
pub header: MockHeader,
pub trusting_period: Duration,
pub frozen: bool,
}
Expand description
A mock of a client state. For an example of a real structure that this mocks, you can see
ClientState
of ics07_tendermint/client_state.rs.
Fields§
§header: MockHeader
§trusting_period: Duration
§frozen: bool
Implementations§
Source§impl MockClientState
impl MockClientState
Sourcepub fn new(header: MockHeader) -> Self
pub fn new(header: MockHeader) -> Self
Initializes a new MockClientState
with the given MockHeader
and a
trusting period of 10 seconds as a default. If the trusting period
needs to be changed, use the with_trusting_period
method to override it.
pub fn latest_height(&self) -> Height
pub fn refresh_time(&self) -> Option<Duration>
pub fn with_trusting_period(self, trusting_period: Duration) -> Self
pub fn frozen(self) -> Self
pub fn unfrozen(self) -> Self
pub fn is_frozen(&self) -> bool
Trait Implementations§
Source§impl ClientStateCommon for MockClientState
impl ClientStateCommon for MockClientState
Source§fn verify_consensus_state(
&self,
consensus_state: Any,
host_timestamp: &Timestamp,
) -> Result<(), ClientError>
fn verify_consensus_state( &self, consensus_state: Any, host_timestamp: &Timestamp, ) -> Result<(), ClientError>
Performs basic validation on the
consensus_state
. Read moreSource§fn client_type(&self) -> ClientType
fn client_type(&self) -> ClientType
Type of client associated with this state (eg. Tendermint)
Source§fn latest_height(&self) -> Height
fn latest_height(&self) -> Height
The latest height the client was updated to
Source§fn validate_proof_height(&self, proof_height: Height) -> Result<(), ClientError>
fn validate_proof_height(&self, proof_height: Height) -> Result<(), ClientError>
Validate that the client is at a sufficient height
Source§fn serialize_path(&self, path: Path) -> Result<PathBytes, ClientError>
fn serialize_path(&self, path: Path) -> Result<PathBytes, ClientError>
Serializes a given path object into a raw path bytes. Read more
Source§fn verify_upgrade_client(
&self,
upgraded_client_state: Any,
upgraded_consensus_state: Any,
_proof_upgrade_client: CommitmentProofBytes,
_proof_upgrade_consensus_state: CommitmentProofBytes,
_root: &CommitmentRoot,
) -> Result<(), ClientError>
fn verify_upgrade_client( &self, upgraded_client_state: Any, upgraded_consensus_state: Any, _proof_upgrade_client: CommitmentProofBytes, _proof_upgrade_consensus_state: CommitmentProofBytes, _root: &CommitmentRoot, ) -> Result<(), ClientError>
Verify the upgraded client and consensus states and validate proofs
against the given root. Read more
Source§fn verify_membership_raw(
&self,
_prefix: &CommitmentPrefix,
_proof: &CommitmentProofBytes,
_root: &CommitmentRoot,
_path: PathBytes,
_value: Vec<u8>,
) -> Result<(), ClientError>
fn verify_membership_raw( &self, _prefix: &CommitmentPrefix, _proof: &CommitmentProofBytes, _root: &CommitmentRoot, _path: PathBytes, _value: Vec<u8>, ) -> Result<(), ClientError>
Verifies a proof of the existence of a value at a given raw path bytes.
Source§fn verify_non_membership_raw(
&self,
_prefix: &CommitmentPrefix,
_proof: &CommitmentProofBytes,
_root: &CommitmentRoot,
_path: PathBytes,
) -> Result<(), ClientError>
fn verify_non_membership_raw( &self, _prefix: &CommitmentPrefix, _proof: &CommitmentProofBytes, _root: &CommitmentRoot, _path: PathBytes, ) -> Result<(), ClientError>
Verifies the absence of a given proof at a given raw path bytes.
Source§fn verify_membership(
&self,
prefix: &CommitmentPrefix,
proof: &CommitmentProofBytes,
root: &CommitmentRoot,
path: Path,
value: Vec<u8>,
) -> Result<(), ClientError>
fn verify_membership( &self, prefix: &CommitmentPrefix, proof: &CommitmentProofBytes, root: &CommitmentRoot, path: Path, value: Vec<u8>, ) -> Result<(), ClientError>
Verifies a proof of the existence of a value at a given path object.
Source§fn verify_non_membership(
&self,
prefix: &CommitmentPrefix,
proof: &CommitmentProofBytes,
root: &CommitmentRoot,
path: Path,
) -> Result<(), ClientError>
fn verify_non_membership( &self, prefix: &CommitmentPrefix, proof: &CommitmentProofBytes, root: &CommitmentRoot, path: Path, ) -> Result<(), ClientError>
Verifies the absence of a given proof at a given path object.
Source§impl<E> ClientStateExecution<E> for MockClientStatewhere
E: ClientExecutionContext + MockClientContext,
E::ClientStateRef: From<Self>,
MockConsensusState: Convertible<E::ConsensusStateRef>,
<MockConsensusState as TryFrom<E::ConsensusStateRef>>::Error: Into<ClientError>,
impl<E> ClientStateExecution<E> for MockClientStatewhere
E: ClientExecutionContext + MockClientContext,
E::ClientStateRef: From<Self>,
MockConsensusState: Convertible<E::ConsensusStateRef>,
<MockConsensusState as TryFrom<E::ConsensusStateRef>>::Error: Into<ClientError>,
Source§fn initialise(
&self,
ctx: &mut E,
client_id: &ClientId,
consensus_state: Any,
) -> Result<(), ClientError>
fn initialise( &self, ctx: &mut E, client_id: &ClientId, consensus_state: Any, ) -> Result<(), ClientError>
Initialises the client with the initial client and consensus states. Read more
Source§fn update_state(
&self,
ctx: &mut E,
client_id: &ClientId,
header: Any,
) -> Result<Vec<Height>, ClientError>
fn update_state( &self, ctx: &mut E, client_id: &ClientId, header: Any, ) -> Result<Vec<Height>, ClientError>
Updates and stores as necessary any associated information for an IBC
client, such as the ClientState and corresponding ConsensusState. Upon
successful update, a list of consensus heights is returned. It assumes
the client_message has already been verified. Read more
Source§fn update_state_on_misbehaviour(
&self,
ctx: &mut E,
client_id: &ClientId,
_client_message: Any,
) -> Result<(), ClientError>
fn update_state_on_misbehaviour( &self, ctx: &mut E, client_id: &ClientId, _client_message: Any, ) -> Result<(), ClientError>
update_state_on_misbehaviour should perform appropriate state changes on
a client state given that misbehaviour has been detected and verified
Source§fn update_state_on_upgrade(
&self,
ctx: &mut E,
client_id: &ClientId,
upgraded_client_state: Any,
upgraded_consensus_state: Any,
) -> Result<Height, ClientError>
fn update_state_on_upgrade( &self, ctx: &mut E, client_id: &ClientId, upgraded_client_state: Any, upgraded_consensus_state: Any, ) -> Result<Height, ClientError>
Update the client state and consensus state in the store with the upgraded ones.
Source§fn update_on_recovery(
&self,
ctx: &mut E,
subject_client_id: &ClientId,
substitute_client_state: Any,
substitute_consensus_state: Any,
) -> Result<(), ClientError>
fn update_on_recovery( &self, ctx: &mut E, subject_client_id: &ClientId, substitute_client_state: Any, substitute_consensus_state: Any, ) -> Result<(), ClientError>
Update the subject client using the
substitute_client_state
in response
to a successful client recovery.Source§impl<V> ClientStateValidation<V> for MockClientStatewhere
V: ClientValidationContext + MockClientContext,
MockConsensusState: Convertible<V::ConsensusStateRef>,
<MockConsensusState as TryFrom<V::ConsensusStateRef>>::Error: Into<ClientError>,
impl<V> ClientStateValidation<V> for MockClientStatewhere
V: ClientValidationContext + MockClientContext,
MockConsensusState: Convertible<V::ConsensusStateRef>,
<MockConsensusState as TryFrom<V::ConsensusStateRef>>::Error: Into<ClientError>,
Source§fn verify_client_message(
&self,
_ctx: &V,
_client_id: &ClientId,
client_message: Any,
) -> Result<(), ClientError>
fn verify_client_message( &self, _ctx: &V, _client_id: &ClientId, client_message: Any, ) -> Result<(), ClientError>
verify_client_message must verify a client_message. A client_message
could be a Header, Misbehaviour. It must handle each type of
client_message appropriately. Calls to check_for_misbehaviour,
update_state, and update_state_on_misbehaviour will assume that the
content of the client_message has been verified and can be trusted. An
error should be returned if the client_message fails to verify.
Source§fn check_for_misbehaviour(
&self,
_ctx: &V,
_client_id: &ClientId,
client_message: Any,
) -> Result<bool, ClientError>
fn check_for_misbehaviour( &self, _ctx: &V, _client_id: &ClientId, client_message: Any, ) -> Result<bool, ClientError>
Checks for evidence of a misbehaviour in Header or Misbehaviour type. It
assumes the client_message has already been verified.
Source§fn status(&self, ctx: &V, client_id: &ClientId) -> Result<Status, ClientError>
fn status(&self, ctx: &V, client_id: &ClientId) -> Result<Status, ClientError>
Returns the status of the client. Only Active clients are allowed to process packets.
Source§fn check_substitute(
&self,
_ctx: &V,
_substitute_client_state: Any,
) -> Result<(), ClientError>
fn check_substitute( &self, _ctx: &V, _substitute_client_state: Any, ) -> Result<(), ClientError>
Verifies whether the calling (subject) client state matches the substitute
client state for the purposes of client recovery. Read more
Source§impl Clone for MockClientState
impl Clone for MockClientState
Source§fn clone(&self) -> MockClientState
fn clone(&self) -> MockClientState
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for MockClientState
impl Debug for MockClientState
Source§impl<'de> Deserialize<'de> for MockClientState
impl<'de> Deserialize<'de> for MockClientState
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<MockClientState> for Any
impl From<MockClientState> for Any
Source§fn from(client_state: MockClientState) -> Self
fn from(client_state: MockClientState) -> Self
Converts to this type from the input type.
Source§impl From<MockClientState> for AnyClientState
impl From<MockClientState> for AnyClientState
Source§fn from(value: MockClientState) -> Self
fn from(value: MockClientState) -> Self
Converts to this type from the input type.
Source§impl From<MockClientState> for ClientState
impl From<MockClientState> for ClientState
Source§fn from(value: MockClientState) -> Self
fn from(value: MockClientState) -> Self
Converts to this type from the input type.
Source§impl From<MockConsensusState> for MockClientState
impl From<MockConsensusState> for MockClientState
Source§fn from(cs: MockConsensusState) -> Self
fn from(cs: MockConsensusState) -> Self
Converts to this type from the input type.
Source§impl PartialEq for MockClientState
impl PartialEq for MockClientState
Source§impl Protobuf<Any> for MockClientState
impl Protobuf<Any> for MockClientState
Source§fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
Encode into a buffer in Protobuf format. Read more
Source§fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
Encode with a length-delimiter to a buffer in Protobuf format. Read more
Source§fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
Constructor that attempts to decode an instance from a buffer. Read more
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
Constructor that attempts to decode a length-delimited instance from
the buffer. Read more
Source§fn encoded_len(self) -> usize
fn encoded_len(self) -> usize
Returns the encoded length of the message without a length delimiter. Read more
Source§fn decode_vec(v: &[u8]) -> Result<Self, Error>
fn decode_vec(v: &[u8]) -> Result<Self, Error>
Constructor that attempts to decode a Protobuf-encoded instance from a
Vec<u8>
(or equivalent).Source§impl Protobuf<ClientState> for MockClientState
impl Protobuf<ClientState> for MockClientState
Source§fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
Encode into a buffer in Protobuf format. Read more
Source§fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
fn encode_length_delimited<B>(self, buf: &mut B) -> Result<(), Error>where
B: BufMut,
Encode with a length-delimiter to a buffer in Protobuf format. Read more
Source§fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode<B>(buf: B) -> Result<Self, Error>where
B: Buf,
Constructor that attempts to decode an instance from a buffer. Read more
Source§fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
fn decode_length_delimited<B>(buf: B) -> Result<Self, Error>where
B: Buf,
Constructor that attempts to decode a length-delimited instance from
the buffer. Read more
Source§fn encoded_len(self) -> usize
fn encoded_len(self) -> usize
Returns the encoded length of the message without a length delimiter. Read more
Source§fn decode_vec(v: &[u8]) -> Result<Self, Error>
fn decode_vec(v: &[u8]) -> Result<Self, Error>
Constructor that attempts to decode a Protobuf-encoded instance from a
Vec<u8>
(or equivalent).Source§impl Serialize for MockClientState
impl Serialize for MockClientState
Source§impl TryFrom<Any> for MockClientState
impl TryFrom<Any> for MockClientState
Source§impl TryFrom<ClientState> for MockClientState
impl TryFrom<ClientState> for MockClientState
Source§type Error = DecodingError
type Error = DecodingError
The type returned in the event of a conversion error.
impl Copy for MockClientState
impl Eq for MockClientState
impl StructuralPartialEq for MockClientState
Auto Trait Implementations§
impl Freeze for MockClientState
impl RefUnwindSafe for MockClientState
impl Send for MockClientState
impl Sync for MockClientState
impl Unpin for MockClientState
impl UnwindSafe for MockClientState
Blanket Implementations§
Source§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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request