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 }