syntax = "proto3"; package ibc.core.channel.v1; import "ibc/core/client/v1/client.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "ibc/core/channel/v1/channel.proto"; import "google/api/annotations.proto"; import "google/protobuf/any.proto"; import "gogoproto/gogo.proto"; option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/04-channel/types"; // Query provides defines the gRPC querier service service Query { // Channel queries an IBC Channel. rpc Channel(QueryChannelRequest) returns (QueryChannelResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}"; } // Channels queries all the IBC channels of a chain. rpc Channels(QueryChannelsRequest) returns (QueryChannelsResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels"; } // ConnectionChannels queries all the channels associated with a connection // end. rpc ConnectionChannels(QueryConnectionChannelsRequest) returns (QueryConnectionChannelsResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/connections/{connection}/channels"; } // ChannelClientState queries for the client state for the channel associated // with the provided channel identifiers. rpc ChannelClientState(QueryChannelClientStateRequest) returns (QueryChannelClientStateResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/client_state"; } // ChannelConsensusState queries for the consensus state for the channel // associated with the provided channel identifiers. rpc ChannelConsensusState(QueryChannelConsensusStateRequest) returns (QueryChannelConsensusStateResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/consensus_state/version/" "{version_number}/height/{version_height}"; } // PacketCommitment queries a stored packet commitment hash. rpc PacketCommitment(QueryPacketCommitmentRequest) returns (QueryPacketCommitmentResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments/{sequence}"; } // PacketCommitments returns all the packet commitments hashes associated // with a channel. rpc PacketCommitments(QueryPacketCommitmentsRequest) returns (QueryPacketCommitmentsResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments"; } // PacketReceipt queries if a given packet sequence has been received on the queried chain rpc PacketReceipt(QueryPacketReceiptRequest) returns (QueryPacketReceiptResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_receipts/{sequence}"; } // PacketAcknowledgement queries a stored packet acknowledgement hash. rpc PacketAcknowledgement(QueryPacketAcknowledgementRequest) returns (QueryPacketAcknowledgementResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_acks/{sequence}"; } // PacketAcknowledgements returns all the packet acknowledgements associated // with a channel. rpc PacketAcknowledgements(QueryPacketAcknowledgementsRequest) returns (QueryPacketAcknowledgementsResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_acknowledgements"; } // UnreceivedPackets returns all the unreceived IBC packets associated with a // channel and sequences. rpc UnreceivedPackets(QueryUnreceivedPacketsRequest) returns (QueryUnreceivedPacketsResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments/" "{packet_commitment_sequences}/unreceived_packets"; } // UnreceivedAcks returns all the unreceived IBC acknowledgements associated with a // channel and sequences. rpc UnreceivedAcks(QueryUnreceivedAcksRequest) returns (QueryUnreceivedAcksResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments/" "{packet_ack_sequences}/unreceived_acks"; } // NextSequenceReceive returns the next receive sequence for a given channel. rpc NextSequenceReceive(QueryNextSequenceReceiveRequest) returns (QueryNextSequenceReceiveResponse) { option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/next_sequence"; } } // QueryChannelRequest is the request type for the Query/Channel RPC method message QueryChannelRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; } // QueryChannelResponse is the response type for the Query/Channel RPC method. // Besides the Channel end, it includes a proof and the height from which the // proof was retrieved. message QueryChannelResponse { // channel associated with the request identifiers ibc.core.channel.v1.Channel channel = 1; // merkle proof of existence bytes proof = 2; // height at which the proof was retrieved ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; } // QueryChannelsRequest is the request type for the Query/Channels RPC method message QueryChannelsRequest { // pagination request cosmos.base.query.v1beta1.PageRequest pagination = 1; } // QueryChannelsResponse is the response type for the Query/Channels RPC method. message QueryChannelsResponse { // list of stored channels of the chain. repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; // pagination response cosmos.base.query.v1beta1.PageResponse pagination = 2; // query block height ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; } // QueryConnectionChannelsRequest is the request type for the // Query/QueryConnectionChannels RPC method message QueryConnectionChannelsRequest { // connection unique identifier string connection = 1; // pagination request cosmos.base.query.v1beta1.PageRequest pagination = 2; } // QueryConnectionChannelsResponse is the Response type for the // Query/QueryConnectionChannels RPC method message QueryConnectionChannelsResponse { // list of channels associated with a connection. repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; // pagination response cosmos.base.query.v1beta1.PageResponse pagination = 2; // query block height ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; } // QueryChannelClientStateRequest is the request type for the Query/ClientState // RPC method message QueryChannelClientStateRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; } // QueryChannelClientStateResponse is the Response type for the // Query/QueryChannelClientState RPC method message QueryChannelClientStateResponse { // client state associated with the channel ibc.core.client.v1.IdentifiedClientState identified_client_state = 1; // merkle proof of existence bytes proof = 2; // height at which the proof was retrieved ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; } // QueryChannelConsensusStateRequest is the request type for the // Query/ConsensusState RPC method message QueryChannelConsensusStateRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // version number of the consensus state uint64 version_number = 3; // version height of the consensus state uint64 version_height = 4; } // QueryChannelClientStateResponse is the Response type for the // Query/QueryChannelClientState RPC method message QueryChannelConsensusStateResponse { // consensus state associated with the channel google.protobuf.Any consensus_state = 1; // client ID associated with the consensus state string client_id = 2; // merkle proof of existence bytes proof = 3; // height at which the proof was retrieved ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; } // QueryPacketCommitmentRequest is the request type for the // Query/PacketCommitment RPC method message QueryPacketCommitmentRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // packet sequence uint64 sequence = 3; } // QueryPacketCommitmentResponse defines the client query response for a packet // which also includes a proof and the height from which the proof was // retrieved message QueryPacketCommitmentResponse { // packet associated with the request fields bytes commitment = 1; // merkle proof of existence bytes proof = 2; // height at which the proof was retrieved ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; } // QueryPacketCommitmentsRequest is the request type for the // Query/QueryPacketCommitments RPC method message QueryPacketCommitmentsRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // pagination request cosmos.base.query.v1beta1.PageRequest pagination = 3; } // QueryPacketCommitmentsResponse is the request type for the // Query/QueryPacketCommitments RPC method message QueryPacketCommitmentsResponse { repeated ibc.core.channel.v1.PacketState commitments = 1; // pagination response cosmos.base.query.v1beta1.PageResponse pagination = 2; // query block height ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; } // QueryPacketReceiptRequest is the request type for the // Query/PacketReceipt RPC method message QueryPacketReceiptRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // packet sequence uint64 sequence = 3; } // QueryPacketReceiptResponse defines the client query response for a packet receipt // which also includes a proof, and the height from which the proof was // retrieved message QueryPacketReceiptResponse { // success flag for if receipt exists bool received = 2; // merkle proof of existence bytes proof = 3; // height at which the proof was retrieved ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; } // QueryPacketAcknowledgementRequest is the request type for the // Query/PacketAcknowledgement RPC method message QueryPacketAcknowledgementRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // packet sequence uint64 sequence = 3; } // QueryPacketAcknowledgementResponse defines the client query response for a // packet which also includes a proof and the height from which the // proof was retrieved message QueryPacketAcknowledgementResponse { // packet associated with the request fields bytes acknowledgement = 1; // merkle proof of existence bytes proof = 2; // height at which the proof was retrieved ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; } // QueryPacketAcknowledgementsRequest is the request type for the // Query/QueryPacketCommitments RPC method message QueryPacketAcknowledgementsRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // pagination request cosmos.base.query.v1beta1.PageRequest pagination = 3; } // QueryPacketAcknowledgemetsResponse is the request type for the // Query/QueryPacketAcknowledgements RPC method message QueryPacketAcknowledgementsResponse { repeated ibc.core.channel.v1.PacketState acknowledgements = 1; // pagination response cosmos.base.query.v1beta1.PageResponse pagination = 2; // query block height ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; } // QueryUnreceivedPacketsRequest is the request type for the // Query/UnreceivedPackets RPC method message QueryUnreceivedPacketsRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // list of packet sequences repeated uint64 packet_commitment_sequences = 3; } // QueryUnreceivedPacketsResponse is the response type for the // Query/UnreceivedPacketCommitments RPC method message QueryUnreceivedPacketsResponse { // list of unreceived packet sequences repeated uint64 sequences = 1; // query block height ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; } // QueryUnreceivedAcks is the request type for the // Query/UnreceivedAcks RPC method message QueryUnreceivedAcksRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; // list of acknowledgement sequences repeated uint64 packet_ack_sequences = 3; } // QueryUnreceivedAcksResponse is the response type for the // Query/UnreceivedAcks RPC method message QueryUnreceivedAcksResponse { // list of unreceived acknowledgement sequences repeated uint64 sequences = 1; // query block height ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; } // QueryNextSequenceReceiveRequest is the request type for the // Query/QueryNextSequenceReceiveRequest RPC method message QueryNextSequenceReceiveRequest { // port unique identifier string port_id = 1; // channel unique identifier string channel_id = 2; } // QuerySequenceResponse is the request type for the // Query/QueryNextSequenceReceiveResponse RPC method message QueryNextSequenceReceiveResponse { // next sequence receive number uint64 next_sequence_receive = 1; // merkle proof of existence bytes proof = 2; // height at which the proof was retrieved ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; }