75 lines
3.0 KiB
Protocol Buffer
75 lines
3.0 KiB
Protocol Buffer
syntax = "proto3";
|
|
package ibc.core.client.v1;
|
|
|
|
option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/02-client/types";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
import "google/protobuf/any.proto";
|
|
|
|
// IdentifiedClientState defines a client state with an additional client
|
|
// identifier field.
|
|
message IdentifiedClientState {
|
|
// client identifier
|
|
string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
|
|
// client state
|
|
google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""];
|
|
}
|
|
|
|
// ConsensusStateWithHeight defines a consensus state with an additional height field.
|
|
message ConsensusStateWithHeight {
|
|
// consensus state height
|
|
Height height = 1 [(gogoproto.nullable) = false];
|
|
// consensus state
|
|
google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml\"consensus_state\""];
|
|
}
|
|
|
|
// ClientConsensusStates defines all the stored consensus states for a given
|
|
// client.
|
|
message ClientConsensusStates {
|
|
// client identifier
|
|
string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
|
|
// consensus states and their heights associated with the client
|
|
repeated ConsensusStateWithHeight consensus_states = 2
|
|
[(gogoproto.moretags) = "yaml:\"consensus_states\"", (gogoproto.nullable) = false];
|
|
}
|
|
|
|
// ClientUpdateProposal is a governance proposal. If it passes, the client is
|
|
// updated with the provided header. The update may fail if the header is not
|
|
// valid given certain conditions specified by the client implementation.
|
|
message ClientUpdateProposal {
|
|
option (gogoproto.goproto_getters) = false;
|
|
// the title of the update proposal
|
|
string title = 1;
|
|
// the description of the proposal
|
|
string description = 2;
|
|
// the client identifier for the client to be updated if the proposal passes
|
|
string client_id = 3 [(gogoproto.moretags) = "yaml:\"client_id\""];
|
|
// the header used to update the client if the proposal passes
|
|
google.protobuf.Any header = 4;
|
|
}
|
|
|
|
// Height is a monotonically increasing data type
|
|
// that can be compared against another Height for the purposes of updating and
|
|
// freezing clients
|
|
//
|
|
// Normally the RevisionHeight is incremented at each height while keeping RevisionNumber
|
|
// the same. However some consensus algorithms may choose to reset the
|
|
// height in certain conditions e.g. hard forks, state-machine breaking changes
|
|
// In these cases, the RevisionNumber is incremented so that height continues to
|
|
// be monitonically increasing even as the RevisionHeight gets reset
|
|
message Height {
|
|
option (gogoproto.goproto_getters) = false;
|
|
option (gogoproto.goproto_stringer) = false;
|
|
|
|
// the revision that the client is currently on
|
|
uint64 revision_number = 1 [(gogoproto.moretags) = "yaml:\"revision_number\""];
|
|
// the height within the given revision
|
|
uint64 revision_height = 2 [(gogoproto.moretags) = "yaml:\"revision_height\""];
|
|
}
|
|
|
|
// Params defines the set of IBC light client parameters.
|
|
message Params {
|
|
// allowed_clients defines the list of allowed client state types.
|
|
repeated string allowed_clients = 1 [(gogoproto.moretags) = "yaml:\"allowed_clients\""];
|
|
}
|