github.com/okex/exchain@v1.8.0/libs/ibc-go/proto/ibc/core/client/v1/client.proto (about)

     1  syntax = "proto3";
     2  
     3  package ibc.core.client.v1;
     4  
     5  option go_package = "github.com/cosmos/ibc-go/v2/modules/core/02-client/types";
     6  
     7  import "gogoproto/gogo.proto";
     8  import "google/protobuf/any.proto";
     9  import "cosmos/upgrade/v1beta1/upgrade.proto";
    10  
    11  // IdentifiedClientState defines a client state with an additional client
    12  // identifier field.
    13  message IdentifiedClientState {
    14    // client identifier
    15    string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
    16    // client state
    17    google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""];
    18  }
    19  
    20  // ConsensusStateWithHeight defines a consensus state with an additional height
    21  // field.
    22  message ConsensusStateWithHeight {
    23    // consensus state height
    24    Height height = 1 [(gogoproto.nullable) = false];
    25    // consensus state
    26    google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml\"consensus_state\""];
    27  }
    28  
    29  // ClientConsensusStates defines all the stored consensus states for a given
    30  // client.
    31  message ClientConsensusStates {
    32    // client identifier
    33    string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""];
    34    // consensus states and their heights associated with the client
    35    repeated ConsensusStateWithHeight consensus_states = 2
    36        [(gogoproto.moretags) = "yaml:\"consensus_states\"", (gogoproto.nullable) = false];
    37  }
    38  
    39  // ClientUpdateProposal is a governance proposal. If it passes, the substitute
    40  // client's latest consensus state is copied over to the subject client. The proposal
    41  // handler may fail if the subject and the substitute do not match in client and
    42  // chain parameters (with exception to latest height, frozen height, and chain-id).
    43  message ClientUpdateProposal {
    44    option (gogoproto.goproto_getters) = false;
    45    // the title of the update proposal
    46    string title = 1;
    47    // the description of the proposal
    48    string description = 2;
    49    // the client identifier for the client to be updated if the proposal passes
    50    string subject_client_id = 3 [(gogoproto.moretags) = "yaml:\"subject_client_id\""];
    51    // the substitute client identifier for the client standing in for the subject
    52    // client
    53    string substitute_client_id = 4 [(gogoproto.moretags) = "yaml:\"substitute_client_id\""];
    54  }
    55  
    56  // UpgradeProposal is a gov Content type for initiating an IBC breaking
    57  // upgrade.
    58  message UpgradeProposal {
    59    option (gogoproto.goproto_getters)  = false;
    60    option (gogoproto.goproto_stringer) = false;
    61    option (gogoproto.equal)            = true;
    62  
    63    string                      title       = 1;
    64    string                      description = 2;
    65    cosmos.upgrade.v1beta1.Plan plan        = 3 [(gogoproto.nullable) = false];
    66  
    67    // An UpgradedClientState must be provided to perform an IBC breaking upgrade.
    68    // This will make the chain commit to the correct upgraded (self) client state
    69    // before the upgrade occurs, so that connecting chains can verify that the
    70    // new upgraded client is valid by verifying a proof on the previous version
    71    // of the chain. This will allow IBC connections to persist smoothly across
    72    // planned chain upgrades
    73    google.protobuf.Any upgraded_client_state = 4 [(gogoproto.moretags) = "yaml:\"upgraded_client_state\""];
    74  }
    75  
    76  // Height is a monotonically increasing data type
    77  // that can be compared against another Height for the purposes of updating and
    78  // freezing clients
    79  //
    80  // Normally the RevisionHeight is incremented at each height while keeping
    81  // RevisionNumber the same. However some consensus algorithms may choose to
    82  // reset the height in certain conditions e.g. hard forks, state-machine
    83  // breaking changes In these cases, the RevisionNumber is incremented so that
    84  // height continues to be monitonically increasing even as the RevisionHeight
    85  // gets reset
    86  message Height {
    87    option (gogoproto.goproto_getters)  = false;
    88    option (gogoproto.goproto_stringer) = false;
    89  
    90    // the revision that the client is currently on
    91    uint64 revision_number = 1 [(gogoproto.moretags) = "yaml:\"revision_number\""];
    92    // the height within the given revision
    93    uint64 revision_height = 2 [(gogoproto.moretags) = "yaml:\"revision_height\""];
    94  }
    95  
    96  // Params defines the set of IBC light client parameters.
    97  message Params {
    98    // allowed_clients defines the list of allowed client state types.
    99    repeated string allowed_clients = 1 [(gogoproto.moretags) = "yaml:\"allowed_clients\""];
   100  }