63 lines
2.5 KiB
Protocol Buffer
63 lines
2.5 KiB
Protocol Buffer
|
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;
|
||
|
}
|