Trait ibc_test_framework::prelude::ChainHandle
source · [−]pub trait ChainHandle: 'static + Clone + Send + Sync + Serialize + Debug {
Show 49 methods
fn new(chain_id: ChainId, sender: Sender<ChainRequest>) -> Self;
fn id(&self) -> ChainId;
fn shutdown(&self) -> Result<(), Error>;
fn health_check(&self) -> Result<HealthCheck, Error>;
fn subscribe(
&self
) -> Result<Receiver<Arc<Result<EventBatch, Error>>>, Error>;
fn send_messages_and_wait_commit(
&self,
tracked_msgs: TrackedMsgs
) -> Result<Vec<IbcEventWithHeight, Global>, Error>;
fn send_messages_and_wait_check_tx(
&self,
tracked_msgs: TrackedMsgs
) -> Result<Vec<Response, Global>, Error>;
fn get_signer(&self) -> Result<Signer, Error>;
fn config(&self) -> Result<ChainConfig, Error>;
fn get_key(&self) -> Result<KeyEntry, Error>;
fn add_key(&self, key_name: String, key: KeyEntry) -> Result<(), Error>;
fn ibc_version(&self) -> Result<Option<Version>, Error>;
fn query_balance(&self, key_name: Option<String>) -> Result<Balance, Error>;
fn query_denom_trace(&self, hash: String) -> Result<DenomTrace, Error>;
fn query_application_status(&self) -> Result<ChainStatus, Error>;
fn query_clients(
&self,
request: QueryClientStatesRequest
) -> Result<Vec<IdentifiedAnyClientState, Global>, Error>;
fn query_client_state(
&self,
request: QueryClientStateRequest,
include_proof: IncludeProof
) -> Result<(AnyClientState, Option<MerkleProof>), Error>;
fn query_client_connections(
&self,
request: QueryClientConnectionsRequest
) -> Result<Vec<ConnectionId, Global>, Error>;
fn query_consensus_state(
&self,
request: QueryConsensusStateRequest,
include_proof: IncludeProof
) -> Result<(AnyConsensusState, Option<MerkleProof>), Error>;
fn query_consensus_states(
&self,
request: QueryConsensusStatesRequest
) -> Result<Vec<AnyConsensusStateWithHeight, Global>, Error>;
fn query_upgraded_client_state(
&self,
request: QueryUpgradedClientStateRequest
) -> Result<(AnyClientState, MerkleProof), Error>;
fn query_upgraded_consensus_state(
&self,
request: QueryUpgradedConsensusStateRequest
) -> Result<(AnyConsensusState, MerkleProof), Error>;
fn query_commitment_prefix(&self) -> Result<CommitmentPrefix, Error>;
fn query_compatible_versions(&self) -> Result<Vec<Version, Global>, Error>;
fn query_connection(
&self,
request: QueryConnectionRequest,
include_proof: IncludeProof
) -> Result<(ConnectionEnd, Option<MerkleProof>), Error>;
fn query_connections(
&self,
request: QueryConnectionsRequest
) -> Result<Vec<IdentifiedConnectionEnd, Global>, Error>;
fn query_connection_channels(
&self,
request: QueryConnectionChannelsRequest
) -> Result<Vec<IdentifiedChannelEnd, Global>, Error>;
fn query_next_sequence_receive(
&self,
request: QueryNextSequenceReceiveRequest,
include_proof: IncludeProof
) -> Result<(Sequence, Option<MerkleProof>), Error>;
fn query_channels(
&self,
request: QueryChannelsRequest
) -> Result<Vec<IdentifiedChannelEnd, Global>, Error>;
fn query_channel(
&self,
request: QueryChannelRequest,
include_proof: IncludeProof
) -> Result<(ChannelEnd, Option<MerkleProof>), Error>;
fn query_channel_client_state(
&self,
request: QueryChannelClientStateRequest
) -> Result<Option<IdentifiedAnyClientState>, Error>;
fn build_header(
&self,
trusted_height: Height,
target_height: Height,
client_state: AnyClientState
) -> Result<(AnyHeader, Vec<AnyHeader, Global>), Error>;
fn build_client_state(
&self,
height: Height,
settings: ClientSettings
) -> Result<AnyClientState, Error>;
fn build_consensus_state(
&self,
trusted: Height,
target: Height,
client_state: AnyClientState
) -> Result<AnyConsensusState, Error>;
fn check_misbehaviour(
&self,
update: UpdateClient,
client_state: AnyClientState
) -> Result<Option<MisbehaviourEvidence>, Error>;
fn build_connection_proofs_and_client_state(
&self,
message_type: ConnectionMsgType,
connection_id: &ConnectionId,
client_id: &ClientId,
height: Height
) -> Result<(Option<AnyClientState>, Proofs), Error>;
fn build_channel_proofs(
&self,
port_id: &PortId,
channel_id: &ChannelId,
height: Height
) -> Result<Proofs, Error>;
fn build_packet_proofs(
&self,
packet_type: PacketMsgType,
port_id: &PortId,
channel_id: &ChannelId,
sequence: Sequence,
height: Height
) -> Result<Proofs, Error>;
fn query_packet_commitment(
&self,
request: QueryPacketCommitmentRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>;
fn query_packet_commitments(
&self,
request: QueryPacketCommitmentsRequest
) -> Result<(Vec<Sequence, Global>, Height), Error>;
fn query_packet_receipt(
&self,
request: QueryPacketReceiptRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>;
fn query_unreceived_packets(
&self,
request: QueryUnreceivedPacketsRequest
) -> Result<Vec<Sequence, Global>, Error>;
fn query_packet_acknowledgement(
&self,
request: QueryPacketAcknowledgementRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>;
fn query_packet_acknowledgements(
&self,
request: QueryPacketAcknowledgementsRequest
) -> Result<(Vec<Sequence, Global>, Height), Error>;
fn query_unreceived_acknowledgements(
&self,
request: QueryUnreceivedAcksRequest
) -> Result<Vec<Sequence, Global>, Error>;
fn query_txs(
&self,
request: QueryTxRequest
) -> Result<Vec<IbcEventWithHeight, Global>, Error>;
fn query_blocks(
&self,
request: QueryBlockRequest
) -> Result<(Vec<IbcEvent, Global>, Vec<IbcEvent, Global>), Error>;
fn query_host_consensus_state(
&self,
request: QueryHostConsensusStateRequest
) -> Result<AnyConsensusState, Error>;
fn query_latest_height(&self) -> Result<Height, Error> { ... }
}Required Methods
fn new(chain_id: ChainId, sender: Sender<ChainRequest>) -> Self
fn health_check(&self) -> Result<HealthCheck, Error>
fn health_check(&self) -> Result<HealthCheck, Error>
Perform a health check
Subscribe to the events emitted by the chain.
fn send_messages_and_wait_commit(
&self,
tracked_msgs: TrackedMsgs
) -> Result<Vec<IbcEventWithHeight, Global>, Error>
fn send_messages_and_wait_commit(
&self,
tracked_msgs: TrackedMsgs
) -> Result<Vec<IbcEventWithHeight, Global>, Error>
Send the given msgs to the chain, packaged as one or more transactions,
and return the list of events emitted by the chain after the transaction was committed.
fn send_messages_and_wait_check_tx(
&self,
tracked_msgs: TrackedMsgs
) -> Result<Vec<Response, Global>, Error>
fn send_messages_and_wait_check_tx(
&self,
tracked_msgs: TrackedMsgs
) -> Result<Vec<Response, Global>, Error>
Submit messages asynchronously. Does not block waiting on the chain to produce the resulting events. Instead of events, this method returns a set of transaction hashes.
fn get_signer(&self) -> Result<Signer, Error>
fn config(&self) -> Result<ChainConfig, Error>
Return the version of the IBC protocol that this chain is running, if known.
Query the balance of the given account for the denom used to pay tx fees. If no account is given, behavior must be specified, e.g. retrieve it from configuration file.
fn query_denom_trace(&self, hash: String) -> Result<DenomTrace, Error>
fn query_denom_trace(&self, hash: String) -> Result<DenomTrace, Error>
Query the denomination trace given a trace hash.
fn query_application_status(&self) -> Result<ChainStatus, Error>
fn query_application_status(&self) -> Result<ChainStatus, Error>
Query the latest height and timestamp the application is at
fn query_clients(
&self,
request: QueryClientStatesRequest
) -> Result<Vec<IdentifiedAnyClientState, Global>, Error>
fn query_clients(
&self,
request: QueryClientStatesRequest
) -> Result<Vec<IdentifiedAnyClientState, Global>, Error>
Performs a query to retrieve the state of all clients that a chain hosts.
fn query_client_state(
&self,
request: QueryClientStateRequest,
include_proof: IncludeProof
) -> Result<(AnyClientState, Option<MerkleProof>), Error>
fn query_client_state(
&self,
request: QueryClientStateRequest,
include_proof: IncludeProof
) -> Result<(AnyClientState, Option<MerkleProof>), Error>
Performs a query to retrieve the state of the specified light client. A proof can optionally be returned along with the result.
fn query_client_connections(
&self,
request: QueryClientConnectionsRequest
) -> Result<Vec<ConnectionId, Global>, Error>
fn query_client_connections(
&self,
request: QueryClientConnectionsRequest
) -> Result<Vec<ConnectionId, Global>, Error>
Performs a query to retrieve the identifiers of all connections.
fn query_consensus_state(
&self,
request: QueryConsensusStateRequest,
include_proof: IncludeProof
) -> Result<(AnyConsensusState, Option<MerkleProof>), Error>
fn query_consensus_state(
&self,
request: QueryConsensusStateRequest,
include_proof: IncludeProof
) -> Result<(AnyConsensusState, Option<MerkleProof>), Error>
Performs a query to retrieve the consensus state for a specified height
consensus_height that the specified light client stores.
fn query_consensus_states(
&self,
request: QueryConsensusStatesRequest
) -> Result<Vec<AnyConsensusStateWithHeight, Global>, Error>
fn query_consensus_states(
&self,
request: QueryConsensusStatesRequest
) -> Result<Vec<AnyConsensusStateWithHeight, Global>, Error>
Performs a query to retrieve all the consensus states that the specified light client stores.
fn query_upgraded_client_state(
&self,
request: QueryUpgradedClientStateRequest
) -> Result<(AnyClientState, MerkleProof), Error>
fn query_upgraded_consensus_state(
&self,
request: QueryUpgradedConsensusStateRequest
) -> Result<(AnyConsensusState, MerkleProof), Error>
fn query_commitment_prefix(&self) -> Result<CommitmentPrefix, Error>
fn query_connection(
&self,
request: QueryConnectionRequest,
include_proof: IncludeProof
) -> Result<(ConnectionEnd, Option<MerkleProof>), Error>
fn query_connection(
&self,
request: QueryConnectionRequest,
include_proof: IncludeProof
) -> Result<(ConnectionEnd, Option<MerkleProof>), Error>
Performs a query to retrieve the connection associated with a given connection identifier. A proof can optionally be returned along with the result.
fn query_connections(
&self,
request: QueryConnectionsRequest
) -> Result<Vec<IdentifiedConnectionEnd, Global>, Error>
fn query_connections(
&self,
request: QueryConnectionsRequest
) -> Result<Vec<IdentifiedConnectionEnd, Global>, Error>
Performs a query to retrieve the identifiers of all connections.
fn query_connection_channels(
&self,
request: QueryConnectionChannelsRequest
) -> Result<Vec<IdentifiedChannelEnd, Global>, Error>
fn query_connection_channels(
&self,
request: QueryConnectionChannelsRequest
) -> Result<Vec<IdentifiedChannelEnd, Global>, Error>
Performs a query to retrieve all channels associated with a connection.
fn query_next_sequence_receive(
&self,
request: QueryNextSequenceReceiveRequest,
include_proof: IncludeProof
) -> Result<(Sequence, Option<MerkleProof>), Error>
fn query_next_sequence_receive(
&self,
request: QueryNextSequenceReceiveRequest,
include_proof: IncludeProof
) -> Result<(Sequence, Option<MerkleProof>), Error>
Performs a query to retrieve nextSequenceRecv stored at path
path::SeqRecvsPath as defined in ICS-4. A proof can optionally be
returned along with the result.
fn query_channels(
&self,
request: QueryChannelsRequest
) -> Result<Vec<IdentifiedChannelEnd, Global>, Error>
fn query_channels(
&self,
request: QueryChannelsRequest
) -> Result<Vec<IdentifiedChannelEnd, Global>, Error>
Performs a query to retrieve all the channels of a chain.
fn query_channel(
&self,
request: QueryChannelRequest,
include_proof: IncludeProof
) -> Result<(ChannelEnd, Option<MerkleProof>), Error>
fn query_channel(
&self,
request: QueryChannelRequest,
include_proof: IncludeProof
) -> Result<(ChannelEnd, Option<MerkleProof>), Error>
Performs a query to retrieve the channel associated with a given channel identifier. A proof can optionally be returned along with the result.
fn query_channel_client_state(
&self,
request: QueryChannelClientStateRequest
) -> Result<Option<IdentifiedAnyClientState>, Error>
fn query_channel_client_state(
&self,
request: QueryChannelClientStateRequest
) -> Result<Option<IdentifiedAnyClientState>, Error>
Performs a query to retrieve the client state for the channel associated with a given channel identifier.
fn build_header(
&self,
trusted_height: Height,
target_height: Height,
client_state: AnyClientState
) -> Result<(AnyHeader, Vec<AnyHeader, Global>), Error>
fn build_client_state(
&self,
height: Height,
settings: ClientSettings
) -> Result<AnyClientState, Error>
fn build_client_state(
&self,
height: Height,
settings: ClientSettings
) -> Result<AnyClientState, Error>
Constructs a client state at the given height
fn build_consensus_state(
&self,
trusted: Height,
target: Height,
client_state: AnyClientState
) -> Result<AnyConsensusState, Error>
fn build_consensus_state(
&self,
trusted: Height,
target: Height,
client_state: AnyClientState
) -> Result<AnyConsensusState, Error>
Constructs a consensus state at the given height
fn check_misbehaviour(
&self,
update: UpdateClient,
client_state: AnyClientState
) -> Result<Option<MisbehaviourEvidence>, Error>
fn build_connection_proofs_and_client_state(
&self,
message_type: ConnectionMsgType,
connection_id: &ConnectionId,
client_id: &ClientId,
height: Height
) -> Result<(Option<AnyClientState>, Proofs), Error>
fn build_channel_proofs(
&self,
port_id: &PortId,
channel_id: &ChannelId,
height: Height
) -> Result<Proofs, Error>
fn build_packet_proofs(
&self,
packet_type: PacketMsgType,
port_id: &PortId,
channel_id: &ChannelId,
sequence: Sequence,
height: Height
) -> Result<Proofs, Error>
fn query_packet_commitment(
&self,
request: QueryPacketCommitmentRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>
fn query_packet_commitment(
&self,
request: QueryPacketCommitmentRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>
Performs a query to retrieve a stored packet commitment hash, stored on
the chain at path path::CommitmentsPath. A proof can optionally be
returned along with the result.
fn query_packet_commitments(
&self,
request: QueryPacketCommitmentsRequest
) -> Result<(Vec<Sequence, Global>, Height), Error>
fn query_packet_commitments(
&self,
request: QueryPacketCommitmentsRequest
) -> Result<(Vec<Sequence, Global>, Height), Error>
Performs a query to retrieve all the packet commitments hashes associated with a channel. Returns the corresponding packet sequence numbers and the height at which they were retrieved.
fn query_packet_receipt(
&self,
request: QueryPacketReceiptRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>
fn query_packet_receipt(
&self,
request: QueryPacketReceiptRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>
Performs a query to retrieve a given packet receipt, stored on the chain at path
path::CommitmentsPath. A proof can optionally be returned along with the result.
fn query_unreceived_packets(
&self,
request: QueryUnreceivedPacketsRequest
) -> Result<Vec<Sequence, Global>, Error>
fn query_unreceived_packets(
&self,
request: QueryUnreceivedPacketsRequest
) -> Result<Vec<Sequence, Global>, Error>
Performs a query about which IBC packets in the specified list has not been received. Returns the sequence numbers of the packets that were not received.
For example, given a request with the sequence numbers [5,6,7,8], a
response of [7,8] would indicate that packets 5 & 6 were received,
while packets 7, 8 were not.
fn query_packet_acknowledgement(
&self,
request: QueryPacketAcknowledgementRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>
fn query_packet_acknowledgement(
&self,
request: QueryPacketAcknowledgementRequest,
include_proof: IncludeProof
) -> Result<(Vec<u8, Global>, Option<MerkleProof>), Error>
Performs a query to retrieve a stored packet acknowledgement hash,
stored on the chain at path path::AcksPath. A proof can optionally be
returned along with the result.
fn query_packet_acknowledgements(
&self,
request: QueryPacketAcknowledgementsRequest
) -> Result<(Vec<Sequence, Global>, Height), Error>
fn query_packet_acknowledgements(
&self,
request: QueryPacketAcknowledgementsRequest
) -> Result<(Vec<Sequence, Global>, Height), Error>
Performs a query to retrieve all the packet acknowledgements associated with a channel. Returns the corresponding packet sequence numbers and the height at which they were retrieved.
fn query_unreceived_acknowledgements(
&self,
request: QueryUnreceivedAcksRequest
) -> Result<Vec<Sequence, Global>, Error>
fn query_unreceived_acknowledgements(
&self,
request: QueryUnreceivedAcksRequest
) -> Result<Vec<Sequence, Global>, Error>
Performs a query about which IBC packets in the specified list has not been acknowledged. Returns the sequence numbers of the packets that were not acknowledged.
For example, given a request with the sequence numbers [5,6,7,8], a
response of [7,8] would indicate that packets 5 & 6 were acknowledged,
while packets 7, 8 were not.
fn query_txs(
&self,
request: QueryTxRequest
) -> Result<Vec<IbcEventWithHeight, Global>, Error>
fn query_blocks(
&self,
request: QueryBlockRequest
) -> Result<(Vec<IbcEvent, Global>, Vec<IbcEvent, Global>), Error>
fn query_host_consensus_state(
&self,
request: QueryHostConsensusStateRequest
) -> Result<AnyConsensusState, Error>
Provided Methods
fn query_latest_height(&self) -> Result<Height, Error>
Implementors
impl ChainHandle for BaseChainHandle
impl<Handle> ChainHandle for CountingChainHandle<Handle> where
Handle: ChainHandle,
impl<Tag, Handle> ChainHandle for MonoTagged<Tag, Handle> where
Tag: Send + Sync + 'static,
Handle: ChainHandle,
Implement ChainHandle for any existential type Handle: ChainHandle.
This allows us to tag values for chains that are tagged by position
in N-ary chains.