-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor!: Use v1 for gov
and upgrade
proto packages
#9492
Closed
Closed
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
f49ada2
Use v1 for gov and update
amaury1093 405ea76
Merge branch 'master' into am/gov-upgrade-v1
amaury1093 9d81f9f
Add changelog
amaury1093 5387f22
Fix tests
amaury1093 0fa1d4a
Fix migration
amaury1093 a38aca5
commit random file
amaury1093 bea146c
Fix migration
amaury1093 396a408
Create proto breaking changes section
amaury1093 c2fef96
Not proto breaking
amaury1093 6b16239
Merge branch 'master' of ssh://github.com/cosmos/cosmos-sdk into am/g…
amaury1093 b2456e3
Merge branch 'master' into am/gov-upgrade-v1
amaury1093 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
syntax = "proto3"; | ||
|
||
package cosmos.gov.v1; | ||
|
||
import "gogoproto/gogo.proto"; | ||
import "cosmos/gov/v1/gov.proto"; | ||
|
||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; | ||
|
||
// GenesisState defines the gov module's genesis state. | ||
message GenesisState { | ||
// starting_proposal_id is the ID of the starting proposal. | ||
uint64 starting_proposal_id = 1 [(gogoproto.moretags) = "yaml:\"starting_proposal_id\""]; | ||
// deposits defines all the deposits present at genesis. | ||
repeated Deposit deposits = 2 [(gogoproto.castrepeated) = "Deposits", (gogoproto.nullable) = false]; | ||
// votes defines all the votes present at genesis. | ||
repeated Vote votes = 3 [(gogoproto.castrepeated) = "Votes", (gogoproto.nullable) = false]; | ||
// proposals defines all the proposals present at genesis. | ||
repeated Proposal proposals = 4 [(gogoproto.castrepeated) = "Proposals", (gogoproto.nullable) = false]; | ||
// params defines all the paramaters of related to deposit. | ||
DepositParams deposit_params = 5 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_params\""]; | ||
// params defines all the paramaters of related to voting. | ||
VotingParams voting_params = 6 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_params\""]; | ||
// params defines all the paramaters of related to tally. | ||
TallyParams tally_params = 7 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"tally_params\""]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
syntax = "proto3"; | ||
package cosmos.gov.v1; | ||
|
||
import "cosmos/base/v1beta1/coin.proto"; | ||
import "gogoproto/gogo.proto"; | ||
import "cosmos_proto/cosmos.proto"; | ||
import "google/protobuf/timestamp.proto"; | ||
import "google/protobuf/any.proto"; | ||
import "google/protobuf/duration.proto"; | ||
|
||
option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; | ||
option (gogoproto.goproto_stringer_all) = false; | ||
option (gogoproto.stringer_all) = false; | ||
option (gogoproto.goproto_getters_all) = false; | ||
|
||
// VoteOption enumerates the valid vote options for a given governance proposal. | ||
enum VoteOption { | ||
option (gogoproto.goproto_enum_prefix) = false; | ||
|
||
// VOTE_OPTION_UNSPECIFIED defines a no-op vote option. | ||
VOTE_OPTION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "OptionEmpty"]; | ||
// VOTE_OPTION_YES defines a yes vote option. | ||
VOTE_OPTION_YES = 1 [(gogoproto.enumvalue_customname) = "OptionYes"]; | ||
// VOTE_OPTION_ABSTAIN defines an abstain vote option. | ||
VOTE_OPTION_ABSTAIN = 2 [(gogoproto.enumvalue_customname) = "OptionAbstain"]; | ||
// VOTE_OPTION_NO defines a no vote option. | ||
VOTE_OPTION_NO = 3 [(gogoproto.enumvalue_customname) = "OptionNo"]; | ||
// VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. | ||
VOTE_OPTION_NO_WITH_VETO = 4 [(gogoproto.enumvalue_customname) = "OptionNoWithVeto"]; | ||
} | ||
|
||
// WeightedVoteOption defines a unit of vote for vote split. | ||
message WeightedVoteOption { | ||
VoteOption option = 1; | ||
string weight = 2 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", | ||
(gogoproto.nullable) = false, | ||
(gogoproto.moretags) = "yaml:\"weight\"" | ||
]; | ||
} | ||
|
||
// TextProposal defines a standard text proposal whose changes need to be | ||
// manually updated in case of approval. | ||
message TextProposal { | ||
option (cosmos_proto.implements_interface) = "Content"; | ||
|
||
option (gogoproto.equal) = true; | ||
|
||
string title = 1; | ||
string description = 2; | ||
} | ||
|
||
// Deposit defines an amount deposited by an account address to an active | ||
// proposal. | ||
message Deposit { | ||
option (gogoproto.goproto_getters) = false; | ||
option (gogoproto.equal) = false; | ||
|
||
uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""]; | ||
string depositor = 2; | ||
repeated cosmos.base.v1beta1.Coin amount = 3 | ||
[(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; | ||
} | ||
|
||
// Proposal defines the core field members of a governance proposal. | ||
message Proposal { | ||
option (gogoproto.equal) = true; | ||
|
||
uint64 proposal_id = 1 [(gogoproto.jsontag) = "id", (gogoproto.moretags) = "yaml:\"id\""]; | ||
google.protobuf.Any content = 2 [(cosmos_proto.accepts_interface) = "Content"]; | ||
ProposalStatus status = 3 [(gogoproto.moretags) = "yaml:\"proposal_status\""]; | ||
TallyResult final_tally_result = 4 | ||
[(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"final_tally_result\""]; | ||
google.protobuf.Timestamp submit_time = 5 | ||
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"submit_time\""]; | ||
google.protobuf.Timestamp deposit_end_time = 6 | ||
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_end_time\""]; | ||
repeated cosmos.base.v1beta1.Coin total_deposit = 7 [ | ||
(gogoproto.nullable) = false, | ||
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", | ||
(gogoproto.moretags) = "yaml:\"total_deposit\"" | ||
]; | ||
google.protobuf.Timestamp voting_start_time = 8 | ||
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_start_time\""]; | ||
google.protobuf.Timestamp voting_end_time = 9 | ||
[(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_end_time\""]; | ||
} | ||
|
||
// ProposalStatus enumerates the valid statuses of a proposal. | ||
enum ProposalStatus { | ||
option (gogoproto.goproto_enum_prefix) = false; | ||
|
||
// PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. | ||
PROPOSAL_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "StatusNil"]; | ||
// PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit | ||
// period. | ||
PROPOSAL_STATUS_DEPOSIT_PERIOD = 1 [(gogoproto.enumvalue_customname) = "StatusDepositPeriod"]; | ||
// PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting | ||
// period. | ||
PROPOSAL_STATUS_VOTING_PERIOD = 2 [(gogoproto.enumvalue_customname) = "StatusVotingPeriod"]; | ||
// PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has | ||
// passed. | ||
PROPOSAL_STATUS_PASSED = 3 [(gogoproto.enumvalue_customname) = "StatusPassed"]; | ||
// PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has | ||
// been rejected. | ||
PROPOSAL_STATUS_REJECTED = 4 [(gogoproto.enumvalue_customname) = "StatusRejected"]; | ||
// PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has | ||
// failed. | ||
PROPOSAL_STATUS_FAILED = 5 [(gogoproto.enumvalue_customname) = "StatusFailed"]; | ||
} | ||
|
||
// TallyResult defines a standard tally for a governance proposal. | ||
message TallyResult { | ||
option (gogoproto.equal) = true; | ||
|
||
string yes = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; | ||
string abstain = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; | ||
string no = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; | ||
string no_with_veto = 4 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", | ||
(gogoproto.nullable) = false, | ||
(gogoproto.moretags) = "yaml:\"no_with_veto\"" | ||
]; | ||
} | ||
|
||
// Vote defines a vote on a governance proposal. | ||
// A Vote consists of a proposal ID, the voter, and the vote option. | ||
message Vote { | ||
option (gogoproto.goproto_stringer) = false; | ||
option (gogoproto.equal) = false; | ||
|
||
uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""]; | ||
string voter = 2; | ||
reserved 3; | ||
reserved "option"; | ||
repeated WeightedVoteOption options = 4 [(gogoproto.nullable) = false]; | ||
} | ||
|
||
// DepositParams defines the params for deposits on governance proposals. | ||
message DepositParams { | ||
// Minimum deposit for a proposal to enter voting period. | ||
repeated cosmos.base.v1beta1.Coin min_deposit = 1 [ | ||
(gogoproto.nullable) = false, | ||
(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", | ||
(gogoproto.moretags) = "yaml:\"min_deposit\"", | ||
(gogoproto.jsontag) = "min_deposit,omitempty" | ||
]; | ||
|
||
// Maximum period for Atom holders to deposit on a proposal. Initial value: 2 | ||
// months. | ||
google.protobuf.Duration max_deposit_period = 2 [ | ||
(gogoproto.nullable) = false, | ||
(gogoproto.stdduration) = true, | ||
(gogoproto.jsontag) = "max_deposit_period,omitempty", | ||
(gogoproto.moretags) = "yaml:\"max_deposit_period\"" | ||
]; | ||
} | ||
|
||
// VotingParams defines the params for voting on governance proposals. | ||
message VotingParams { | ||
// Length of the voting period. | ||
google.protobuf.Duration voting_period = 1 [ | ||
(gogoproto.nullable) = false, | ||
(gogoproto.stdduration) = true, | ||
(gogoproto.jsontag) = "voting_period,omitempty", | ||
(gogoproto.moretags) = "yaml:\"voting_period\"" | ||
]; | ||
} | ||
|
||
// TallyParams defines the params for tallying votes on governance proposals. | ||
message TallyParams { | ||
// Minimum percentage of total stake needed to vote for a result to be | ||
// considered valid. | ||
bytes quorum = 1 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", | ||
(gogoproto.nullable) = false, | ||
(gogoproto.jsontag) = "quorum,omitempty" | ||
]; | ||
|
||
// Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. | ||
bytes threshold = 2 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", | ||
(gogoproto.nullable) = false, | ||
(gogoproto.jsontag) = "threshold,omitempty" | ||
]; | ||
|
||
// Minimum value of Veto votes to Total votes ratio for proposal to be | ||
// vetoed. Default value: 1/3. | ||
bytes veto_threshold = 3 [ | ||
(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", | ||
(gogoproto.nullable) = false, | ||
(gogoproto.jsontag) = "veto_threshold,omitempty", | ||
(gogoproto.moretags) = "yaml:\"veto_threshold\"" | ||
]; | ||
} |
20 changes: 10 additions & 10 deletions
20
proto/cosmos/gov/v1beta1/query.proto → proto/cosmos/gov/v1/query.proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
4 changes: 2 additions & 2 deletions
4
proto/cosmos/gov/v1beta1/tx.proto → proto/cosmos/gov/v1/tx.proto
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need gov@v1beta1 still for migrations. I changed their generated path to the legacy folder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah, we need it to deserialize Anys?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, old proposals content have e.g.
cosmos.gov.v1beta1.Textproposal