2023-04-04 00:08:45 +00:00
|
|
|
// Since: cosmos-sdk 0.46
|
|
|
|
syntax = "proto3";
|
|
|
|
package cosmos.gov.v1;
|
|
|
|
|
|
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
|
|
import "cosmos/gov/v1/gov.proto";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
|
|
import "cosmos_proto/cosmos.proto";
|
|
|
|
import "google/protobuf/any.proto";
|
|
|
|
import "cosmos/msg/v1/msg.proto";
|
2024-02-06 22:54:10 +00:00
|
|
|
import "amino/amino.proto";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
|
|
|
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1";
|
|
|
|
|
|
|
|
// Msg defines the gov Msg service.
|
|
|
|
service Msg {
|
2024-02-06 22:54:10 +00:00
|
|
|
option (cosmos.msg.v1.service) = true;
|
|
|
|
|
|
|
|
// SubmitProposal defines a method to create new proposal given the messages.
|
2023-04-04 00:08:45 +00:00
|
|
|
rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse);
|
|
|
|
|
|
|
|
// ExecLegacyContent defines a Msg to be in included in a MsgSubmitProposal
|
|
|
|
// to execute a legacy content-based proposal.
|
|
|
|
rpc ExecLegacyContent(MsgExecLegacyContent) returns (MsgExecLegacyContentResponse);
|
|
|
|
|
|
|
|
// Vote defines a method to add a vote on a specific proposal.
|
|
|
|
rpc Vote(MsgVote) returns (MsgVoteResponse);
|
|
|
|
|
|
|
|
// VoteWeighted defines a method to add a weighted vote on a specific proposal.
|
|
|
|
rpc VoteWeighted(MsgVoteWeighted) returns (MsgVoteWeightedResponse);
|
|
|
|
|
|
|
|
// Deposit defines a method to add deposit on a specific proposal.
|
|
|
|
rpc Deposit(MsgDeposit) returns (MsgDepositResponse);
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// UpdateParams defines a governance operation for updating the x/gov module
|
|
|
|
// parameters. The authority is defined in the keeper.
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse);
|
2023-04-04 00:08:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary
|
|
|
|
// proposal Content.
|
|
|
|
message MsgSubmitProposal {
|
|
|
|
option (cosmos.msg.v1.signer) = "proposer";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/v1/MsgSubmitProposal";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
// messages are the arbitrary messages to be executed if proposal passes.
|
2023-04-04 00:08:45 +00:00
|
|
|
repeated google.protobuf.Any messages = 1;
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// initial_deposit is the deposit value that must be paid at proposal submission.
|
|
|
|
repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
|
|
|
|
|
|
|
// proposer is the account address of the proposer.
|
2023-04-04 00:08:45 +00:00
|
|
|
string proposer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2024-02-06 22:54:10 +00:00
|
|
|
|
2023-04-04 00:08:45 +00:00
|
|
|
// metadata is any arbitrary metadata attached to the proposal.
|
|
|
|
string metadata = 4;
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// title is the title of the proposal.
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
string title = 5;
|
|
|
|
|
|
|
|
// summary is the summary of the proposal
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
string summary = 6;
|
2023-04-04 00:08:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type.
|
|
|
|
message MsgSubmitProposalResponse {
|
2024-02-06 22:54:10 +00:00
|
|
|
// proposal_id defines the unique id of the proposal.
|
2023-04-04 00:08:45 +00:00
|
|
|
uint64 proposal_id = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
// MsgExecLegacyContent is used to wrap the legacy content field into a message.
|
|
|
|
// This ensures backwards compatibility with v1beta1.MsgSubmitProposal.
|
|
|
|
message MsgExecLegacyContent {
|
|
|
|
option (cosmos.msg.v1.signer) = "authority";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/v1/MsgExecLegacyContent";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
|
|
|
// content is the proposal's content.
|
2024-02-06 22:54:10 +00:00
|
|
|
google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"];
|
2023-04-04 00:08:45 +00:00
|
|
|
// authority must be the gov module address.
|
|
|
|
string authority = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type.
|
|
|
|
message MsgExecLegacyContentResponse {}
|
|
|
|
|
|
|
|
// MsgVote defines a message to cast a vote.
|
|
|
|
message MsgVote {
|
|
|
|
option (cosmos.msg.v1.signer) = "voter";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/v1/MsgVote";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
// proposal_id defines the unique id of the proposal.
|
|
|
|
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true];
|
|
|
|
|
|
|
|
// voter is the voter address for the proposal.
|
2023-04-04 00:08:45 +00:00
|
|
|
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// option defines the vote option.
|
2023-04-04 00:08:45 +00:00
|
|
|
VoteOption option = 3;
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// metadata is any arbitrary metadata attached to the Vote.
|
2023-04-04 00:08:45 +00:00
|
|
|
string metadata = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
// MsgVoteResponse defines the Msg/Vote response type.
|
|
|
|
message MsgVoteResponse {}
|
|
|
|
|
|
|
|
// MsgVoteWeighted defines a message to cast a vote.
|
|
|
|
message MsgVoteWeighted {
|
|
|
|
option (cosmos.msg.v1.signer) = "voter";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/v1/MsgVoteWeighted";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
// proposal_id defines the unique id of the proposal.
|
|
|
|
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true];
|
|
|
|
|
|
|
|
// voter is the voter address for the proposal.
|
2023-04-04 00:08:45 +00:00
|
|
|
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// options defines the weighted vote options.
|
2023-04-04 00:08:45 +00:00
|
|
|
repeated WeightedVoteOption options = 3;
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// metadata is any arbitrary metadata attached to the VoteWeighted.
|
2023-04-04 00:08:45 +00:00
|
|
|
string metadata = 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.
|
|
|
|
message MsgVoteWeightedResponse {}
|
|
|
|
|
|
|
|
// MsgDeposit defines a message to submit a deposit to an existing proposal.
|
|
|
|
message MsgDeposit {
|
|
|
|
option (cosmos.msg.v1.signer) = "depositor";
|
2024-02-06 22:54:10 +00:00
|
|
|
option (amino.name) = "cosmos-sdk/v1/MsgDeposit";
|
2023-04-04 00:08:45 +00:00
|
|
|
|
2024-02-06 22:54:10 +00:00
|
|
|
// proposal_id defines the unique id of the proposal.
|
|
|
|
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true];
|
|
|
|
|
|
|
|
// depositor defines the deposit addresses from the proposals.
|
2023-04-04 00:08:45 +00:00
|
|
|
string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// amount to be deposited by depositor.
|
|
|
|
repeated cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
2023-04-04 00:08:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// MsgDepositResponse defines the Msg/Deposit response type.
|
|
|
|
message MsgDepositResponse {}
|
2024-02-06 22:54:10 +00:00
|
|
|
|
|
|
|
// MsgUpdateParams is the Msg/UpdateParams request type.
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
message MsgUpdateParams {
|
|
|
|
option (cosmos.msg.v1.signer) = "authority";
|
|
|
|
option (amino.name) = "cosmos-sdk/x/gov/v1/MsgUpdateParams";
|
|
|
|
|
|
|
|
// authority is the address that controls the module (defaults to x/gov unless overwritten).
|
|
|
|
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
|
|
|
|
// params defines the x/gov parameters to update.
|
|
|
|
//
|
|
|
|
// NOTE: All parameters must be supplied.
|
|
|
|
Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true];
|
|
|
|
}
|
|
|
|
|
|
|
|
// MsgUpdateParamsResponse defines the response structure for executing a
|
|
|
|
// MsgUpdateParams message.
|
|
|
|
//
|
|
|
|
// Since: cosmos-sdk 0.47
|
|
|
|
message MsgUpdateParamsResponse {}
|