Skip to content

Commit 0007831

Browse files
authored
Merge branch 'master' into marie/10489-gov-upgrade-msg
2 parents f13b5b5 + 918330b commit 0007831

File tree

27 files changed

+810
-365
lines changed

27 files changed

+810
-365
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
4040
### Features
4141

4242
* (x/upgrade) [\#11116](https://github.com/cosmos/cosmos-sdk/pull/11116) `MsgSoftwareUpgrade` and has been added to support v1beta2 msgs-based gov proposals.
43+
* [\#11308](https://github.com/cosmos/cosmos-sdk/pull/11308) Added a mandatory metadata field to Vote in x/gov v1beta2.
4344
* [\#10977](https://github.com/cosmos/cosmos-sdk/pull/10977) Now every cosmos message protobuf definition must be extended with a ``cosmos.msg.v1.signer`` option to signal the signer fields in a language agnostic way.
4445
* [\#10710](https://github.com/cosmos/cosmos-sdk/pull/10710) Chain-id shouldn't be required for creating a transaction with both --generate-only and --offline flags.
4546
* [\#10703](https://github.com/cosmos/cosmos-sdk/pull/10703) Create a new grantee account, if the grantee of an authorization does not exist.

api/cosmos/gov/v1beta2/gov.pulsar.go

Lines changed: 146 additions & 71 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/cosmos/gov/v1beta2/tx.pulsar.go

Lines changed: 221 additions & 73 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto/cosmos/gov/v1beta2/gov.proto

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ message Vote {
9494
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
9595
reserved 3;
9696
repeated WeightedVoteOption options = 4;
97+
98+
// metadata is any arbitrary metadata to attached to the vote.
99+
string metadata = 5;
97100
}
98101

99102
// DepositParams defines the params for deposits on governance proposals.

proto/cosmos/gov/v1beta2/tx.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ message MsgVote {
6868
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"];
6969
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
7070
VoteOption option = 3;
71+
string metadata = 4;
7172
}
7273

7374
// MsgVoteResponse defines the Msg/Vote response type.
@@ -80,6 +81,7 @@ message MsgVoteWeighted {
8081
uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"];
8182
string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
8283
repeated WeightedVoteOption options = 3;
84+
string metadata = 4;
8385
}
8486

8587
// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type.

x/auth/middleware/tips_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ func (s *MWTestSuite) TestTips() {
9393
ctx, accts := s.setupAcctsForTips(ctx)
9494
tipper, feePayer := accts[0], accts[1]
9595

96-
msg = govtypes.NewMsgVote(tipper.acc.GetAddress(), 1, govtypes.OptionYes)
96+
msg = govtypes.NewMsgVote(tipper.acc.GetAddress(), 1, govtypes.OptionYes, "")
9797

9898
auxSignerData := s.mkTipperAuxSignerData(tipper.priv, msg, tc.tip, signing.SignMode_SIGN_MODE_DIRECT_AUX, tipper.accNum, 0, ctx.ChainID())
9999
feePayerTxBuilder := s.mkFeePayerTxBuilder(s.clientCtx, auxSignerData, feePayer.priv, signing.SignMode_SIGN_MODE_DIRECT, tx.Fee{Amount: tc.fee, GasLimit: tc.gasLimit}, feePayer.accNum, 0, ctx.ChainID())

x/gov/abci_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ func TestProposalPassedEndblocker(t *testing.T) {
310310
deposits := initialModuleAccCoins.Add(proposal.TotalDeposit...).Add(proposalCoins...)
311311
require.True(t, moduleAccCoins.IsEqual(deposits))
312312

313-
err = app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes))
313+
err = app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), "")
314314
require.NoError(t, err)
315315

316316
newHeader := ctx.BlockHeader()
@@ -354,7 +354,7 @@ func TestEndBlockerProposalHandlerFailed(t *testing.T) {
354354
require.NoError(t, err)
355355
require.NotNil(t, res)
356356

357-
err = app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes))
357+
err = app.GovKeeper.AddVote(ctx, proposal.Id, addrs[0], v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), "")
358358
require.NoError(t, err)
359359

360360
newHeader := ctx.BlockHeader()

x/gov/client/cli/tx.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const (
3030
flagVoter = "voter"
3131
flagDepositor = "depositor"
3232
flagStatus = "status"
33+
flagMetadata = "metadata"
3334
// Deprecated: only used for v1beta1 legacy proposals.
3435
FlagProposal = "proposal"
3536
)
@@ -283,13 +284,19 @@ $ %s tx gov vote 1 yes --from mykey
283284
return err
284285
}
285286

287+
metadata, err := cmd.Flags().GetString(flagMetadata)
288+
if err != nil {
289+
return err
290+
}
291+
286292
// Build vote message and run basic validation
287-
msg := v1beta2.NewMsgVote(from, proposalID, byteVoteOption)
293+
msg := v1beta2.NewMsgVote(from, proposalID, byteVoteOption, metadata)
288294

289295
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
290296
},
291297
}
292298

299+
cmd.Flags().String(flagMetadata, "", "Specify metadata of the vote")
293300
flags.AddTxFlagsToCmd(cmd)
294301

295302
return cmd
@@ -332,12 +339,18 @@ $ %s tx gov weighted-vote 1 yes=0.6,no=0.3,abstain=0.05,no_with_veto=0.05 --from
332339
return err
333340
}
334341

342+
metadata, err := cmd.Flags().GetString(flagMetadata)
343+
if err != nil {
344+
return err
345+
}
346+
335347
// Build vote message and run basic validation
336-
msg := v1beta2.NewMsgVoteWeighted(from, proposalID, options)
348+
msg := v1beta2.NewMsgVoteWeighted(from, proposalID, options, metadata)
337349
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
338350
},
339351
}
340352

353+
cmd.Flags().String(flagMetadata, "", "Specify metadata of the weighted vote")
341354
flags.AddTxFlagsToCmd(cmd)
342355

343356
return cmd

x/gov/client/testutil/suite.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,7 @@ func (s *IntegrationTestSuite) TestNewCmdVote() {
879879
fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()),
880880
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
881881
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock),
882+
fmt.Sprintf("--metadata=%s", "AQ=="),
882883
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()),
883884
},
884885
false, 2,
@@ -895,6 +896,19 @@ func (s *IntegrationTestSuite) TestNewCmdVote() {
895896
},
896897
false, 0,
897898
},
899+
{
900+
"valid vote with metadata",
901+
[]string{
902+
"1",
903+
"yes",
904+
fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()),
905+
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
906+
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock),
907+
fmt.Sprintf("--metadata=%s", "AQ=="),
908+
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()),
909+
},
910+
false, 0,
911+
},
898912
}
899913

900914
for _, tc := range testCases {
@@ -955,6 +969,19 @@ func (s *IntegrationTestSuite) TestNewCmdWeightedVote() {
955969
},
956970
false, 0,
957971
},
972+
{
973+
"valid vote with metadata",
974+
[]string{
975+
"1",
976+
"yes",
977+
fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()),
978+
fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
979+
fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock),
980+
fmt.Sprintf("--metadata=%s", "AQ=="),
981+
fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()),
982+
},
983+
false, 0,
984+
},
958985
{
959986
"invalid valid split vote string",
960987
[]string{

x/gov/client/utils/query_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,12 @@ func TestGetPaginatedVotes(t *testing.T) {
8888
acc2 := make(sdk.AccAddress, 20)
8989
acc2[0] = 2
9090
acc1Msgs := []sdk.Msg{
91-
v1beta2.NewMsgVote(acc1, 0, v1beta2.OptionYes),
92-
v1beta2.NewMsgVote(acc1, 0, v1beta2.OptionYes),
91+
v1beta2.NewMsgVote(acc1, 0, v1beta2.OptionYes, ""),
92+
v1beta2.NewMsgVote(acc1, 0, v1beta2.OptionYes, ""),
9393
}
9494
acc2Msgs := []sdk.Msg{
95-
v1beta2.NewMsgVote(acc2, 0, v1beta2.OptionYes),
96-
v1beta2.NewMsgVoteWeighted(acc2, 0, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes)),
95+
v1beta2.NewMsgVote(acc2, 0, v1beta2.OptionYes, ""),
96+
v1beta2.NewMsgVoteWeighted(acc2, 0, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), ""),
9797
}
9898
for _, tc := range []testCase{
9999
{
@@ -105,8 +105,8 @@ func TestGetPaginatedVotes(t *testing.T) {
105105
acc2Msgs[:1],
106106
},
107107
votes: []v1beta2.Vote{
108-
v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes)),
109-
v1beta2.NewVote(0, acc2, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes))},
108+
v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), ""),
109+
v1beta2.NewVote(0, acc2, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), "")},
110110
},
111111
{
112112
description: "2MsgPerTx1Chunk",
@@ -117,8 +117,8 @@ func TestGetPaginatedVotes(t *testing.T) {
117117
acc2Msgs,
118118
},
119119
votes: []v1beta2.Vote{
120-
v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes)),
121-
v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes)),
120+
v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), ""),
121+
v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), ""),
122122
},
123123
},
124124
{
@@ -130,8 +130,8 @@ func TestGetPaginatedVotes(t *testing.T) {
130130
acc2Msgs,
131131
},
132132
votes: []v1beta2.Vote{
133-
v1beta2.NewVote(0, acc2, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes)),
134-
v1beta2.NewVote(0, acc2, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes)),
133+
v1beta2.NewVote(0, acc2, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), ""),
134+
v1beta2.NewVote(0, acc2, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), ""),
135135
},
136136
},
137137
{
@@ -141,7 +141,7 @@ func TestGetPaginatedVotes(t *testing.T) {
141141
msgs: [][]sdk.Msg{
142142
acc1Msgs[:1],
143143
},
144-
votes: []v1beta2.Vote{v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes))},
144+
votes: []v1beta2.Vote{v1beta2.NewVote(0, acc1, v1beta2.NewNonSplitVoteOption(v1beta2.OptionYes), "")},
145145
},
146146
{
147147
description: "InvalidPage",

0 commit comments

Comments
 (0)