From 17eb3eda02a312d810de24276470a9b4bc0ac61e Mon Sep 17 00:00:00 2001 From: Rigel Date: Fri, 20 Jul 2018 21:58:45 -0400 Subject: [PATCH] Merge PR #1781: Gov tags cleanup --- PENDING.md | 1 + x/gov/handler.go | 90 ++++++++++++++++++++++++-------------------- x/gov/tags/tags.go | 22 +++++++++++ x/stake/tags/tags.go | 12 +++--- 4 files changed, 78 insertions(+), 47 deletions(-) create mode 100644 x/gov/tags/tags.go diff --git a/PENDING.md b/PENDING.md index a314a860afee..6f82b55e625e 100644 --- a/PENDING.md +++ b/PENDING.md @@ -16,6 +16,7 @@ BREAKING CHANGES * `gaiacli gov submit-proposal --proposer` * `gaiacli gov deposit --depositer` * `gaiacli gov vote --voter` +* [x/gov] Added tags sub-package, changed tags to use dash-case FEATURES * [lcd] Can now query governance proposals by ProposalStatus diff --git a/x/gov/handler.go b/x/gov/handler.go index 636454571d91..04a68ccbbb8b 100644 --- a/x/gov/handler.go +++ b/x/gov/handler.go @@ -2,6 +2,7 @@ package gov import ( sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/gov/tags" ) // Handle all "gov" type messages. @@ -32,19 +33,19 @@ func handleMsgSubmitProposal(ctx sdk.Context, keeper Keeper, msg MsgSubmitPropos proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(proposal.GetProposalID()) - tags := sdk.NewTags( - "action", []byte("submitProposal"), - "proposer", []byte(msg.Proposer.String()), - "proposalId", proposalIDBytes, + resTags := sdk.NewTags( + tags.Action, tags.ActionSubmitProposal, + tags.Proposer, []byte(msg.Proposer.String()), + tags.ProposalID, proposalIDBytes, ) if votingStarted { - tags.AppendTag("votingPeriodStart", proposalIDBytes) + resTags.AppendTag(tags.VotingPeriodStart, proposalIDBytes) } return sdk.Result{ Data: proposalIDBytes, - Tags: tags, + Tags: resTags, } } @@ -58,18 +59,18 @@ func handleMsgDeposit(ctx sdk.Context, keeper Keeper, msg MsgDeposit) sdk.Result proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(msg.ProposalID) // TODO: Add tag for if voting period started - tags := sdk.NewTags( - "action", []byte("deposit"), - "depositer", []byte(msg.Depositer.String()), - "proposalId", proposalIDBytes, + resTags := sdk.NewTags( + tags.Action, tags.ActionDeposit, + tags.Depositer, []byte(msg.Depositer.String()), + tags.ProposalID, proposalIDBytes, ) if votingStarted { - tags.AppendTag("votingPeriodStart", proposalIDBytes) + resTags.AppendTag(tags.VotingPeriodStart, proposalIDBytes) } return sdk.Result{ - Tags: tags, + Tags: resTags, } } @@ -82,30 +83,32 @@ func handleMsgVote(ctx sdk.Context, keeper Keeper, msg MsgVote) sdk.Result { proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(msg.ProposalID) - tags := sdk.NewTags( - "action", []byte("vote"), - "voter", []byte(msg.Voter.String()), - "proposalId", proposalIDBytes, + resTags := sdk.NewTags( + tags.Action, tags.ActionVote, + tags.Voter, []byte(msg.Voter.String()), + tags.ProposalID, proposalIDBytes, ) return sdk.Result{ - Tags: tags, + Tags: resTags, } } // Called every block, process inflation, update validator set -func EndBlocker(ctx sdk.Context, keeper Keeper) (tags sdk.Tags, nonVotingVals []sdk.AccAddress) { +func EndBlocker(ctx sdk.Context, keeper Keeper) (resTags sdk.Tags, nonVotingVals []sdk.AccAddress) { - tags = sdk.NewTags() + resTags = sdk.NewTags() // Delete proposals that haven't met minDeposit for shouldPopInactiveProposalQueue(ctx, keeper) { inactiveProposal := keeper.InactiveProposalQueuePop(ctx) - if inactiveProposal.GetStatus() == StatusDepositPeriod { - proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(inactiveProposal.GetProposalID()) - keeper.DeleteProposal(ctx, inactiveProposal) - tags.AppendTag("action", []byte("proposalDropped")) - tags.AppendTag("proposalId", proposalIDBytes) + if inactiveProposal.GetStatus() != StatusDepositPeriod { + continue } + + proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(inactiveProposal.GetProposalID()) + keeper.DeleteProposal(ctx, inactiveProposal) + resTags.AppendTag(tags.Action, tags.ActionProposalDropped) + resTags.AppendTag(tags.ProposalID, proposalIDBytes) } var passes bool @@ -114,26 +117,31 @@ func EndBlocker(ctx sdk.Context, keeper Keeper) (tags sdk.Tags, nonVotingVals [] for shouldPopActiveProposalQueue(ctx, keeper) { activeProposal := keeper.ActiveProposalQueuePop(ctx) - if ctx.BlockHeight() >= activeProposal.GetVotingStartBlock()+keeper.GetVotingProcedure().VotingPeriod { - passes, nonVotingVals = tally(ctx, keeper, activeProposal) - proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(activeProposal.GetProposalID()) - if passes { - keeper.RefundDeposits(ctx, activeProposal.GetProposalID()) - activeProposal.SetStatus(StatusPassed) - tags.AppendTag("action", []byte("proposalPassed")) - tags.AppendTag("proposalId", proposalIDBytes) - } else { - keeper.DeleteDeposits(ctx, activeProposal.GetProposalID()) - activeProposal.SetStatus(StatusRejected) - tags.AppendTag("action", []byte("proposalRejected")) - tags.AppendTag("proposalId", proposalIDBytes) - } - - keeper.SetProposal(ctx, activeProposal) + proposalStartBlock := activeProposal.GetVotingStartBlock() + votingPeriod := keeper.GetVotingProcedure().VotingPeriod + if ctx.BlockHeight() < proposalStartBlock+votingPeriod { + continue + } + + passes, nonVotingVals = tally(ctx, keeper, activeProposal) + proposalIDBytes := keeper.cdc.MustMarshalBinaryBare(activeProposal.GetProposalID()) + var action []byte + if passes { + keeper.RefundDeposits(ctx, activeProposal.GetProposalID()) + activeProposal.SetStatus(StatusPassed) + action = tags.ActionProposalPassed + } else { + keeper.DeleteDeposits(ctx, activeProposal.GetProposalID()) + activeProposal.SetStatus(StatusRejected) + action = tags.ActionProposalRejected } + keeper.SetProposal(ctx, activeProposal) + + resTags.AppendTag(tags.Action, action) + resTags.AppendTag(tags.ProposalID, proposalIDBytes) } - return tags, nonVotingVals + return resTags, nonVotingVals } func shouldPopInactiveProposalQueue(ctx sdk.Context, keeper Keeper) bool { depositProcedure := keeper.GetDepositProcedure() diff --git a/x/gov/tags/tags.go b/x/gov/tags/tags.go new file mode 100644 index 000000000000..2eded1901a6c --- /dev/null +++ b/x/gov/tags/tags.go @@ -0,0 +1,22 @@ +// nolint +package tags + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +var ( + ActionSubmitProposal = []byte("submit-proposal") + ActionDeposit = []byte("deposit") + ActionVote = []byte("vote") + ActionProposalDropped = []byte("proposal-dropped") + ActionProposalPassed = []byte("proposal-passed") + ActionProposalRejected = []byte("proposal-rejected") + + Action = sdk.TagAction + Proposer = "proposer" + ProposalID = "proposal-id" + VotingPeriodStart = "voting-period-start" + Depositer = "depositer" + Voter = "voter" +) diff --git a/x/stake/tags/tags.go b/x/stake/tags/tags.go index edb4eda07b93..8ef60aa8420e 100644 --- a/x/stake/tags/tags.go +++ b/x/stake/tags/tags.go @@ -2,7 +2,7 @@ package tags import ( - "github.com/cosmos/cosmos-sdk/types" + sdk "github.com/cosmos/cosmos-sdk/types" ) var ( @@ -14,10 +14,10 @@ var ( ActionBeginRedelegation = []byte("begin-redelegation") ActionCompleteRedelegation = []byte("complete-redelegation") - Action = types.TagAction - SrcValidator = types.TagSrcValidator - DstValidator = types.TagDstValidator - Delegator = types.TagDelegator + Action = sdk.TagAction + SrcValidator = sdk.TagSrcValidator + DstValidator = sdk.TagDstValidator + Delegator = sdk.TagDelegator Moniker = "moniker" - Identity = "Identity" + Identity = "identity" )