syntax = "proto3"; package cosmos.upgrade.v1beta1; import "google/protobuf/any.proto"; import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types"; option (gogoproto.goproto_stringer_all) = false; option (gogoproto.goproto_getters_all) = false; // Plan specifies information about a planned upgrade and when it should occur. message Plan { option (gogoproto.equal) = true; // Sets the name for the upgrade. This name will be used by the upgraded // version of the software to apply any special "on-upgrade" commands during // the first BeginBlock method after the upgrade is applied. It is also used // to detect whether a software version can handle a given upgrade. If no // upgrade handler with this name has been set in the software, it will be // assumed that the software is out-of-date when the upgrade Time or Height is // reached and the software will exit. string name = 1; // The time after which the upgrade must be performed. // Leave set to its zero value to use a pre-defined Height instead. google.protobuf.Timestamp time = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; // The height at which the upgrade must be performed. // Only used if Time is not set. int64 height = 3; // Any application specific upgrade info to be included on-chain // such as a git commit that validators could automatically upgrade to string info = 4; // IBC-enabled chains can opt-in to including the upgraded client state in its upgrade plan // This will make the chain commit to the correct upgraded (self) client state before the upgrade occurs, // so that connecting chains can verify that the new upgraded client is valid by verifying a proof on the // previous version of the chain. // This will allow IBC connections to persist smoothly across planned chain upgrades google.protobuf.Any upgraded_client_state = 5 [(gogoproto.moretags) = "yaml:\"upgraded_client_state\""]; } // SoftwareUpgradeProposal is a gov Content type for initiating a software // upgrade. message SoftwareUpgradeProposal { option (gogoproto.equal) = true; string title = 1; string description = 2; Plan plan = 3 [(gogoproto.nullable) = false]; } // CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software // upgrade. message CancelSoftwareUpgradeProposal { option (gogoproto.equal) = true; string title = 1; string description = 2; }