From c0eade17fe8665748f136133d50b889393e7c2de Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Wed, 19 Apr 2023 16:24:07 +0200 Subject: [PATCH] test: fix module cli tests (#15882) --- tests/e2e/distribution/suite.go | 17 +- x/auth/client/cli/suite_test.go | 4 +- x/authz/client/cli/tx_test.go | 5 +- x/bank/client/cli/query_test.go | 50 +- x/bank/client/cli/tx_test.go | 61 +-- x/crisis/client/cli/tx_test.go | 23 +- .../cli/{suite_test.go => query_test.go} | 220 +-------- x/distribution/client/cli/tx_test.go | 262 ++++++++-- x/distribution/client/cli/util_test.go | 59 +++ x/distribution/client/testutil/helpers.go | 32 -- x/evidence/client/cli/query_test.go | 59 +-- x/evidence/go.mod | 2 +- x/evidence/go.sum | 4 +- x/feegrant/client/cli/tx_test.go | 35 +- x/feegrant/go.mod | 2 +- x/feegrant/go.sum | 4 +- x/genutil/client/cli/gentx_test.go | 4 +- x/gov/client/cli/tx_test.go | 143 +++--- x/group/client/cli/tx_test.go | 454 ++---------------- x/nft/client/cli/tx_test.go | 4 +- x/nft/go.mod | 2 +- x/nft/go.sum | 4 +- x/slashing/client/cli/query_test.go | 4 +- x/slashing/client/cli/tx_test.go | 16 +- x/staking/client/cli/tx.go | 1 + x/staking/client/cli/tx_test.go | 166 +++---- x/upgrade/client/cli/tx_test.go | 85 ---- x/upgrade/go.mod | 2 +- x/upgrade/go.sum | 4 +- 29 files changed, 590 insertions(+), 1138 deletions(-) rename x/distribution/client/cli/{suite_test.go => query_test.go} (61%) create mode 100644 x/distribution/client/cli/util_test.go delete mode 100644 x/distribution/client/testutil/helpers.go delete mode 100644 x/upgrade/client/cli/tx_test.go diff --git a/tests/e2e/distribution/suite.go b/tests/e2e/distribution/suite.go index 94e964f43f..f4d6e3dbf5 100644 --- a/tests/e2e/distribution/suite.go +++ b/tests/e2e/distribution/suite.go @@ -1,6 +1,7 @@ package distribution import ( + "context" "encoding/hex" "fmt" "strings" @@ -11,13 +12,14 @@ import ( "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/codec/address" + svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" "github.com/cosmos/cosmos-sdk/testutil/network" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/distribution/client/cli" - distrclitestutil "github.com/cosmos/cosmos-sdk/x/distribution/client/testutil" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" ) @@ -556,13 +558,22 @@ func (s *E2ETestSuite) TestNewWithdrawRewardsCmd() { s.Run(tc.name, func() { clientCtx := val.ClientCtx + args := append([]string{tc.valAddr.String()}, tc.args...) + _, _ = s.network.WaitForHeightWithTimeout(10, time.Minute) - bz, err := distrclitestutil.MsgWithdrawDelegatorRewardExec(clientCtx, tc.valAddr, tc.args...) + + ctx := svrcmd.CreateExecuteContext(context.Background()) + cmd := cli.NewWithdrawRewardsCmd() + cmd.SetContext(ctx) + cmd.SetArgs(args) + s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + + out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, args) if tc.expectErr { s.Require().Error(err) } else { s.Require().NoError(err) - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(bz, tc.respType), string(bz)) + s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) s.Require().NoError(s.network.WaitForNextBlock()) txResp, err := clitestutil.GetTxResponse(s.network, clientCtx, tc.respType.(*sdk.TxResponse).TxHash) diff --git a/x/auth/client/cli/suite_test.go b/x/auth/client/cli/suite_test.go index c5ef2c6486..9be3e56e16 100644 --- a/x/auth/client/cli/suite_test.go +++ b/x/auth/client/cli/suite_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "context" "fmt" "io" @@ -68,7 +67,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -76,7 +74,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() kb := s.clientCtx.Keyring valAcc, _, err := kb.NewMnemonic("newAccount", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) diff --git a/x/authz/client/cli/tx_test.go b/x/authz/client/cli/tx_test.go index 1d4c5eff1a..55563ec827 100644 --- a/x/authz/client/cli/tx_test.go +++ b/x/authz/client/cli/tx_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "fmt" "io" "testing" @@ -66,7 +65,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -74,7 +72,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) s.grantee = make([]sdk.AccAddress, 6) @@ -152,7 +150,6 @@ func (s *CLITestSuite) SetupSuite() { }, ) s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) } diff --git a/x/bank/client/cli/query_test.go b/x/bank/client/cli/query_test.go index 2708a90636..52ef682fce 100644 --- a/x/bank/client/cli/query_test.go +++ b/x/bank/client/cli/query_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "context" "fmt" "io" @@ -99,21 +98,18 @@ func (s *CLITestSuite) TestGetBalancesCmd() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(tc.ctxGen(), cmd)) - err := cmd.Execute() + out, err := clitestutil.ExecTestCLICmd(tc.ctxGen(), cmd, tc.args) if tc.expectErr { s.Require().Error(err) } else { - s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(outBuf.Bytes(), tc.expectResult)) + s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(out.Bytes(), tc.expectResult)) s.Require().NoError(err) } }) @@ -183,21 +179,16 @@ func (s *CLITestSuite) TestGetSpendableBalancesCmd() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) - cmd.SetContext(ctx) cmd.SetArgs(tc.args) + s.Require().NoError(client.SetCmdClientContextHandler(tc.ctxGen(), cmd)) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) - - err := cmd.Execute() + out, err := clitestutil.ExecTestCLICmd(tc.ctxGen(), cmd, tc.args) if tc.expectErr { s.Require().Error(err) } else { - s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(outBuf.Bytes(), tc.expectResult)) + s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(out.Bytes(), tc.expectResult)) s.Require().NoError(err) } }) @@ -266,21 +257,18 @@ func (s *CLITestSuite) TestGetCmdDenomsMetadata() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(tc.ctxGen(), cmd)) - err := cmd.Execute() + out, err := clitestutil.ExecTestCLICmd(tc.ctxGen(), cmd, tc.args) if tc.expectErr { s.Require().Error(err) } else { - s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(outBuf.Bytes(), tc.expectResult)) + s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(out.Bytes(), tc.expectResult)) s.Require().NoError(err) } }) @@ -352,21 +340,16 @@ func (s *CLITestSuite) TestGetCmdQueryTotalSupply() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) - cmd.SetContext(ctx) cmd.SetArgs(tc.args) + s.Require().NoError(client.SetCmdClientContextHandler(tc.ctxGen(), cmd)) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) - - err := cmd.Execute() + out, err := clitestutil.ExecTestCLICmd(tc.ctxGen(), cmd, tc.args) if tc.expectErr { s.Require().Error(err) } else { - s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(outBuf.Bytes(), tc.expectResult)) + s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(out.Bytes(), tc.expectResult)) s.Require().NoError(err) } }) @@ -426,21 +409,18 @@ func (s *CLITestSuite) TestGetCmdQuerySendEnabled() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(tc.ctxGen(), cmd)) - err := cmd.Execute() + out, err := clitestutil.ExecTestCLICmd(tc.ctxGen(), cmd, tc.args) if tc.expectErr { s.Require().Error(err) } else { - s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(outBuf.Bytes(), tc.expectResult)) + s.Require().NoError(s.encCfg.Codec.UnmarshalJSON(out.Bytes(), tc.expectResult)) s.Require().NoError(err) } }) diff --git a/x/bank/client/cli/tx_test.go b/x/bank/client/cli/tx_test.go index 6bb77a5a33..0d66d4944c 100644 --- a/x/bank/client/cli/tx_test.go +++ b/x/bank/client/cli/tx_test.go @@ -11,6 +11,7 @@ import ( "github.com/cosmos/cosmos-sdk/client/flags" svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" "github.com/cosmos/cosmos-sdk/testutil" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/bank/client/cli" ) @@ -29,12 +30,12 @@ func (s *CLITestSuite) TestSendTxCmd() { } testCases := []struct { - name string - ctxGen func() client.Context - from, to sdk.AccAddress - amount sdk.Coins - extraArgs []string - expectErr bool + name string + ctxGen func() client.Context + from, to sdk.AccAddress + amount sdk.Coins + extraArgs []string + expectErrMsg string }{ { "valid transaction", @@ -48,7 +49,7 @@ func (s *CLITestSuite) TestSendTxCmd() { sdk.NewCoin("photon", sdkmath.NewInt(40)), ), extraArgs, - false, + "", }, { "invalid to Address", @@ -62,7 +63,7 @@ func (s *CLITestSuite) TestSendTxCmd() { sdk.NewCoin("photon", sdkmath.NewInt(40)), ), extraArgs, - true, + "empty address string is not allowed", }, { "invalid coins", @@ -73,25 +74,28 @@ func (s *CLITestSuite) TestSendTxCmd() { accounts[0].Address, nil, extraArgs, - true, + "invalid coins", }, } for _, tc := range testCases { tc := tc s.Run(tc.name, func() { + args := append([]string{tc.from.String(), tc.to.String(), tc.amount.String()}, tc.extraArgs...) + ctx := svrcmd.CreateExecuteContext(context.Background()) - cmd.SetContext(ctx) - cmd.SetArgs(append([]string{tc.from.String(), tc.to.String(), tc.amount.String()}, tc.extraArgs...)) - + cmd.SetArgs(args) s.Require().NoError(client.SetCmdClientContextHandler(tc.ctxGen(), cmd)) - err := cmd.Execute() - if tc.expectErr { + out, err := clitestutil.ExecTestCLICmd(tc.ctxGen(), cmd, args) + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) + msg := &sdk.TxResponse{} + s.Require().NoError(tc.ctxGen().Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -112,13 +116,13 @@ func (s *CLITestSuite) TestMultiSendTxCmd() { } testCases := []struct { - name string - ctxGen func() client.Context - from string - to []string - amount sdk.Coins - extraArgs []string - expectErr bool + name string + ctxGen func() client.Context + from string + to []string + amount sdk.Coins + extraArgs []string + expectErrMsg string }{ { "valid transaction", @@ -135,7 +139,7 @@ func (s *CLITestSuite) TestMultiSendTxCmd() { sdk.NewCoin("photon", sdkmath.NewInt(40)), ), extraArgs, - false, + "", }, { "invalid from Address", @@ -152,7 +156,7 @@ func (s *CLITestSuite) TestMultiSendTxCmd() { sdk.NewCoin("photon", sdkmath.NewInt(40)), ), extraArgs, - true, + "key not found", }, { "invalid recipients", @@ -169,7 +173,7 @@ func (s *CLITestSuite) TestMultiSendTxCmd() { sdk.NewCoin("photon", sdkmath.NewInt(40)), ), extraArgs, - true, + "invalid bech32 string", }, { "invalid amount", @@ -183,7 +187,7 @@ func (s *CLITestSuite) TestMultiSendTxCmd() { }, nil, extraArgs, - true, + "must send positive amount", }, } @@ -203,11 +207,14 @@ func (s *CLITestSuite) TestMultiSendTxCmd() { s.Require().NoError(client.SetCmdClientContextHandler(tc.ctxGen(), cmd)) - err := cmd.Execute() - if tc.expectErr { + out, err := clitestutil.ExecTestCLICmd(tc.ctxGen(), cmd, args) + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) + msg := &sdk.TxResponse{} + s.Require().NoError(tc.ctxGen().Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } diff --git a/x/crisis/client/cli/tx_test.go b/x/crisis/client/cli/tx_test.go index d7b605c683..d62bc1c977 100644 --- a/x/crisis/client/cli/tx_test.go +++ b/x/crisis/client/cli/tx_test.go @@ -38,9 +38,7 @@ func TestNewMsgVerifyInvariantTxCmd(t *testing.T) { testCases := []struct { name string args []string - expectErr bool - errString string - expectedCode uint32 + expectErrMsg string }{ { "missing module", @@ -51,7 +49,7 @@ func TestNewMsgVerifyInvariantTxCmd(t *testing.T) { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10))).String()), }, - true, "invalid module name", 0, + "invalid module name", }, { "missing invariant route", @@ -62,7 +60,7 @@ func TestNewMsgVerifyInvariantTxCmd(t *testing.T) { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10))).String()), }, - true, "invalid invariant route", 0, + "invalid invariant route", }, { "valid transaction", @@ -73,7 +71,7 @@ func TestNewMsgVerifyInvariantTxCmd(t *testing.T) { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(10))).String()), }, - false, "", 0, + "", }, } @@ -81,22 +79,19 @@ func TestNewMsgVerifyInvariantTxCmd(t *testing.T) { tc := tc t.Run(tc.name, func(t *testing.T) { ctx := svrcmd.CreateExecuteContext(context.Background()) - cmd := cli.NewMsgVerifyInvariantTxCmd() - cmd.SetOut(io.Discard) - require.NotNil(t, cmd) - cmd.SetContext(ctx) cmd.SetArgs(tc.args) - require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) - err := cmd.Execute() - if tc.expectErr { + out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.args) + if tc.expectErrMsg != "" { require.Error(t, err) - require.Contains(t, err.Error(), tc.errString) + require.Contains(t, out.String(), tc.expectErrMsg) } else { require.NoError(t, err) + msg := &sdk.TxResponse{} + require.NoError(t, baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } diff --git a/x/distribution/client/cli/suite_test.go b/x/distribution/client/cli/query_test.go similarity index 61% rename from x/distribution/client/cli/suite_test.go rename to x/distribution/client/cli/query_test.go index e9d83416cc..19f62c44bb 100644 --- a/x/distribution/client/cli/suite_test.go +++ b/x/distribution/client/cli/query_test.go @@ -1,16 +1,13 @@ package cli_test import ( - "bytes" "fmt" "io" "strings" "testing" - sdkmath "cosmossdk.io/math" abci "github.com/cometbft/cometbft/abci/types" rpcclientmock "github.com/cometbft/cometbft/rpc/client/mock" - "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" "github.com/cosmos/cosmos-sdk/client" @@ -24,7 +21,6 @@ import ( testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/cosmos/cosmos-sdk/x/distribution/client/cli" - distrclitestutil "github.com/cosmos/cosmos-sdk/x/distribution/client/testutil" distrtestutil "github.com/cosmos/cosmos-sdk/x/distribution/testutil" "github.com/cosmos/cosmos-sdk/x/gov" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" @@ -55,7 +51,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -63,7 +58,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() cfg, err := network.DefaultConfigWithAppConfig(distrtestutil.AppConfig) s.Require().NoError(err) @@ -467,216 +462,3 @@ func (s *CLITestSuite) TestGetCmdQueryCommunityPool() { }) } } - -func (s *CLITestSuite) TestNewWithdrawRewardsCmd() { - val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) - - testCases := []struct { - name string - valAddr fmt.Stringer - args []string - expectErr bool - respType proto.Message - }{ - { - "invalid validator address", - val[0].Address, - []string{ - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - true, nil, - }, - { - "valid transaction", - sdk.ValAddress(val[0].Address), - []string{ - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - false, &sdk.TxResponse{}, - }, - { - "valid transaction (with commission)", - sdk.ValAddress(val[0].Address), - []string{ - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=true", cli.FlagCommission), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - false, &sdk.TxResponse{}, - }, - } - - for _, tc := range testCases { - tc := tc - - s.Run(tc.name, func() { - bz, err := distrclitestutil.MsgWithdrawDelegatorRewardExec(s.clientCtx, tc.valAddr, tc.args...) - if tc.expectErr { - s.Require().Error(err) - } else { - s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(bz, tc.respType), string(bz)) - } - }) - } -} - -func (s *CLITestSuite) TestNewWithdrawAllRewardsCmd() { - val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) - - testCases := []struct { - name string - args []string - expectErr bool - expErrMsg string - respType proto.Message - }{ - { - "invalid transaction (offline)", - []string{ - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagOffline), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - true, - "cannot generate tx in offline mode", - nil, - }, - { - "valid transaction", - []string{ - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - false, "", &sdk.TxResponse{}, - }, - } - - for _, tc := range testCases { - tc := tc - - s.Run(tc.name, func() { - cmd := cli.NewWithdrawAllRewardsCmd() - - out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { - s.Require().Error(err) - s.Require().Contains(err.Error(), tc.expErrMsg) - } else { - s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - } - }) - } -} - -func (s *CLITestSuite) TestNewSetWithdrawAddrCmd() { - val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) - - testCases := []struct { - name string - args []string - expectErr bool - respType proto.Message - }{ - { - "invalid withdraw address", - []string{ - "foo", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - true, nil, - }, - { - "valid transaction", - []string{ - val[0].Address.String(), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - false, &sdk.TxResponse{}, - }, - } - - for _, tc := range testCases { - tc := tc - - s.Run(tc.name, func() { - cmd := cli.NewSetWithdrawAddrCmd(address.NewBech32Codec("cosmos")) - - out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { - s.Require().Error(err) - } else { - s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - } - }) - } -} - -func (s *CLITestSuite) TestNewFundCommunityPoolCmd() { - val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) - - testCases := []struct { - name string - args []string - expectErr bool - respType proto.Message - }{ - { - "invalid funding amount", - []string{ - "-43foocoin", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - true, nil, - }, - { - "valid transaction", - []string{ - sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(5431))).String(), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), - fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), - fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), - }, - false, &sdk.TxResponse{}, - }, - } - - for _, tc := range testCases { - tc := tc - - s.Run(tc.name, func() { - cmd := cli.NewFundCommunityPoolCmd() - - out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { - s.Require().Error(err) - } else { - s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - } - }) - } -} diff --git a/x/distribution/client/cli/tx_test.go b/x/distribution/client/cli/tx_test.go index 0c1ea11ff5..3522faa9b4 100644 --- a/x/distribution/client/cli/tx_test.go +++ b/x/distribution/client/cli/tx_test.go @@ -1,59 +1,237 @@ -package cli +package cli_test import ( - "testing" + "context" + "fmt" - "github.com/spf13/pflag" - "github.com/stretchr/testify/require" + sdkmath "cosmossdk.io/math" + "github.com/cosmos/gogoproto/proto" "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - "github.com/cosmos/cosmos-sdk/testutil/testdata" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/codec/address" + svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" + "github.com/cosmos/cosmos-sdk/testutil" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/distribution/client/cli" ) -func Test_splitAndCall_NoMessages(t *testing.T) { - clientCtx := client.Context{} +func (s *CLITestSuite) TestTxWithdrawRewardsCmd() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) - err := newSplitAndApply(nil, clientCtx, nil, nil, 10) - require.NoError(t, err, "") -} - -func Test_splitAndCall_Splitting(t *testing.T) { - clientCtx := client.Context{} - - addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) - - // Add five messages - msgs := []sdk.Msg{ - testdata.NewTestMsg(addr), - testdata.NewTestMsg(addr), - testdata.NewTestMsg(addr), - testdata.NewTestMsg(addr), - testdata.NewTestMsg(addr), + testCases := []struct { + name string + valAddr fmt.Stringer + args []string + expectErrMsg string + }{ + { + "invalid validator address", + val[0].Address, + []string{ + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + "invalid Bech32 prefix", + }, + { + "valid transaction", + sdk.ValAddress(val[0].Address), + []string{ + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + "", + }, + { + "valid transaction (with commission)", + sdk.ValAddress(val[0].Address), + []string{ + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=true", cli.FlagCommission), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + "", + }, } - // Keep track of number of calls - const chunkSize = 2 + for _, tc := range testCases { + tc := tc - callCount := 0 - err := newSplitAndApply( - func(clientCtx client.Context, fs *pflag.FlagSet, msgs ...sdk.Msg) error { - callCount++ + s.Run(tc.name, func() { + args := append([]string{tc.valAddr.String()}, tc.args...) - require.NotNil(t, clientCtx) - require.NotNil(t, msgs) + ctx := svrcmd.CreateExecuteContext(context.Background()) + cmd := cli.NewWithdrawRewardsCmd() + cmd.SetContext(ctx) + cmd.SetArgs(args) + s.Require().NoError(client.SetCmdClientContextHandler(s.clientCtx, cmd)) - if callCount < 3 { - require.Equal(t, len(msgs), 2) + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, args) + if tc.expectErrMsg != "" { + s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { - require.Equal(t, len(msgs), 1) + s.Require().NoError(err) + msg := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } - - return nil - }, - clientCtx, nil, msgs, chunkSize) - - require.NoError(t, err, "") - require.Equal(t, 3, callCount) + }) + } +} + +func (s *CLITestSuite) TestTxWithdrawAllRewardsCmd() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + + testCases := []struct { + name string + args []string + expectErrMsg string + }{ + { + "invalid transaction (offline)", + []string{ + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagOffline), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + "cannot generate tx in offline mode", + }, + { + "valid transaction", + []string{ + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + "", + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.NewWithdrawAllRewardsCmd() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErrMsg != "" { + s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) + } else { + s.Require().NoError(err) + msg := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + } + }) + } +} + +func (s *CLITestSuite) TestTxSetWithdrawAddrCmd() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + + testCases := []struct { + name string + args []string + expectErr bool + respType proto.Message + }{ + { + "invalid withdraw address", + []string{ + "foo", + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + true, nil, + }, + { + "valid transaction", + []string{ + val[0].Address.String(), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + false, &sdk.TxResponse{}, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.NewSetWithdrawAddrCmd(address.NewBech32Codec("cosmos")) + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErr { + s.Require().Error(err) + } else { + s.Require().NoError(err) + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) + } + }) + } +} + +func (s *CLITestSuite) TestTxFundCommunityPoolCmd() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + + testCases := []struct { + name string + args []string + expectErr bool + respType proto.Message + }{ + { + "invalid funding amount", + []string{ + "-43foocoin", + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + true, nil, + }, + { + "valid transaction", + []string{ + sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(5431))).String(), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + false, &sdk.TxResponse{}, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.NewFundCommunityPoolCmd() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErr { + s.Require().Error(err) + } else { + s.Require().NoError(err) + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) + } + }) + } } diff --git a/x/distribution/client/cli/util_test.go b/x/distribution/client/cli/util_test.go new file mode 100644 index 0000000000..0c1ea11ff5 --- /dev/null +++ b/x/distribution/client/cli/util_test.go @@ -0,0 +1,59 @@ +package cli + +import ( + "testing" + + "github.com/spf13/pflag" + "github.com/stretchr/testify/require" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" + "github.com/cosmos/cosmos-sdk/testutil/testdata" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func Test_splitAndCall_NoMessages(t *testing.T) { + clientCtx := client.Context{} + + err := newSplitAndApply(nil, clientCtx, nil, nil, 10) + require.NoError(t, err, "") +} + +func Test_splitAndCall_Splitting(t *testing.T) { + clientCtx := client.Context{} + + addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) + + // Add five messages + msgs := []sdk.Msg{ + testdata.NewTestMsg(addr), + testdata.NewTestMsg(addr), + testdata.NewTestMsg(addr), + testdata.NewTestMsg(addr), + testdata.NewTestMsg(addr), + } + + // Keep track of number of calls + const chunkSize = 2 + + callCount := 0 + err := newSplitAndApply( + func(clientCtx client.Context, fs *pflag.FlagSet, msgs ...sdk.Msg) error { + callCount++ + + require.NotNil(t, clientCtx) + require.NotNil(t, msgs) + + if callCount < 3 { + require.Equal(t, len(msgs), 2) + } else { + require.Equal(t, len(msgs), 1) + } + + return nil + }, + clientCtx, nil, msgs, chunkSize) + + require.NoError(t, err, "") + require.Equal(t, 3, callCount) +} diff --git a/x/distribution/client/testutil/helpers.go b/x/distribution/client/testutil/helpers.go deleted file mode 100644 index 19612c23fe..0000000000 --- a/x/distribution/client/testutil/helpers.go +++ /dev/null @@ -1,32 +0,0 @@ -package testutil - -import ( - "bytes" - "context" - "fmt" - - "github.com/cosmos/cosmos-sdk/client" - distrcli "github.com/cosmos/cosmos-sdk/x/distribution/client/cli" -) - -func MsgWithdrawDelegatorRewardExec(clientCtx client.Context, valAddr fmt.Stringer, extraArgs ...string) ([]byte, error) { - buf := new(bytes.Buffer) - clientCtx = clientCtx.WithOutput(buf) - - ctx := context.Background() - ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) - - args := []string{valAddr.String()} - args = append(args, extraArgs...) - - cmd := distrcli.NewWithdrawRewardsCmd() - cmd.SetErr(buf) - cmd.SetOut(buf) - cmd.SetArgs(args) - - if err := cmd.ExecuteContext(ctx); err != nil { - return nil, err - } - - return buf.Bytes(), nil -} diff --git a/x/evidence/client/cli/query_test.go b/x/evidence/client/cli/query_test.go index 25bc3bd4bc..5567d0427e 100644 --- a/x/evidence/client/cli/query_test.go +++ b/x/evidence/client/cli/query_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "context" "fmt" "io" @@ -10,7 +9,6 @@ import ( "cosmossdk.io/x/evidence" "cosmossdk.io/x/evidence/client/cli" - abci "github.com/cometbft/cometbft/abci/types" rpcclientmock "github.com/cometbft/cometbft/rpc/client/mock" "github.com/stretchr/testify/require" @@ -19,7 +17,6 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/keyring" svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" - sdk "github.com/cosmos/cosmos-sdk/types" testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" ) @@ -37,51 +34,25 @@ func TestGetQueryCmd(t *testing.T) { testCases := map[string]struct { args []string - ctxGen func() client.Context - expCmdOutput string expectedOutput string - expectErr bool + expectErrMsg string }{ - "non-existent evidence": { - []string{"DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660"}, - func() client.Context { - bz, _ := encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return baseCtx.WithClient(c) - }, - "DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660", + "invalid args": { + []string{"foo", "bar"}, "", - true, + "accepts at most 1 arg(s)", }, "all evidence (default pagination)": { []string{}, - func() client.Context { - bz, _ := encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return baseCtx.WithClient(c) - }, - "", "evidence: []\npagination: null", - false, + "", }, "all evidence (json output)": { []string{ fmt.Sprintf("--%s=json", flags.FlagOutput), }, - func() client.Context { - bz, _ := encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return baseCtx.WithClient(c) - }, - "", `{"evidence":[],"pagination":null}`, - false, + "", }, } @@ -89,31 +60,21 @@ func TestGetQueryCmd(t *testing.T) { tc := tc t.Run(name, func(t *testing.T) { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd := cli.GetQueryCmd() - cmd.SetOut(io.Discard) - require.NotNil(t, cmd) - cmd.SetContext(ctx) cmd.SetArgs(tc.args) - - require.NoError(t, client.SetCmdClientContextHandler(clientCtx, cmd)) - - if len(tc.args) != 0 { - require.Contains(t, fmt.Sprint(cmd), tc.expCmdOutput) - } + require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) out, err := clitestutil.ExecTestCLICmd(baseCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { require.Error(t, err) + require.Contains(t, err.Error(), tc.expectErrMsg) } else { require.NoError(t, err) } - require.Contains(t, fmt.Sprint(cmd), "evidence [] [] Query for evidence by hash or for all (paginated) submitted evidence") + require.Contains(t, strings.TrimSpace(out.String()), tc.expectedOutput) }) } diff --git a/x/evidence/go.mod b/x/evidence/go.mod index 3169951986..134f089e57 100644 --- a/x/evidence/go.mod +++ b/x/evidence/go.mod @@ -12,7 +12,7 @@ require ( cosmossdk.io/store v0.1.0-alpha.1.0.20230328185921-37ba88872dbc github.com/cometbft/cometbft v0.37.1-0.20230411132551-3a91d155e664 github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418140744-0dde947d0ab7 + github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419074131-aa683247d515 github.com/cosmos/gogoproto v1.4.8 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 diff --git a/x/evidence/go.sum b/x/evidence/go.sum index 0a30fc878b..18bde89021 100644 --- a/x/evidence/go.sum +++ b/x/evidence/go.sum @@ -183,8 +183,8 @@ github.com/cosmos/cosmos-db v1.0.0-rc.1 h1:SjnT8B6WKMW9WEIX32qMhnEEKcI7ZP0+G1Sa9 github.com/cosmos/cosmos-db v1.0.0-rc.1/go.mod h1:Dnmk3flSf5lkwCqvvjNpoxjpXzhxnCAFzKHlbaForso= github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418140744-0dde947d0ab7 h1:+Q/K5pdQdQjp21gIxlQgGy4dOZk9gUBSQmJCYIf1bWA= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418140744-0dde947d0ab7/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419074131-aa683247d515 h1:KMbJ5nAA0Xk79z0D1oL3kiw9lBYiqlV3ZqUxXVbbgBY= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419074131-aa683247d515/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= diff --git a/x/feegrant/client/cli/tx_test.go b/x/feegrant/client/cli/tx_test.go index a71eb3e487..b0e7ffc8d2 100644 --- a/x/feegrant/client/cli/tx_test.go +++ b/x/feegrant/client/cli/tx_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "fmt" "io" "strings" @@ -70,7 +69,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -79,7 +77,7 @@ func (s *CLITestSuite) SetupSuite() { return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() if testing.Short() { s.T().Skip("skipping test in unit-tests mode.") @@ -640,7 +638,6 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { pub, err := k.GetPubKey() s.Require().NoError(err) grantee := sdk.AccAddress(pub.Address()) - clientCtx := s.clientCtx commonFlags := []string{ @@ -649,15 +646,12 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(100))).String()), } spendLimit := sdk.NewCoin("stake", sdkmath.NewInt(1000)) - allowMsgs := strings.Join([]string{sdk.MsgTypeURL(&govv1beta1.MsgSubmitProposal{}), sdk.MsgTypeURL(&govv1.MsgVoteWeighted{})}, ",") testCases := []struct { name string args []string - expectErr bool - respType proto.Message - expectedCode uint32 + expectErrMsg string }{ { "invalid granter address", @@ -671,7 +665,7 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { }, commonFlags..., ), - true, &sdk.TxResponse{}, 0, + "key not found", }, { "invalid grantee address", @@ -685,7 +679,7 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { }, commonFlags..., ), - true, &sdk.TxResponse{}, 0, + "decoding bech32 failed", }, { "valid filter fee grant", @@ -699,7 +693,7 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { }, commonFlags..., ), - false, &sdk.TxResponse{}, 0, + "", }, } @@ -709,22 +703,21 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { s.Run(tc.name, func() { cmd := cli.NewCmdFeeGrant(codecaddress.NewBech32Codec("cosmos")) out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) - - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err) - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) + msg := &sdk.TxResponse{} + s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } // exec filtered fee allowance cases := []struct { - name string - malleate func() error - respType proto.Message - expectedCode uint32 + name string + malleate func() error }{ { "valid proposal tx", @@ -735,8 +728,6 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(100))).String()), ) }, - &sdk.TxResponse{}, - 0, }, { "valid weighted_vote tx", @@ -746,8 +737,6 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(100))).String()), ) }, - &sdk.TxResponse{}, - 2, }, { "should fail with unauthorized msgs", @@ -768,8 +757,6 @@ func (s *CLITestSuite) TestFilteredFeeAllowance() { return err }, - &sdk.TxResponse{}, - 7, }, } diff --git a/x/feegrant/go.mod b/x/feegrant/go.mod index 663b8c6f25..d8d0380eb6 100644 --- a/x/feegrant/go.mod +++ b/x/feegrant/go.mod @@ -12,7 +12,7 @@ require ( cosmossdk.io/store v0.1.0-alpha.1.0.20230328185921-37ba88872dbc github.com/cometbft/cometbft v0.37.1-0.20230411132551-3a91d155e664 github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418200457-cd283a676d79 + github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419124727-7b10ada768f4 github.com/cosmos/gogoproto v1.4.8 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 diff --git a/x/feegrant/go.sum b/x/feegrant/go.sum index 7c376b0a5c..a6d5922f9a 100644 --- a/x/feegrant/go.sum +++ b/x/feegrant/go.sum @@ -187,8 +187,8 @@ github.com/cosmos/cosmos-db v1.0.0-rc.1 h1:SjnT8B6WKMW9WEIX32qMhnEEKcI7ZP0+G1Sa9 github.com/cosmos/cosmos-db v1.0.0-rc.1/go.mod h1:Dnmk3flSf5lkwCqvvjNpoxjpXzhxnCAFzKHlbaForso= github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418200457-cd283a676d79 h1:Qa98Gl7JmoPWfrmfn/sL+vyeNZcqjM7EXhIypvUDkFs= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418200457-cd283a676d79/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419124727-7b10ada768f4 h1:tZ2vcNWznBxIIK37nlgrh4n/n5aQv0KY6VzIb86xTNs= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419124727-7b10ada768f4/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= diff --git a/x/genutil/client/cli/gentx_test.go b/x/genutil/client/cli/gentx_test.go index 22742b8fef..c3fa2e63d6 100644 --- a/x/genutil/client/cli/gentx_test.go +++ b/x/genutil/client/cli/gentx_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "context" "fmt" "io" @@ -52,7 +51,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -60,7 +58,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() } func (s *CLITestSuite) TestGenTxCmd() { diff --git a/x/gov/client/cli/tx_test.go b/x/gov/client/cli/tx_test.go index bd307dda21..3ae1b515c4 100644 --- a/x/gov/client/cli/tx_test.go +++ b/x/gov/client/cli/tx_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "encoding/base64" "fmt" "io" @@ -10,7 +9,6 @@ import ( sdkmath "cosmossdk.io/math" abci "github.com/cometbft/cometbft/abci/types" rpcclientmock "github.com/cometbft/cometbft/rpc/client/mock" - "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" "github.com/cosmos/cosmos-sdk/client" @@ -54,7 +52,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -62,7 +59,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) @@ -130,10 +127,9 @@ func (s *CLITestSuite) TestNewCmdSubmitProposal() { defer validPropFile.Close() testCases := []struct { - name string - args []string - expectErr bool - respType proto.Message + name string + args []string + expectErrMsg string }{ { "invalid proposal", @@ -142,7 +138,7 @@ func (s *CLITestSuite) TestNewCmdSubmitProposal() { fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - true, nil, + "invalid decimal coin expression", }, { "valid proposal", @@ -153,7 +149,7 @@ func (s *CLITestSuite) TestNewCmdSubmitProposal() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, &sdk.TxResponse{}, + "", }, } @@ -164,11 +160,13 @@ func (s *CLITestSuite) TestNewCmdSubmitProposal() { cmd := cli.NewCmdSubmitProposal() out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) + msg := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -195,10 +193,9 @@ func (s *CLITestSuite) TestNewCmdSubmitLegacyProposal() { defer validPropFile.Close() testCases := []struct { - name string - args []string - expectErr bool - respType proto.Message + name string + args []string + expectErrMsg string }{ { "invalid proposal (file)", @@ -208,7 +205,7 @@ func (s *CLITestSuite) TestNewCmdSubmitLegacyProposal() { fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - true, nil, + "failed to parse proposal: proposal title is required", }, { "invalid proposal", @@ -220,7 +217,7 @@ func (s *CLITestSuite) TestNewCmdSubmitLegacyProposal() { fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - true, nil, + "failed to parse proposal: proposal title is required", }, { "valid transaction (file)", @@ -232,7 +229,7 @@ func (s *CLITestSuite) TestNewCmdSubmitLegacyProposal() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, &sdk.TxResponse{}, + "", }, { "valid transaction", @@ -246,7 +243,7 @@ func (s *CLITestSuite) TestNewCmdSubmitLegacyProposal() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, &sdk.TxResponse{}, + "", }, } @@ -257,11 +254,13 @@ func (s *CLITestSuite) TestNewCmdSubmitLegacyProposal() { cmd := cli.NewCmdSubmitLegacyProposal() out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) + msg := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -271,31 +270,33 @@ func (s *CLITestSuite) TestNewCmdDeposit() { val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) testCases := []struct { - name string - args []string - expectErr bool + name string + args []string + expectErrMsg string }{ { - "without proposal id", + "invalid proposal id", []string{ + "abc", sdk.NewCoin("stake", sdkmath.NewInt(10)).String(), // 10stake fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - true, + "proposal-id abc not a valid uint, please input a valid proposal-id", }, { "without deposit amount", []string{ "1", + "invalidCoin", fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - true, + "invalid decimal coin expression: invalidCoin", }, { "deposit on a proposal", @@ -307,23 +308,24 @@ func (s *CLITestSuite) TestNewCmdDeposit() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, + "", }, } for _, tc := range testCases { tc := tc - var resp sdk.TxResponse s.Run(tc.name, func() { cmd := cli.NewCmdDeposit() out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), &resp), out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp), out.String()) } }) } @@ -335,18 +337,12 @@ func (s *CLITestSuite) TestNewCmdVote() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 + expectErrMsg string }{ - { - "invalid vote", - []string{}, - true, 0, - }, { "vote for invalid proposal", []string{ - "10", + "abc", "yes", fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), @@ -354,7 +350,19 @@ func (s *CLITestSuite) TestNewCmdVote() { fmt.Sprintf("--metadata=%s", "AQ=="), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, 3, + "proposal-id abc not a valid int, please input a valid proposal-id", + }, + { + "invalid vote", + []string{ + "1", + "AYE", + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + "'AYE' is not a valid vote option", }, { "valid vote", @@ -366,7 +374,7 @@ func (s *CLITestSuite) TestNewCmdVote() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, 0, + "", }, { "valid vote with metadata", @@ -379,7 +387,7 @@ func (s *CLITestSuite) TestNewCmdVote() { fmt.Sprintf("--metadata=%s", "AQ=="), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, 0, + "", }, } @@ -387,15 +395,15 @@ func (s *CLITestSuite) TestNewCmdVote() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdVote() - var txResp sdk.TxResponse - out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp), out.String()) } }) } @@ -407,25 +415,31 @@ func (s *CLITestSuite) TestNewCmdWeightedVote() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 + expectErrMsg string }{ - { - "invalid vote", - []string{}, - true, 0, - }, { "vote for invalid proposal", []string{ - "10", + "abc", "yes", fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, 3, + "proposal-id abc not a valid int, please input a valid proposal-id", + }, + { + "invalid vote", + []string{ + "1", + "AYE", + fmt.Sprintf("--%s=%s", flags.FlagFrom, val[0].Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), + }, + "'AYE' is not a valid vote option", }, { "valid vote", @@ -437,7 +451,7 @@ func (s *CLITestSuite) TestNewCmdWeightedVote() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, 0, + "", }, { "valid vote with metadata", @@ -450,7 +464,7 @@ func (s *CLITestSuite) TestNewCmdWeightedVote() { fmt.Sprintf("--metadata=%s", "AQ=="), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, 0, + "", }, { "invalid valid split vote string", @@ -462,7 +476,7 @@ func (s *CLITestSuite) TestNewCmdWeightedVote() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - true, 0, + "'yes/0.6' is not a valid vote option", }, { "valid split vote", @@ -474,7 +488,7 @@ func (s *CLITestSuite) TestNewCmdWeightedVote() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin("stake", sdkmath.NewInt(10))).String()), }, - false, 0, + "", }, } @@ -482,15 +496,14 @@ func (s *CLITestSuite) TestNewCmdWeightedVote() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdWeightedVote() - var txResp sdk.TxResponse - out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp), out.String()) } }) } diff --git a/x/group/client/cli/tx_test.go b/x/group/client/cli/tx_test.go index d901340e4e..4a2b6dd490 100644 --- a/x/group/client/cli/tx_test.go +++ b/x/group/client/cli/tx_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "context" "encoding/json" "fmt" @@ -66,7 +65,6 @@ func (s *CLITestSuite) SetupSuite() { accounts := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) val := accounts[0] - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -74,7 +72,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() // create a new account info, _, err := s.clientCtx.Keyring.NewMnemonic("NewValidator", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) @@ -146,20 +144,12 @@ func (s *CLITestSuite) TestTxCreateGroup() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { name: "correct data", - ctxGen: func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, args: append( []string{ accounts[0].Address.String(), @@ -173,13 +163,6 @@ func (s *CLITestSuite) TestTxCreateGroup() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -194,13 +177,6 @@ func (s *CLITestSuite) TestTxCreateGroup() { }, { "invalid members weight", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -214,13 +190,6 @@ func (s *CLITestSuite) TestTxCreateGroup() { }, { "no member provided", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -238,28 +207,23 @@ func (s *CLITestSuite) TestTxCreateGroup() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) - cmd.SetContext(ctx) cmd.SetArgs(tc.args) - - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -271,21 +235,9 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { cmd := groupcli.MsgUpdateGroupAdminCmd() cmd.SetOutput(io.Discard) - var outBuf bytes.Buffer - - ctxGen := func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - } - clientCtx := ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) - cmd.SetContext(ctx) - - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) groupIDs := make([]string, 2) for i := 0; i < 2; i++ { @@ -295,7 +247,7 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { "metadata": "%s" }]}`, accounts[0].Address.String(), validMetadata) validMembersFile := testutil.WriteToNewTempFile(s.T(), validMembers) - out, err := clitestutil.ExecTestCLICmd(clientCtx, groupcli.MsgCreateGroupCmd(), + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, groupcli.MsgCreateGroupCmd(), append( []string{ accounts[0].Address.String(), @@ -314,7 +266,6 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { ctxGen func() client.Context args []string expCmdOutput string - expectErr bool expectErrMsg string }{ { @@ -335,7 +286,6 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { s.commonFlags..., ), fmt.Sprintf("%s %s %s", accounts[0].Address.String(), groupIDs[0], accounts[1].Address.String()), - false, "", }, { @@ -357,7 +307,6 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { s.commonFlags..., ), fmt.Sprintf("%s %s %s --%s=%s", accounts[0].Address.String(), groupIDs[1], accounts[1].Address.String(), flags.FlagSignMode, flags.SignModeLegacyAminoJSON), - false, "", }, { @@ -378,7 +327,6 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { s.commonFlags..., ), fmt.Sprintf("%s %s %s", accounts[0].Address.String(), "", accounts[1].Address.String()), - true, "strconv.ParseUint: parsing \"\": invalid syntax", }, } @@ -387,28 +335,25 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) - if tc.expectErr { + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) + if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -422,20 +367,12 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -449,13 +386,6 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -470,13 +400,6 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { }, { "invalid group id", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -490,13 +413,6 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { }, { "empty group id", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -514,28 +430,25 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -569,20 +482,12 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -596,13 +501,6 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -617,13 +515,6 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { }, { "group id invalid", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -637,13 +528,6 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { }, { "group member weight invalid", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -661,28 +545,25 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -711,20 +592,12 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { testCases := []struct { name string - ctxGen func() client.Context args []string expectErrMsg string expCmdOutput string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -741,13 +614,6 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { }, { "group-policy-as-admin is true", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -764,13 +630,6 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -788,13 +647,6 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { }, { "invalid members weight", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ accounts[0].Address.String(), @@ -814,28 +666,25 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err, out.String()) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -858,20 +707,12 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { testCases := []struct { name string - ctxGen func() client.Context args []string expectErrMsg string expCmdOutput string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ val.Address.String(), @@ -886,13 +727,6 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { }, { "correct data with percentage decision policy", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ val.Address.String(), @@ -907,13 +741,6 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ val.Address.String(), @@ -929,13 +756,6 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { }, { "wrong admin", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ "wrongAdmin", @@ -950,13 +770,6 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { }, { "invalid percentage decision policy with negative value", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ val.Address.String(), @@ -971,13 +784,6 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { }, { "invalid percentage decision policy with value greater than 1", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ val.Address.String(), @@ -996,28 +802,25 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err, out.String()) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -1037,20 +840,12 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.Address.String(), @@ -1064,13 +859,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.Address.String(), @@ -1085,13 +873,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { }, { "wrong admin", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ "wrong admin", @@ -1105,13 +886,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { }, { "identical admin and new admin", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.Address.String(), @@ -1129,28 +903,25 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -1173,20 +944,12 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.Address.String(), @@ -1200,13 +963,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { }, { "correct data with percentage decision policy", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.Address.String(), @@ -1220,13 +976,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.Address.String(), @@ -1241,13 +990,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { }, { "wrong admin", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ newAdmin.Address.String(), @@ -1265,28 +1007,25 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -1305,20 +1044,12 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.String(), @@ -1332,13 +1063,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ groupPolicyAdmin.String(), @@ -1353,13 +1077,6 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { }, { "wrong admin", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ "wrong admin", @@ -1377,28 +1094,25 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -1423,20 +1137,12 @@ func (s *CLITestSuite) TestTxSubmitProposal() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ proposalFile.Name(), @@ -1448,13 +1154,6 @@ func (s *CLITestSuite) TestTxSubmitProposal() { }, { "with try exec", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ proposalFile.Name(), @@ -1467,13 +1166,6 @@ func (s *CLITestSuite) TestTxSubmitProposal() { }, { "with try exec, not enough yes votes for proposal to pass", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ proposalFile.Name(), @@ -1486,13 +1178,6 @@ func (s *CLITestSuite) TestTxSubmitProposal() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ proposalFile.Name(), @@ -1509,28 +1194,25 @@ func (s *CLITestSuite) TestTxSubmitProposal() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -1549,20 +1231,12 @@ func (s *CLITestSuite) TestTxVote() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "invalid vote", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ ids[0], @@ -1577,13 +1251,6 @@ func (s *CLITestSuite) TestTxVote() { }, { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ ids[0], @@ -1598,13 +1265,6 @@ func (s *CLITestSuite) TestTxVote() { }, { "with try exec", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ ids[1], @@ -1620,13 +1280,6 @@ func (s *CLITestSuite) TestTxVote() { }, { "with amino-json", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ ids[3], @@ -1646,28 +1299,25 @@ func (s *CLITestSuite) TestTxVote() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } @@ -1685,20 +1335,12 @@ func (s *CLITestSuite) TestTxWithdrawProposal() { testCases := []struct { name string - ctxGen func() client.Context args []string expCmdOutput string expectErrMsg string }{ { "correct data", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ ids[0], @@ -1711,13 +1353,6 @@ func (s *CLITestSuite) TestTxWithdrawProposal() { }, { "wrong admin", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ ids[1], @@ -1730,13 +1365,6 @@ func (s *CLITestSuite) TestTxWithdrawProposal() { }, { "wrong proposal id", - func() client.Context { - bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ - Value: bz, - }) - return s.baseCtx.WithClient(c) - }, append( []string{ "abc", @@ -1753,27 +1381,25 @@ func (s *CLITestSuite) TestTxWithdrawProposal() { tc := tc s.Run(tc.name, func() { - var outBuf bytes.Buffer - clientCtx := tc.ctxGen().WithOutput(&outBuf) ctx := svrcmd.CreateExecuteContext(context.Background()) cmd.SetContext(ctx) cmd.SetArgs(tc.args) - s.Require().NoError(client.SetCmdClientContextHandler(clientCtx, cmd)) + s.Require().NoError(client.SetCmdClientContextHandler(s.baseCtx, cmd)) if len(tc.args) != 0 { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(s.baseCtx, cmd, tc.args) if tc.expectErrMsg != "" { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) } else { s.Require().NoError(err) msg := &sdk.TxResponse{} - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) + s.Require().NoError(s.baseCtx.Codec.UnmarshalJSON(out.Bytes(), msg), out.String()) } }) } diff --git a/x/nft/client/cli/tx_test.go b/x/nft/client/cli/tx_test.go index a4834ffaea..6fd09133f3 100644 --- a/x/nft/client/cli/tx_test.go +++ b/x/nft/client/cli/tx_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "context" "fmt" "io" @@ -94,7 +93,6 @@ func (s *CLITestSuite) SetupSuite() { WithChainID("test-chain") s.ctx = svrcmd.CreateExecuteContext(context.Background()) - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -102,7 +100,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() cfg, err := network.DefaultConfigWithAppConfig(nfttestutil.AppConfig) s.Require().NoError(err) diff --git a/x/nft/go.mod b/x/nft/go.mod index dc0487e827..c814319777 100644 --- a/x/nft/go.mod +++ b/x/nft/go.mod @@ -11,7 +11,7 @@ require ( cosmossdk.io/store v0.1.0-alpha.1.0.20230328185921-37ba88872dbc github.com/cometbft/cometbft v0.37.1-0.20230411132551-3a91d155e664 github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418200457-cd283a676d79 + github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419124727-7b10ada768f4 github.com/cosmos/gogoproto v1.4.8 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 diff --git a/x/nft/go.sum b/x/nft/go.sum index 75bbc9ef8e..ea4c8d4af2 100644 --- a/x/nft/go.sum +++ b/x/nft/go.sum @@ -182,8 +182,8 @@ github.com/cosmos/cosmos-db v1.0.0-rc.1 h1:SjnT8B6WKMW9WEIX32qMhnEEKcI7ZP0+G1Sa9 github.com/cosmos/cosmos-db v1.0.0-rc.1/go.mod h1:Dnmk3flSf5lkwCqvvjNpoxjpXzhxnCAFzKHlbaForso= github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418200457-cd283a676d79 h1:Qa98Gl7JmoPWfrmfn/sL+vyeNZcqjM7EXhIypvUDkFs= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418200457-cd283a676d79/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419124727-7b10ada768f4 h1:tZ2vcNWznBxIIK37nlgrh4n/n5aQv0KY6VzIb86xTNs= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419124727-7b10ada768f4/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= diff --git a/x/slashing/client/cli/query_test.go b/x/slashing/client/cli/query_test.go index a86a30a1e7..0779025cfc 100644 --- a/x/slashing/client/cli/query_test.go +++ b/x/slashing/client/cli/query_test.go @@ -1,7 +1,6 @@ package cli_test import ( - "bytes" "fmt" "io" "testing" @@ -52,7 +51,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -61,7 +59,7 @@ func (s *CLITestSuite) SetupSuite() { return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() k, _, err := s.clientCtx.Keyring.NewMnemonic("NewValidator", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) s.Require().NoError(err) diff --git a/x/slashing/client/cli/tx_test.go b/x/slashing/client/cli/tx_test.go index 8ffc9b9e47..b7dff299e1 100644 --- a/x/slashing/client/cli/tx_test.go +++ b/x/slashing/client/cli/tx_test.go @@ -3,8 +3,6 @@ package cli_test import ( "fmt" - "github.com/cosmos/gogoproto/proto" - "github.com/cosmos/cosmos-sdk/client/flags" clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" sdk "github.com/cosmos/cosmos-sdk/types" @@ -16,9 +14,7 @@ func (s *CLITestSuite) TestNewUnjailTxCmd() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 - respType proto.Message + expectErrMsg string }{ { "valid transaction", @@ -28,7 +24,7 @@ func (s *CLITestSuite) TestNewUnjailTxCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), // sync mode as there are no funds yet fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, } @@ -40,14 +36,12 @@ func (s *CLITestSuite) TestNewUnjailTxCmd() { clientCtx := s.clientCtx out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) } else { s.Require().NoError(err) - s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - - txResp := tc.respType.(*sdk.TxResponse) - s.Require().Equal(tc.expectedCode, txResp.Code, out.String()) + txResp := &sdk.TxResponse{} + s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), txResp), out.String()) } }) } diff --git a/x/staking/client/cli/tx.go b/x/staking/client/cli/tx.go index 8c8191cdd2..35599b0b60 100644 --- a/x/staking/client/cli/tx.go +++ b/x/staking/client/cli/tx.go @@ -289,6 +289,7 @@ $ %s tx staking unbond %s1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100stake --from if err != nil { return err } + delAddr := clientCtx.GetFromAddress() valAddr, err := sdk.ValAddressFromBech32(args[0]) if err != nil { diff --git a/x/staking/client/cli/tx_test.go b/x/staking/client/cli/tx_test.go index c595e00d51..2ad8db094a 100644 --- a/x/staking/client/cli/tx_test.go +++ b/x/staking/client/cli/tx_test.go @@ -1,14 +1,12 @@ package cli_test import ( - "bytes" "fmt" "io" "testing" abci "github.com/cometbft/cometbft/abci/types" rpcclientmock "github.com/cometbft/cometbft/rpc/client/mock" - "github.com/cosmos/gogoproto/proto" "github.com/spf13/pflag" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" @@ -51,7 +49,6 @@ func (s *CLITestSuite) SetupSuite() { WithOutput(io.Discard). WithChainID("test-chain") - var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) c := clitestutil.NewMockCometRPC(abci.ResponseQuery{ @@ -59,7 +56,7 @@ func (s *CLITestSuite) SetupSuite() { }) return s.baseCtx.WithClient(c) } - s.clientCtx = ctxGen().WithOutput(&outBuf) + s.clientCtx = ctxGen() s.addrs = make([]sdk.AccAddress, 0) for i := 0; i < 3; i++ { @@ -231,11 +228,9 @@ func (s *CLITestSuite) TestNewCreateValidatorCmd() { defer noMonikerJSONFile.Close() testCases := []struct { - name string - args []string - expectErr bool - expErrMsg string - respType proto.Message + name string + args []string + expectErrMsg string }{ { "invalid transaction (missing amount)", @@ -246,9 +241,7 @@ func (s *CLITestSuite) TestNewCreateValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, "must specify amount of coins to bond", - nil, }, { "invalid transaction (missing pubkey)", @@ -259,9 +252,7 @@ func (s *CLITestSuite) TestNewCreateValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, "must specify the JSON encoded pubkey", - nil, }, { "invalid transaction (missing moniker)", @@ -272,9 +263,7 @@ func (s *CLITestSuite) TestNewCreateValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, "must specify the moniker name", - nil, }, { "valid transaction with all fields", @@ -285,7 +274,7 @@ func (s *CLITestSuite) TestNewCreateValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, "", &sdk.TxResponse{}, + "", }, { "valid transaction without optional fields", @@ -296,19 +285,20 @@ func (s *CLITestSuite) TestNewCreateValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, "", &sdk.TxResponse{}, + "", }, } for _, tc := range testCases { tc := tc s.Run(tc.name, func() { out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { require.Error(err) - require.Contains(err.Error(), tc.expErrMsg) + require.Contains(err.Error(), tc.expectErrMsg) } else { require.NoError(err, "test: %s\noutput: %s", tc.name, out.String()) - err = s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType) + resp := &sdk.TxResponse{} + err = s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp) require.NoError(err, out.String(), "test: %s, output\n:", tc.name, out.String()) } }) @@ -326,32 +316,30 @@ func (s *CLITestSuite) TestNewEditValidatorCmd() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 - respType proto.Message + expectErrMsg string }{ { - "with no edit flag (since all are optional)", + "wrong from address", []string{ fmt.Sprintf("--%s=%s", flags.FlagFrom, "with wrong from address"), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "key not found", }, { - "with no edit flag (since all are optional)", + "valid with no edit flag (since all are optional)", []string{ fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, { - "edit validator details", + "valid with edit validator details", []string{ fmt.Sprintf("--details=%s", details), fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), @@ -359,7 +347,7 @@ func (s *CLITestSuite) TestNewEditValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, { "edit validator identity", @@ -370,7 +358,7 @@ func (s *CLITestSuite) TestNewEditValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, { "edit validator security-contact", @@ -381,7 +369,7 @@ func (s *CLITestSuite) TestNewEditValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, { "edit validator website", @@ -392,7 +380,7 @@ func (s *CLITestSuite) TestNewEditValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, { "with all edit flags", @@ -406,7 +394,7 @@ func (s *CLITestSuite) TestNewEditValidatorCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, } @@ -415,14 +403,13 @@ func (s *CLITestSuite) TestNewEditValidatorCmd() { s.Run(tc.name, func() { out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err, out.String()) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - - txResp := tc.respType.(*sdk.TxResponse) - s.Require().Equal(tc.expectedCode, txResp.Code, out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp)) } }) } @@ -434,31 +421,31 @@ func (s *CLITestSuite) TestNewDelegateCmd() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 - respType proto.Message + expectErrMsg string }{ { - "without delegate amount", + "invalid delegate amount", []string{ sdk.ValAddress(s.addrs[0]).String(), + "fooCoin", fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "invalid decimal coin expression: fooCoin", }, { - "without validator address", + "invalid validator address", []string{ + "abc", sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(150)).String(), fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "decoding bech32 failed", }, { "valid transaction of delegate", @@ -470,7 +457,7 @@ func (s *CLITestSuite) TestNewDelegateCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, } @@ -479,14 +466,13 @@ func (s *CLITestSuite) TestNewDelegateCmd() { s.Run(tc.name, func() { out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err, out.String()) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - - txResp := tc.respType.(*sdk.TxResponse) - s.Require().Equal(tc.expectedCode, txResp.Code, out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp)) } }) } @@ -498,21 +484,20 @@ func (s *CLITestSuite) TestNewRedelegateCmd() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 - respType proto.Message + expectErrMsg string }{ { - "without amount", + "invalid amount", []string{ sdk.ValAddress(s.addrs[0]).String(), // src-validator-addr sdk.ValAddress(s.addrs[1]).String(), // dst-validator-addr + "fooCoin", fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "invalid decimal coin expression: fooCoin", }, { "valid transaction of delegate", @@ -526,7 +511,7 @@ func (s *CLITestSuite) TestNewRedelegateCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, } @@ -535,14 +520,13 @@ func (s *CLITestSuite) TestNewRedelegateCmd() { s.Run(tc.name, func() { out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err, out.String()) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - - txResp := tc.respType.(*sdk.TxResponse) - s.Require().Equal(tc.expectedCode, txResp.Code, out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp)) } }) } @@ -554,31 +538,31 @@ func (s *CLITestSuite) TestNewUnbondCmd() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 - respType proto.Message + expectErrMsg string }{ { - "Without unbond amount", + "invalid unbond amount", []string{ sdk.ValAddress(s.addrs[0]).String(), + "foo", fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "invalid decimal coin expression: foo", }, { - "Without validator address", + "invalid validator address", []string{ + "foo", sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(150)).String(), fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "decoding bech32 failed", }, { "valid transaction of unbond", @@ -590,7 +574,7 @@ func (s *CLITestSuite) TestNewUnbondCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, } @@ -599,14 +583,13 @@ func (s *CLITestSuite) TestNewUnbondCmd() { s.Run(tc.name, func() { out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err, out.String()) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - - txResp := tc.respType.(*sdk.TxResponse) - s.Require().Equal(tc.expectedCode, txResp.Code, out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp)) } }) } @@ -618,42 +601,46 @@ func (s *CLITestSuite) TestNewCancelUnbondingDelegationCmd() { testCases := []struct { name string args []string - expectErr bool - expectedCode uint32 - respType proto.Message + expectErrMsg string }{ { - "Without validator address", + "invalid validator address", []string{ + "foo", + sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(150)).String(), + sdk.NewInt(10000).String(), fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "decoding bech32 failed", }, { - "Without canceling unbond delegation amount", + "invalid canceling unbond delegation amount", []string{ sdk.ValAddress(s.addrs[0]).String(), + "fooCoin", + sdk.NewInt(10000).String(), fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "invalid decimal coin expression", }, { - "Without unbond creation height", + "without unbond creation height", []string{ sdk.ValAddress(s.addrs[0]).String(), sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(150)).String(), + "abc", fmt.Sprintf("--%s=%s", flags.FlagFrom, s.addrs[0]), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - true, 0, nil, + "invalid height: invalid height: 0", }, { "valid transaction of canceling unbonding delegation", @@ -666,7 +653,7 @@ func (s *CLITestSuite) TestNewCancelUnbondingDelegationCmd() { fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()), }, - false, 0, &sdk.TxResponse{}, + "", }, } @@ -675,14 +662,13 @@ func (s *CLITestSuite) TestNewCancelUnbondingDelegationCmd() { s.Run(tc.name, func() { out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) - if tc.expectErr { + if tc.expectErrMsg != "" { s.Require().Error(err) + s.Require().Contains(err.Error(), tc.expectErrMsg) } else { s.Require().NoError(err, out.String()) - s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) - - txResp := tc.respType.(*sdk.TxResponse) - s.Require().Equal(tc.expectedCode, txResp.Code, out.String()) + resp := &sdk.TxResponse{} + s.Require().NoError(s.clientCtx.Codec.UnmarshalJSON(out.Bytes(), resp)) } }) } diff --git a/x/upgrade/client/cli/tx_test.go b/x/upgrade/client/cli/tx_test.go deleted file mode 100644 index dd8d5c9e34..0000000000 --- a/x/upgrade/client/cli/tx_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package cli_test - -import ( - "context" - "fmt" - "io" - "testing" - - rpcclientmock "github.com/cometbft/cometbft/rpc/client/mock" - "github.com/stretchr/testify/require" - - "cosmossdk.io/x/upgrade" - upgradecli "cosmossdk.io/x/upgrade/client/cli" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/crypto/keyring" - svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" - clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" - testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" -) - -func TestModuleVersionsCLI(t *testing.T) { - cmd := upgradecli.GetModuleVersionsCmd() - cmd.SetOut(io.Discard) - require.NotNil(t, cmd) - - encCfg := testutilmod.MakeTestEncodingConfig(upgrade.AppModuleBasic{}) - kr := keyring.NewInMemory(encCfg.Codec) - baseCtx := client.Context{}. - WithKeyring(kr). - WithTxConfig(encCfg.TxConfig). - WithCodec(encCfg.Codec). - WithClient(clitestutil.MockCometRPC{Client: rpcclientmock.Client{}}). - WithAccountRetriever(client.MockAccountRetriever{}). - WithOutput(io.Discard). - WithChainID("test-chain") - - testCases := []struct { - msg string - args []string - expCmdOuptut string - }{ - { - msg: "test full query with json output", - args: []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=json", flags.FlagOutput)}, - expCmdOuptut: `--height=1 --output=json`, - }, - { - msg: "test full query with text output", - args: []string{fmt.Sprintf("--%s=1", flags.FlagHeight), fmt.Sprintf("--%s=text", flags.FlagOutput)}, - expCmdOuptut: `--height=1 --output=text`, - }, - { - msg: "test single module", - args: []string{"bank", fmt.Sprintf("--%s=1", flags.FlagHeight)}, - expCmdOuptut: `bank --height=1`, - }, - { - msg: "test non-existent module", - args: []string{"abcdefg", fmt.Sprintf("--%s=1", flags.FlagHeight)}, - expCmdOuptut: `abcdefg --height=1`, - }, - } - - for _, tc := range testCases { - tc := tc - - t.Run(tc.msg, func(t *testing.T) { - ctx := svrcmd.CreateExecuteContext(context.Background()) - - cmd.SetOut(io.Discard) - require.NotNil(t, cmd) - - cmd.SetContext(ctx) - cmd.SetArgs(tc.args) - - require.NoError(t, client.SetCmdClientContextHandler(baseCtx, cmd)) - - if len(tc.args) != 0 { - require.Contains(t, fmt.Sprint(cmd), tc.expCmdOuptut) - } - }) - } -} diff --git a/x/upgrade/go.mod b/x/upgrade/go.mod index 0500350e4d..c940d9b2f2 100644 --- a/x/upgrade/go.mod +++ b/x/upgrade/go.mod @@ -13,7 +13,7 @@ require ( github.com/cometbft/cometbft v0.37.1-0.20230411132551-3a91d155e664 github.com/cosmos/cosmos-db v1.0.0-rc.1 github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418140744-0dde947d0ab7 + github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419074131-aa683247d515 github.com/cosmos/gogoproto v1.4.8 github.com/golang/protobuf v1.5.3 github.com/grpc-ecosystem/grpc-gateway v1.16.0 diff --git a/x/upgrade/go.sum b/x/upgrade/go.sum index b9e9eb9e50..2de7d339f4 100644 --- a/x/upgrade/go.sum +++ b/x/upgrade/go.sum @@ -347,8 +347,8 @@ github.com/cosmos/cosmos-db v1.0.0-rc.1 h1:SjnT8B6WKMW9WEIX32qMhnEEKcI7ZP0+G1Sa9 github.com/cosmos/cosmos-db v1.0.0-rc.1/go.mod h1:Dnmk3flSf5lkwCqvvjNpoxjpXzhxnCAFzKHlbaForso= github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418140744-0dde947d0ab7 h1:+Q/K5pdQdQjp21gIxlQgGy4dOZk9gUBSQmJCYIf1bWA= -github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230418140744-0dde947d0ab7/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419074131-aa683247d515 h1:KMbJ5nAA0Xk79z0D1oL3kiw9lBYiqlV3ZqUxXVbbgBY= +github.com/cosmos/cosmos-sdk v0.46.0-beta2.0.20230419074131-aa683247d515/go.mod h1:BPvKPN63ettXrpz67uM1rHEqX/UVVkAfceFCPyp217E= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw=