From 155bcfaf21b5f33824e4eb6de2c8862b80a9c416 Mon Sep 17 00:00:00 2001 From: Likhita Polavarapu <78951027+likhita-809@users.noreply.github.com> Date: Thu, 3 Nov 2022 22:39:23 +0530 Subject: [PATCH 1/7] refactor(distribution): CLI tests using Tendermint Mock (#13692) * move distribution cli tests to e2e tests * wip: add cli tests * wip: remove duplicate helpers.go file * fix something Co-authored-by: Julien Robert Co-authored-by: atheeshp <59333759+atheeshp@users.noreply.github.com> Co-authored-by: Marko --- tests/e2e/distribution/cli_test.go | 8 +- .../e2e/distribution}/grpc_query_suite.go | 2 +- .../e2e/distribution}/suite.go | 5 +- .../e2e/distribution}/withdraw_all_suite.go | 2 +- x/distribution/client/cli/suite_test.go | 710 ++++++++++++++++++ 5 files changed, 718 insertions(+), 9 deletions(-) rename {x/distribution/client/testutil => tests/e2e/distribution}/grpc_query_suite.go (99%) rename {x/distribution/client/testutil => tests/e2e/distribution}/suite.go (99%) rename {x/distribution/client/testutil => tests/e2e/distribution}/withdraw_all_suite.go (99%) create mode 100644 x/distribution/client/cli/suite_test.go diff --git a/tests/e2e/distribution/cli_test.go b/tests/e2e/distribution/cli_test.go index 0029be1e38ae..d7a2b5ba2970 100644 --- a/tests/e2e/distribution/cli_test.go +++ b/tests/e2e/distribution/cli_test.go @@ -7,18 +7,16 @@ import ( "testing" "github.com/stretchr/testify/suite" - - "github.com/cosmos/cosmos-sdk/x/distribution/client/testutil" ) func TestIntegrationTestSuite(t *testing.T) { - suite.Run(t, new(testutil.IntegrationTestSuite)) + suite.Run(t, new(IntegrationTestSuite)) } func TestGRPCQueryTestSuite(t *testing.T) { - suite.Run(t, new(testutil.GRPCQueryTestSuite)) + suite.Run(t, new(GRPCQueryTestSuite)) } func TestWithdrawAllSuite(t *testing.T) { - suite.Run(t, new(testutil.WithdrawAllTestSuite)) + suite.Run(t, new(WithdrawAllTestSuite)) } diff --git a/x/distribution/client/testutil/grpc_query_suite.go b/tests/e2e/distribution/grpc_query_suite.go similarity index 99% rename from x/distribution/client/testutil/grpc_query_suite.go rename to tests/e2e/distribution/grpc_query_suite.go index 018f01126005..701a6c8ff8fb 100644 --- a/x/distribution/client/testutil/grpc_query_suite.go +++ b/tests/e2e/distribution/grpc_query_suite.go @@ -1,4 +1,4 @@ -package testutil +package distribution import ( "fmt" diff --git a/x/distribution/client/testutil/suite.go b/tests/e2e/distribution/suite.go similarity index 99% rename from x/distribution/client/testutil/suite.go rename to tests/e2e/distribution/suite.go index e72fba899639..8e775599fbdd 100644 --- a/x/distribution/client/testutil/suite.go +++ b/tests/e2e/distribution/suite.go @@ -1,4 +1,4 @@ -package testutil +package distribution import ( "encoding/hex" @@ -16,6 +16,7 @@ import ( "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" "github.com/cosmos/cosmos-sdk/x/distribution/testutil" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" @@ -557,7 +558,7 @@ func (s *IntegrationTestSuite) TestNewWithdrawRewardsCmd() { clientCtx := val.ClientCtx _, _ = s.network.WaitForHeightWithTimeout(10, time.Minute) - bz, err := MsgWithdrawDelegatorRewardExec(clientCtx, tc.valAddr, tc.args...) + bz, err := distrclitestutil.MsgWithdrawDelegatorRewardExec(clientCtx, tc.valAddr, tc.args...) if tc.expectErr { s.Require().Error(err) } else { diff --git a/x/distribution/client/testutil/withdraw_all_suite.go b/tests/e2e/distribution/withdraw_all_suite.go similarity index 99% rename from x/distribution/client/testutil/withdraw_all_suite.go rename to tests/e2e/distribution/withdraw_all_suite.go index 8f1c7fbd2f0c..b32ab47669d5 100644 --- a/x/distribution/client/testutil/withdraw_all_suite.go +++ b/tests/e2e/distribution/withdraw_all_suite.go @@ -1,4 +1,4 @@ -package testutil +package distribution import ( "fmt" diff --git a/x/distribution/client/cli/suite_test.go b/x/distribution/client/cli/suite_test.go new file mode 100644 index 000000000000..48fff7a96925 --- /dev/null +++ b/x/distribution/client/cli/suite_test.go @@ -0,0 +1,710 @@ +package cli_test + +import ( + "bytes" + "context" + "fmt" + "io" + "strings" + "testing" + + "github.com/cosmos/gogoproto/proto" + "github.com/stretchr/testify/suite" + abci "github.com/tendermint/tendermint/abci/types" + tmbytes "github.com/tendermint/tendermint/libs/bytes" + tmcli "github.com/tendermint/tendermint/libs/cli" + rpcclient "github.com/tendermint/tendermint/rpc/client" + rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" + coretypes "github.com/tendermint/tendermint/rpc/core/types" + tmtypes "github.com/tendermint/tendermint/types" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/crypto/keyring" + "github.com/cosmos/cosmos-sdk/testutil" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" + "github.com/cosmos/cosmos-sdk/testutil/network" + sdk "github.com/cosmos/cosmos-sdk/types" + 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" +) + +var _ client.TendermintRPC = (*mockTendermintRPC)(nil) + +type mockTendermintRPC struct { + rpcclientmock.Client + + responseQuery abci.ResponseQuery +} + +func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { + return mockTendermintRPC{responseQuery: respQuery} +} + +func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { + return &coretypes.ResultBroadcastTx{Code: 0}, nil +} + +func (m mockTendermintRPC) ABCIQueryWithOptions( + _ context.Context, + _ string, _ tmbytes.HexBytes, + _ rpcclient.ABCIQueryOptions, +) (*coretypes.ResultABCIQuery, error) { + return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil +} + +type CLITestSuite struct { + suite.Suite + + kr keyring.Keyring + encCfg testutilmod.TestEncodingConfig + baseCtx client.Context + clientCtx client.Context +} + +func TestCLITestSuite(t *testing.T) { + suite.Run(t, new(CLITestSuite)) +} + +func (s *CLITestSuite) SetupSuite() { + s.encCfg = testutilmod.MakeTestEncodingConfig(gov.AppModuleBasic{}, bank.AppModuleBasic{}) + s.kr = keyring.NewInMemory(s.encCfg.Codec) + s.baseCtx = client.Context{}. + WithKeyring(s.kr). + WithTxConfig(s.encCfg.TxConfig). + WithCodec(s.encCfg.Codec). + WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithAccountRetriever(client.MockAccountRetriever{}). + WithOutput(io.Discard). + WithChainID("test-chain") + + var outBuf bytes.Buffer + ctxGen := func() client.Context { + bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) + c := newMockTendermintRPC(abci.ResponseQuery{ + Value: bz, + }) + return s.baseCtx.WithClient(c) + } + s.clientCtx = ctxGen().WithOutput(&outBuf) + + cfg, err := network.DefaultConfigWithAppConfig(distrtestutil.AppConfig) + s.Require().NoError(err) + + genesisState := cfg.GenesisState + var mintData minttypes.GenesisState + s.Require().NoError(cfg.Codec.UnmarshalJSON(genesisState[minttypes.ModuleName], &mintData)) + + inflation := sdk.MustNewDecFromStr("1.0") + mintData.Minter.Inflation = inflation + mintData.Params.InflationMin = inflation + mintData.Params.InflationMax = inflation + + mintDataBz, err := cfg.Codec.MarshalJSON(&mintData) + s.Require().NoError(err) + genesisState[minttypes.ModuleName] = mintDataBz + cfg.GenesisState = genesisState +} + +func (s *CLITestSuite) TestGetCmdQueryParams() { + testCases := []struct { + name string + args []string + expectedOutput string + }{ + { + "json output", + []string{fmt.Sprintf("--%s=json", tmcli.OutputFlag)}, + `{"community_tax":"0","base_proposer_reward":"0","bonus_proposer_reward":"0","withdraw_addr_enabled":false}`, + }, + { + "text output", + []string{fmt.Sprintf("--%s=text", tmcli.OutputFlag)}, + `base_proposer_reward: "0" +bonus_proposer_reward: "0" +community_tax: "0" +withdraw_addr_enabled: false`, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.GetCmdQueryParams() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + s.Require().NoError(err) + s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) + }) + } +} + +func (s *CLITestSuite) TestGetCmdQueryValidatorDistributionInfo() { + addr := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + val := sdk.ValAddress(addr[0].Address.String()) + + testCases := []struct { + name string + args []string + expErr bool + }{ + { + "invalid val address", + []string{"invalid address", fmt.Sprintf("--%s=json", tmcli.OutputFlag)}, + true, + }, + { + "json output", + []string{val.String(), fmt.Sprintf("--%s=json", tmcli.OutputFlag)}, + false, + }, + { + "text output", + []string{val.String(), fmt.Sprintf("--%s=text", tmcli.OutputFlag)}, + false, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.GetCmdQueryValidatorDistributionInfo() + + _, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expErr { + s.Require().Error(err) + } else { + s.Require().NoError(err) + } + }) + } +} + +func (s *CLITestSuite) TestGetCmdQueryValidatorOutstandingRewards() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + + testCases := []struct { + name string + args []string + expectErr bool + expectedOutput string + }{ + { + "invalid validator address", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + "foo", + }, + true, + "", + }, + { + "json output", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + }, + false, + `{"rewards":[]}`, + }, + { + "text output", + []string{ + fmt.Sprintf("--%s=text", tmcli.OutputFlag), + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), + }, + false, + `rewards: []`, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.GetCmdQueryValidatorOutstandingRewards() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErr { + s.Require().Error(err) + } else { + s.Require().NoError(err) + s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) + } + }) + } +} + +func (s *CLITestSuite) TestGetCmdQueryValidatorCommission() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + + testCases := []struct { + name string + args []string + expectErr bool + expectedOutput string + }{ + { + "invalid validator address", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + "foo", + }, + true, + "", + }, + { + "json output", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + }, + false, + `{"commission":[]}`, + }, + { + "text output", + []string{ + fmt.Sprintf("--%s=text", tmcli.OutputFlag), + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), + }, + false, + `commission: []`, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.GetCmdQueryValidatorCommission() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErr { + s.Require().Error(err) + } else { + s.Require().NoError(err) + s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) + } + }) + } +} + +func (s *CLITestSuite) TestGetCmdQueryValidatorSlashes() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + + testCases := []struct { + name string + args []string + expectErr bool + expectedOutput string + }{ + { + "invalid validator address", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + "foo", "1", "3", + }, + true, + "", + }, + { + "invalid start height", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), "-1", "3", + }, + true, + "", + }, + { + "invalid end height", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), "1", "-3", + }, + true, + "", + }, + { + "json output", + []string{ + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), "1", "3", + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + }, + false, + "{\"slashes\":[],\"pagination\":null}", + }, + { + "text output", + []string{ + fmt.Sprintf("--%s=text", tmcli.OutputFlag), + fmt.Sprintf("--%s=3", flags.FlagHeight), + sdk.ValAddress(val[0].Address).String(), "1", "3", + }, + false, + "pagination: null\nslashes: []", + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.GetCmdQueryValidatorSlashes() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErr { + s.Require().Error(err) + } else { + s.Require().NoError(err) + s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) + } + }) + } +} + +func (s *CLITestSuite) TestGetCmdQueryDelegatorRewards() { + val := testutil.CreateKeyringAccounts(s.T(), s.kr, 1) + addr := val[0].Address + valAddr := sdk.ValAddress(addr) + + testCases := []struct { + name string + args []string + expectErr bool + expectedOutput string + }{ + { + "invalid delegator address", + []string{ + fmt.Sprintf("--%s=5", flags.FlagHeight), + "foo", valAddr.String(), + }, + true, + "", + }, + { + "invalid validator address", + []string{ + fmt.Sprintf("--%s=5", flags.FlagHeight), + addr.String(), "foo", + }, + true, + "", + }, + { + "json output", + []string{ + fmt.Sprintf("--%s=5", flags.FlagHeight), + addr.String(), + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + }, + false, + `{"rewards":[],"total":[]}`, + }, + { + "json output (specific validator)", + []string{ + fmt.Sprintf("--%s=5", flags.FlagHeight), + addr.String(), valAddr.String(), + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + }, + false, + `{"rewards":[]}`, + }, + { + "text output", + []string{ + fmt.Sprintf("--%s=text", tmcli.OutputFlag), + fmt.Sprintf("--%s=5", flags.FlagHeight), + addr.String(), + }, + false, + `rewards: [] +total: []`, + }, + { + "text output (specific validator)", + []string{ + fmt.Sprintf("--%s=text", tmcli.OutputFlag), + fmt.Sprintf("--%s=5", flags.FlagHeight), + addr.String(), valAddr.String(), + }, + false, + `rewards: []`, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.GetCmdQueryDelegatorRewards() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + if tc.expectErr { + s.Require().Error(err) + } else { + s.Require().NoError(err) + s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) + } + }) + } +} + +func (s *CLITestSuite) TestGetCmdQueryCommunityPool() { + testCases := []struct { + name string + args []string + expectedOutput string + }{ + { + "json output", + []string{fmt.Sprintf("--%s=3", flags.FlagHeight), fmt.Sprintf("--%s=json", tmcli.OutputFlag)}, + `{"pool":[]}`, + }, + { + "text output", + []string{fmt.Sprintf("--%s=text", tmcli.OutputFlag), fmt.Sprintf("--%s=3", flags.FlagHeight)}, + `pool: []`, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.GetCmdQueryCommunityPool() + + out, err := clitestutil.ExecTestCLICmd(s.clientCtx, cmd, tc.args) + s.Require().NoError(err) + s.Require().Equal(tc.expectedOutput, strings.TrimSpace(out.String())) + }) + } +} + +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", sdk.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", sdk.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", sdk.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", sdk.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", sdk.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", sdk.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", sdk.NewInt(10))).String()), + }, + false, &sdk.TxResponse{}, + }, + } + + for _, tc := range testCases { + tc := tc + + s.Run(tc.name, func() { + cmd := cli.NewSetWithdrawAddrCmd() + + 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", sdk.NewInt(10))).String()), + }, + true, nil, + }, + { + "valid transaction", + []string{ + sdk.NewCoins(sdk.NewCoin("stake", sdk.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", sdk.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()) + } + }) + } +} From 3034a9d54a628b390e3cd947bf81526e73eb941b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Federico=20Kunze=20K=C3=BCllmer?= <31522760+fedekunze@users.noreply.github.com> Date: Thu, 3 Nov 2022 19:22:13 +0100 Subject: [PATCH 2/7] fix(bank): fix unhandled error for vesting (#13690) ## Description Closes: #13691 --- ### Author Checklist *All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.* I have... - [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] added `!` to the type prefix if API or client breaking change - [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#pr-targeting)) - [ ] provided a link to the relevant issue or specification - [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/main/docs/building-modules) - [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/main/CONTRIBUTING.md#testing) - [ ] added a changelog entry to `CHANGELOG.md` - [ ] included comments for [documenting Go code](https://blog.golang.org/godoc) - [ ] updated the relevant documentation or specification - [ ] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed ### Reviewers Checklist *All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.* I have... - [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] confirmed `!` in the type prefix if API or client breaking change - [ ] confirmed all author checklist items have been addressed - [ ] reviewed state machine logic - [ ] reviewed API design and naming - [ ] reviewed documentation is accurate - [ ] reviewed tests and test coverage - [ ] manually tested (if applicable) --- CHANGELOG.md | 1 + types/coin.go | 2 +- x/bank/keeper/keeper_test.go | 19 +++++++++++++++++++ x/bank/keeper/send.go | 17 ++++++++++++----- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9931e9ea6e71..88e832e294af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -162,6 +162,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Bug Fixes +* (bank) [#13691](https://github.com/cosmos/cosmos-sdk/issues/13691) Fix unhandled error for vesting account transfers, when total vesting amount exceeds total balance. * [#13553](https://github.com/cosmos/cosmos-sdk/pull/13553) Ensure all parameter validation for decimal types handles nil decimal values. * [#13145](https://github.com/cosmos/cosmos-sdk/pull/13145) Fix panic when calling `String()` to a Record struct type. * [#13116](https://github.com/cosmos/cosmos-sdk/pull/13116) Fix a dead-lock in the `Group-TotalWeight` `x/group` invariant. diff --git a/types/coin.go b/types/coin.go index cf86af8c039a..8e0ee7f86b75 100644 --- a/types/coin.go +++ b/types/coin.go @@ -134,7 +134,7 @@ func (coin Coin) SafeSub(coinB Coin) (Coin, error) { res := Coin{coin.Denom, coin.Amount.Sub(coinB.Amount)} if res.IsNegative() { - return Coin{}, fmt.Errorf("negative coin amount") + return Coin{}, fmt.Errorf("negative coin amount: %s", res) } return res, nil diff --git a/x/bank/keeper/keeper_test.go b/x/bank/keeper/keeper_test.go index 14fa86537afe..45746bd39ecb 100644 --- a/x/bank/keeper/keeper_test.go +++ b/x/bank/keeper/keeper_test.go @@ -567,6 +567,25 @@ func (suite *KeeperTestSuite) TestSendCoins() { require.Equal(newBarCoin(25), coins[0], "expected only bar coins in the account balance, got: %v", coins) } +func (suite *KeeperTestSuite) TestSendCoins_Invalid_SendLockedCoins() { + balances := sdk.NewCoins(newFooCoin(50)) + + now := tmtime.Now() + endTime := now.Add(24 * time.Hour) + + origCoins := sdk.NewCoins(sdk.NewInt64Coin("stake", 100)) + sendCoins := sdk.NewCoins(sdk.NewInt64Coin("stake", 50)) + + acc0 := authtypes.NewBaseAccountWithAddress(accAddrs[0]) + vacc := vesting.NewContinuousVestingAccount(acc0, origCoins, now.Unix(), endTime.Unix()) + + suite.mockFundAccount(accAddrs[1]) + suite.Require().NoError(banktestutil.FundAccount(suite.bankKeeper, suite.ctx, accAddrs[1], balances)) + + suite.authKeeper.EXPECT().GetAccount(suite.ctx, accAddrs[0]).Return(vacc) + suite.Require().Error(suite.bankKeeper.SendCoins(suite.ctx, accAddrs[0], accAddrs[1], sendCoins)) +} + func (suite *KeeperTestSuite) TestValidateBalance() { ctx := suite.ctx require := suite.Require() diff --git a/x/bank/keeper/send.go b/x/bank/keeper/send.go index afaf44b4d15a..dad56a3f8827 100644 --- a/x/bank/keeper/send.go +++ b/x/bank/keeper/send.go @@ -233,17 +233,24 @@ func (k BaseSendKeeper) subUnlockedCoins(ctx sdk.Context, addr sdk.AccAddress, a for _, coin := range amt { balance := k.GetBalance(ctx, addr, coin.Denom) locked := sdk.NewCoin(coin.Denom, lockedCoins.AmountOf(coin.Denom)) - spendable := balance.Sub(locked) - _, hasNeg := sdk.Coins{spendable}.SafeSub(coin) + spendable, hasNeg := sdk.Coins{balance}.SafeSub(locked) if hasNeg { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, "%s is smaller than %s", spendable, coin) + return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, + "locked amount exceeds account balance funds: %s > %s", locked, balance) + } + + if _, hasNeg := spendable.SafeSub(coin); hasNeg { + return sdkerrors.Wrapf( + sdkerrors.ErrInsufficientFunds, + "spendable balance %s is smaller than %s", + spendable, coin, + ) } newBalance := balance.Sub(coin) - err := k.setBalance(ctx, addr, newBalance) - if err != nil { + if err := k.setBalance(ctx, addr, newBalance); err != nil { return err } } From 20448048a489c4dee0d6ba0cb2f7b2b04331a69e Mon Sep 17 00:00:00 2001 From: Marko Date: Thu, 3 Nov 2022 22:14:59 +0100 Subject: [PATCH 3/7] chore: use gateway fork (#13754) * use gateway fork * remove everywhere and go mod tidy all * updates Co-authored-by: Julien Robert --- go.mod | 3 +-- go.sum | 12 +++--------- server/api/server.go | 2 +- simapp/go.mod | 3 +-- simapp/go.sum | 12 +++--------- tests/go.mod | 3 +-- tests/go.sum | 12 +++--------- 7 files changed, 13 insertions(+), 34 deletions(-) diff --git a/go.mod b/go.mod index 2ac373fd3560..e78bc10d7b76 100644 --- a/go.mod +++ b/go.mod @@ -21,10 +21,10 @@ require ( github.com/cosmos/cosmos-proto v1.0.0-alpha8 github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a github.com/cosmos/go-bip39 v1.0.0 + github.com/cosmos/gogogateway v1.2.0 github.com/cosmos/gogoproto v1.4.2 github.com/cosmos/iavl v0.19.4 github.com/cosmos/ledger-cosmos-go v0.11.1 - github.com/gogo/gateway v1.1.0 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.2 github.com/gorilla/handlers v1.5.1 @@ -167,7 +167,6 @@ replace ( // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 - github.com/gogo/gateway => github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d ) retract v0.43.0 diff --git a/go.sum b/go.sum index 84d14de0dc16..57b7871e6866 100644 --- a/go.sum +++ b/go.sum @@ -192,7 +192,8 @@ github.com/cosmos/cosmos-sdk/db v1.0.0-beta.1.0.20220726092710-f848e4300a8a/go.m 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= -github.com/cosmos/gogoproto v1.4.0/go.mod h1:PmDilxjma3Cp50k5beXFV3ATB4O3/Sys4WI6Fo9kMAo= +github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= +github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2 h1:UeGRcmFW41l0G0MiefWhkPEVEwvu78SZsHBvI78dAYw= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= @@ -622,8 +623,6 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d h1:ojbVlSwN0ZgOpE8jOnFQ6iNm247PwFTykE5qe9xITqw= -github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d/go.mod h1:8W5G7hGZRVlsdVjoP4lh/nKiL23VhQFJZrImu0uoBDY= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -823,7 +822,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266 h1:O9XLFXGkVswDFmH9LaYpqu+r/AAFWqr0DL6V00KEVFg= github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= @@ -865,7 +863,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= @@ -907,7 +904,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -958,7 +954,6 @@ golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1076,7 +1071,6 @@ golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1175,7 +1169,6 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1351,6 +1344,7 @@ google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ5 google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= diff --git a/server/api/server.go b/server/api/server.go index 10c3917387f3..5b2c6fb37293 100644 --- a/server/api/server.go +++ b/server/api/server.go @@ -8,7 +8,7 @@ import ( "sync" "time" - "github.com/gogo/gateway" + gateway "github.com/cosmos/gogogateway" "github.com/gorilla/handlers" "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" diff --git a/simapp/go.mod b/simapp/go.mod index 2c56a30b3f7f..596c7c422f03 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -45,6 +45,7 @@ require ( github.com/cosmos/btcutil v1.0.4 // indirect github.com/cosmos/cosmos-proto v1.0.0-alpha8 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/gogoproto v1.4.2 // indirect github.com/cosmos/gorocksdb v1.2.0 // indirect github.com/cosmos/iavl v0.19.4 // indirect @@ -66,7 +67,6 @@ require ( github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/gogo/gateway v1.1.0 // indirect github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.0.0 // indirect @@ -161,5 +161,4 @@ replace ( // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 - github.com/gogo/gateway => github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d ) diff --git a/simapp/go.sum b/simapp/go.sum index f2ca7f26db38..c762f6f66b5a 100644 --- a/simapp/go.sum +++ b/simapp/go.sum @@ -190,7 +190,8 @@ github.com/cosmos/cosmos-proto v1.0.0-alpha8/go.mod h1:6/p+Bc4O8JKeZqe0VqUGTX31e 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= -github.com/cosmos/gogoproto v1.4.0/go.mod h1:PmDilxjma3Cp50k5beXFV3ATB4O3/Sys4WI6Fo9kMAo= +github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= +github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2 h1:UeGRcmFW41l0G0MiefWhkPEVEwvu78SZsHBvI78dAYw= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= @@ -613,8 +614,6 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d h1:ojbVlSwN0ZgOpE8jOnFQ6iNm247PwFTykE5qe9xITqw= -github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d/go.mod h1:8W5G7hGZRVlsdVjoP4lh/nKiL23VhQFJZrImu0uoBDY= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= @@ -811,7 +810,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266 h1:O9XLFXGkVswDFmH9LaYpqu+r/AAFWqr0DL6V00KEVFg= github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= @@ -853,7 +851,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= @@ -895,7 +892,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -946,7 +942,6 @@ golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1063,7 +1058,6 @@ golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1161,7 +1155,6 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1337,6 +1330,7 @@ google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ5 google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= diff --git a/tests/go.mod b/tests/go.mod index f7516538e548..a348f80ac3f9 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -48,6 +48,7 @@ require ( github.com/cosmos/btcutil v1.0.4 // indirect github.com/cosmos/cosmos-proto v1.0.0-alpha8 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/gorocksdb v1.2.0 // indirect github.com/cosmos/iavl v0.19.4 // indirect github.com/cosmos/ledger-cosmos-go v0.11.1 // indirect @@ -68,7 +69,6 @@ require ( github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/gogo/gateway v1.1.0 // indirect github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/glog v1.0.0 // indirect @@ -168,5 +168,4 @@ replace ( // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 - github.com/gogo/gateway => github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d ) diff --git a/tests/go.sum b/tests/go.sum index 2fd50c8bcf69..2f877d6d4496 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -190,7 +190,8 @@ github.com/cosmos/cosmos-proto v1.0.0-alpha8/go.mod h1:6/p+Bc4O8JKeZqe0VqUGTX31e 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= -github.com/cosmos/gogoproto v1.4.0/go.mod h1:PmDilxjma3Cp50k5beXFV3ATB4O3/Sys4WI6Fo9kMAo= +github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= +github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2 h1:UeGRcmFW41l0G0MiefWhkPEVEwvu78SZsHBvI78dAYw= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= @@ -616,8 +617,6 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d h1:ojbVlSwN0ZgOpE8jOnFQ6iNm247PwFTykE5qe9xITqw= -github.com/notional-labs/gateway v1.1.1-0.20220417180718-8e60e17a098d/go.mod h1:8W5G7hGZRVlsdVjoP4lh/nKiL23VhQFJZrImu0uoBDY= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= @@ -814,7 +813,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/zondax/hid v0.9.0/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266 h1:O9XLFXGkVswDFmH9LaYpqu+r/AAFWqr0DL6V00KEVFg= github.com/zondax/hid v0.9.1-0.20220302062450-5552068d2266/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= @@ -856,7 +854,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= @@ -898,7 +895,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -949,7 +945,6 @@ golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= @@ -1066,7 +1061,6 @@ golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1164,7 +1158,6 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1340,6 +1333,7 @@ google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ5 google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= From 634783f6f3eb54c4b594e9706f0666b1c5be33ac Mon Sep 17 00:00:00 2001 From: Marko Date: Thu, 3 Nov 2022 22:30:14 +0100 Subject: [PATCH 4/7] docs: staking param docs fix #13755 --- x/staking/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/staking/README.md b/x/staking/README.md index 02e6cc2df7b8..0e4b87a09ad7 100644 --- a/x/staking/README.md +++ b/x/staking/README.md @@ -83,7 +83,7 @@ UnbondingID stores the ID of the latest unbonding operation. It enables to creat * UnbondingID: `0x37 -> uint64` -## Parameters +## Params The staking module stores its params in state with the prefix of `0x51`, it can be updated with governance or the address with authority. From 779c0ac47a0d87067d007b51077ccd2207467796 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Thu, 3 Nov 2022 22:50:21 +0100 Subject: [PATCH 5/7] chore: add `TestSendCoins_Invalid_SendLockedCoins` to tests/integration (#13752) --- tests/integration/bank/keeper/keeper_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/integration/bank/keeper/keeper_test.go b/tests/integration/bank/keeper/keeper_test.go index 4d93f9d765b4..6f2b391fef3d 100644 --- a/tests/integration/bank/keeper/keeper_test.go +++ b/tests/integration/bank/keeper/keeper_test.go @@ -523,6 +523,26 @@ func (suite *IntegrationTestSuite) TestValidateBalance() { suite.Require().Error(suite.bankKeeper.ValidateBalance(ctx, addr2)) } +func (suite *IntegrationTestSuite) TestSendCoins_Invalid_SendLockedCoins() { + ctx := suite.ctx + balances := sdk.NewCoins(newFooCoin(50)) + addr := sdk.AccAddress([]byte("addr1_______________")) + addr2 := sdk.AccAddress([]byte("addr2_______________")) + + now := tmtime.Now() + endTime := now.Add(24 * time.Hour) + + origCoins := sdk.NewCoins(sdk.NewInt64Coin("stake", 100)) + sendCoins := sdk.NewCoins(sdk.NewInt64Coin("stake", 50)) + + acc0 := authtypes.NewBaseAccountWithAddress(addr) + vacc := vesting.NewContinuousVestingAccount(acc0, origCoins, now.Unix(), endTime.Unix()) + suite.accountKeeper.SetAccount(ctx, vacc) + + suite.Require().NoError(testutil.FundAccount(suite.bankKeeper, suite.ctx, addr2, balances)) + suite.Require().Error(suite.bankKeeper.SendCoins(ctx, addr, addr2, sendCoins)) +} + func (suite *IntegrationTestSuite) TestSendEnabled() { ctx := suite.ctx enabled := true From 08be7ee74bf1c4fa6e0418b79bbfd1b47c7e3517 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Thu, 3 Nov 2022 23:40:52 +0100 Subject: [PATCH 6/7] refactor: extract `MockTendermintRPC` to `testutil/cli` --- testutil/cli/tm_mocks.go | 41 +++++++ x/auth/client/cli/suite_test.go | 32 +---- x/authz/client/cli/tx_test.go | 33 +---- x/bank/client/cli/query_test.go | 23 ++-- x/bank/client/cli/suite_test.go | 33 +---- x/crisis/client/cli/tx_test.go | 15 +-- x/distribution/client/cli/suite_test.go | 33 +---- x/evidence/client/cli/tx_test.go | 41 +------ x/feegrant/client/cli/tx_test.go | 33 +---- x/genutil/client/cli/gentx_test.go | 33 +---- x/gov/client/cli/tx_test.go | 33 +---- x/group/client/cli/tx_test.go | 152 ++++++++++-------------- x/mint/client/cli/query_test.go | 31 +---- x/nft/client/cli/tx_test.go | 32 +---- x/slashing/client/cli/query_test.go | 33 +---- x/staking/client/cli/tx_test.go | 33 +---- x/upgrade/client/cli/tx_test.go | 29 +---- 17 files changed, 149 insertions(+), 511 deletions(-) create mode 100644 testutil/cli/tm_mocks.go diff --git a/testutil/cli/tm_mocks.go b/testutil/cli/tm_mocks.go new file mode 100644 index 000000000000..bfbcaca1196e --- /dev/null +++ b/testutil/cli/tm_mocks.go @@ -0,0 +1,41 @@ +package cli + +import ( + "context" + + abci "github.com/tendermint/tendermint/abci/types" + tmbytes "github.com/tendermint/tendermint/libs/bytes" + rpcclient "github.com/tendermint/tendermint/rpc/client" + rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" + coretypes "github.com/tendermint/tendermint/rpc/core/types" + tmtypes "github.com/tendermint/tendermint/types" + + "github.com/cosmos/cosmos-sdk/client" +) + +var _ client.TendermintRPC = (*MockTendermintRPC)(nil) + +type MockTendermintRPC struct { + rpcclientmock.Client + + responseQuery abci.ResponseQuery +} + +// NewMockTendermintRPC returns a mock TendermintRPC implementation. +// It is used for CLI testing. +func NewMockTendermintRPC(respQuery abci.ResponseQuery) MockTendermintRPC { + return MockTendermintRPC{responseQuery: respQuery} +} + +func (MockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { + return &coretypes.ResultBroadcastTx{Code: 0}, nil +} + +func (m MockTendermintRPC) ABCIQueryWithOptions( + _ context.Context, + _ string, + _ tmbytes.HexBytes, + _ rpcclient.ABCIQueryOptions, +) (*coretypes.ResultABCIQuery, error) { + return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil +} diff --git a/x/auth/client/cli/suite_test.go b/x/auth/client/cli/suite_test.go index 74358446143c..3da473db2cb5 100644 --- a/x/auth/client/cli/suite_test.go +++ b/x/auth/client/cli/suite_test.go @@ -11,12 +11,8 @@ import ( "cosmossdk.io/math" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" tmcli "github.com/tendermint/tendermint/libs/cli" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -42,30 +38,6 @@ import ( govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -88,7 +60,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -96,7 +68,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/authz/client/cli/tx_test.go b/x/authz/client/cli/tx_test.go index a0bf682f48ff..91903bdcf41f 100644 --- a/x/authz/client/cli/tx_test.go +++ b/x/authz/client/cli/tx_test.go @@ -2,7 +2,6 @@ package cli_test import ( "bytes" - "context" "fmt" "io" "testing" @@ -11,11 +10,7 @@ import ( "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -41,30 +36,6 @@ var ( typeMsgSubmitProposal = sdk.MsgTypeURL(&govv1.MsgSubmitProposal{}) ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -87,7 +58,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -95,7 +66,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/bank/client/cli/query_test.go b/x/bank/client/cli/query_test.go index dfb6f0d784d9..243513c60611 100644 --- a/x/bank/client/cli/query_test.go +++ b/x/bank/client/cli/query_test.go @@ -13,6 +13,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" "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -35,7 +36,7 @@ func (s *CLITestSuite) TestGetBalancesCmd() { "valid query", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&types.QueryAllBalancesResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -53,7 +54,7 @@ func (s *CLITestSuite) TestGetBalancesCmd() { bz, _ := s.encCfg.Codec.Marshal(&types.QueryBalanceResponse{ Balance: &sdk.Coin{}, }) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -80,7 +81,7 @@ func (s *CLITestSuite) TestGetBalancesCmd() { { "invalid denom", func() client.Context { - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Code: 1, }) return s.baseCtx.WithClient(c) @@ -134,7 +135,7 @@ func (s *CLITestSuite) TestGetCmdDenomsMetadata() { "valid query", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&types.QueryDenomsMetadataResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -149,7 +150,7 @@ func (s *CLITestSuite) TestGetCmdDenomsMetadata() { "valid query with denom", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&types.QueryDenomMetadataResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -164,7 +165,7 @@ func (s *CLITestSuite) TestGetCmdDenomsMetadata() { { "invalid query with denom", func() client.Context { - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Code: 1, }) return s.baseCtx.WithClient(c) @@ -217,7 +218,7 @@ func (s *CLITestSuite) TestGetCmdQueryTotalSupply() { "valid query", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&types.QueryTotalSupplyResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -234,7 +235,7 @@ func (s *CLITestSuite) TestGetCmdQueryTotalSupply() { bz, _ := s.encCfg.Codec.Marshal(&types.QuerySupplyOfResponse{ Amount: sdk.Coin{}, }) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -249,7 +250,7 @@ func (s *CLITestSuite) TestGetCmdQueryTotalSupply() { { "invalid query with denom", func() client.Context { - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Code: 1, }) return s.baseCtx.WithClient(c) @@ -305,7 +306,7 @@ func (s *CLITestSuite) TestGetCmdQuerySendEnabled() { bz, _ := s.encCfg.Codec.Marshal(&types.QuerySendEnabledResponse{ SendEnabled: []*types.SendEnabled{}, }) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -322,7 +323,7 @@ func (s *CLITestSuite) TestGetCmdQuerySendEnabled() { bz, _ := s.encCfg.Codec.Marshal(&types.QuerySendEnabledResponse{ SendEnabled: []*types.SendEnabled{}, }) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/bank/client/cli/suite_test.go b/x/bank/client/cli/suite_test.go index 27b01e0d0ec3..9baefdc8ffdc 100644 --- a/x/bank/client/cli/suite_test.go +++ b/x/bank/client/cli/suite_test.go @@ -1,48 +1,19 @@ package cli_test import ( - "context" "io" "testing" "github.com/stretchr/testify/suite" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/crypto/keyring" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" "github.com/cosmos/cosmos-sdk/x/bank" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ bytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -62,7 +33,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard) } diff --git a/x/crisis/client/cli/tx_test.go b/x/crisis/client/cli/tx_test.go index c8b23bf40278..d8b92433fd74 100644 --- a/x/crisis/client/cli/tx_test.go +++ b/x/crisis/client/cli/tx_test.go @@ -6,10 +6,9 @@ import ( "io" "testing" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" "github.com/stretchr/testify/require" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -22,16 +21,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/crisis/client/cli" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client -} - -func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{}, nil -} - func TestNewMsgVerifyInvariantTxCmd(t *testing.T) { encCfg := testutilmod.MakeTestEncodingConfig(crisis.AppModuleBasic{}) kr := keyring.NewInMemory(encCfg.Codec) @@ -39,7 +28,7 @@ func TestNewMsgVerifyInvariantTxCmd(t *testing.T) { WithKeyring(kr). WithTxConfig(encCfg.TxConfig). WithCodec(encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") diff --git a/x/distribution/client/cli/suite_test.go b/x/distribution/client/cli/suite_test.go index 48fff7a96925..6aa3f5181ed9 100644 --- a/x/distribution/client/cli/suite_test.go +++ b/x/distribution/client/cli/suite_test.go @@ -2,7 +2,6 @@ package cli_test import ( "bytes" - "context" "fmt" "io" "strings" @@ -11,12 +10,8 @@ import ( "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" tmcli "github.com/tendermint/tendermint/libs/cli" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -34,30 +29,6 @@ import ( minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -78,7 +49,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -86,7 +57,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/evidence/client/cli/tx_test.go b/x/evidence/client/cli/tx_test.go index a7d626bf0e24..bbb162564c60 100644 --- a/x/evidence/client/cli/tx_test.go +++ b/x/evidence/client/cli/tx_test.go @@ -10,17 +10,12 @@ import ( "github.com/stretchr/testify/require" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" - - "github.com/cosmos/cosmos-sdk/client/flags" - svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" "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" sdk "github.com/cosmos/cosmos-sdk/types" testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" @@ -28,30 +23,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/evidence/client/cli" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(_ context.Context, _ tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - func TestGetQueryCmd(t *testing.T) { cmd := cli.GetQueryCmd() cmd.SetOut(io.Discard) @@ -63,7 +34,7 @@ func TestGetQueryCmd(t *testing.T) { WithKeyring(kr). WithTxConfig(encCfg.TxConfig). WithCodec(encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -79,7 +50,7 @@ func TestGetQueryCmd(t *testing.T) { []string{"DF0C23E8634E480F84B9D5674A7CDC9816466DEC28A3358F73260F68D28D7660"}, func() client.Context { bz, _ := encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return baseCtx.WithClient(c) @@ -92,7 +63,7 @@ func TestGetQueryCmd(t *testing.T) { []string{}, func() client.Context { bz, _ := encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return baseCtx.WithClient(c) @@ -107,7 +78,7 @@ func TestGetQueryCmd(t *testing.T) { }, func() client.Context { bz, _ := encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return baseCtx.WithClient(c) diff --git a/x/feegrant/client/cli/tx_test.go b/x/feegrant/client/cli/tx_test.go index beaa0a45f362..021d5819edfa 100644 --- a/x/feegrant/client/cli/tx_test.go +++ b/x/feegrant/client/cli/tx_test.go @@ -2,7 +2,6 @@ package cli_test import ( "bytes" - "context" "fmt" "io" "strings" @@ -12,11 +11,7 @@ import ( "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmlibs "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -55,30 +50,6 @@ type CLITestSuite struct { accounts []sdk.AccAddress } -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmlibs.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - -func (m mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - func TestCLITestSuite(t *testing.T) { suite.Run(t, new(CLITestSuite)) } @@ -92,7 +63,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -100,7 +71,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) diff --git a/x/genutil/client/cli/gentx_test.go b/x/genutil/client/cli/gentx_test.go index 2ffde26a8484..915cc450f2d0 100644 --- a/x/genutil/client/cli/gentx_test.go +++ b/x/genutil/client/cli/gentx_test.go @@ -10,16 +10,13 @@ import ( "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "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" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" @@ -29,30 +26,6 @@ import ( stakingcli "github.com/cosmos/cosmos-sdk/x/staking/client/cli" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(_ context.Context, _ tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -73,7 +46,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -81,7 +54,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/gov/client/cli/tx_test.go b/x/gov/client/cli/tx_test.go index 1b881c3762ab..cae55f6a00d5 100644 --- a/x/gov/client/cli/tx_test.go +++ b/x/gov/client/cli/tx_test.go @@ -2,7 +2,6 @@ package cli_test import ( "bytes" - "context" "encoding/base64" "fmt" "io" @@ -11,11 +10,7 @@ import ( "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -33,30 +28,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -77,7 +48,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -85,7 +56,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/group/client/cli/tx_test.go b/x/group/client/cli/tx_test.go index 5c37759f47e3..58106dba2c73 100644 --- a/x/group/client/cli/tx_test.go +++ b/x/group/client/cli/tx_test.go @@ -13,11 +13,7 @@ import ( "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -25,7 +21,7 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/keyring" svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" "github.com/cosmos/cosmos-sdk/testutil" - "github.com/cosmos/cosmos-sdk/testutil/cli" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" sdk "github.com/cosmos/cosmos-sdk/types" testutilmod "github.com/cosmos/cosmos-sdk/types/module/testutil" "github.com/cosmos/cosmos-sdk/x/group" @@ -37,30 +33,6 @@ const validMetadata = "metadata" var tooLongMetadata = strings.Repeat("A", 256) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(_ context.Context, _ tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -83,7 +55,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -100,7 +72,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -115,7 +87,7 @@ func (s *CLITestSuite) SetupSuite() { s.Require().NoError(err) account := sdk.AccAddress(pk.Address()) - _, err = cli.MsgSendExec( + _, err = clitestutil.MsgSendExec( clientCtx, val.Address, account, @@ -138,7 +110,7 @@ func (s *CLITestSuite) SetupSuite() { ] }`, val.Address.String(), memberWeight, validMetadata) validMembersFile := testutil.WriteToNewTempFile(s.T(), validMembers) - out, err := cli.ExecTestCLICmd(clientCtx, groupcli.MsgCreateGroupCmd(), + out, err := clitestutil.ExecTestCLICmd(clientCtx, groupcli.MsgCreateGroupCmd(), append( []string{ val.Address.String(), @@ -195,7 +167,7 @@ func (s *CLITestSuite) TestTxCreateGroup() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -217,7 +189,7 @@ func (s *CLITestSuite) TestTxCreateGroup() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -240,7 +212,7 @@ func (s *CLITestSuite) TestTxCreateGroup() { "invalid members address", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -262,7 +234,7 @@ func (s *CLITestSuite) TestTxCreateGroup() { "invalid members weight", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -300,7 +272,7 @@ func (s *CLITestSuite) TestTxCreateGroup() { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := cli.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) @@ -322,7 +294,7 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -342,7 +314,7 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { "metadata": "%s" }]}`, accounts[0].Address.String(), validMetadata) validMembersFile := testutil.WriteToNewTempFile(s.T(), validMembers) - out, err := cli.ExecTestCLICmd(clientCtx, groupcli.MsgCreateGroupCmd(), + out, err := clitestutil.ExecTestCLICmd(clientCtx, groupcli.MsgCreateGroupCmd(), append( []string{ accounts[0].Address.String(), @@ -369,7 +341,7 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -391,7 +363,7 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -414,7 +386,7 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { "group id invalid", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -452,7 +424,7 @@ func (s *CLITestSuite) TestTxUpdateGroupAdmin() { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := cli.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) @@ -480,7 +452,7 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -499,7 +471,7 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -519,7 +491,7 @@ func (s *CLITestSuite) TestTxUpdateGroupMetadata() { "group metadata too long", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -593,7 +565,7 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -612,7 +584,7 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -632,7 +604,7 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { "group member metadata too long", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -651,7 +623,7 @@ func (s *CLITestSuite) TestTxUpdateGroupMembers() { "group doesn't exist", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -729,7 +701,7 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -754,7 +726,7 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { "group-policy-as-admin is true", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -779,7 +751,7 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -805,7 +777,7 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { "invalid members address", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -830,7 +802,7 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { "invalid members weight", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -870,7 +842,7 @@ func (s *CLITestSuite) TestTxCreateGroupWithPolicy() { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := cli.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) @@ -910,7 +882,7 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -933,7 +905,7 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { "correct data with percentage decision policy", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -956,7 +928,7 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -980,7 +952,7 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { "wrong admin", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1003,7 +975,7 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { "invalid percentage decision policy with negative value", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1026,7 +998,7 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { "invalid percentage decision policy with value greater than 1", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1065,7 +1037,7 @@ func (s *CLITestSuite) TestTxCreateGroupPolicy() { s.Require().Contains(fmt.Sprint(cmd), tc.expCmdOutput) } - out, err := cli.ExecTestCLICmd(clientCtx, cmd, tc.args) + out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { s.Require().Error(err) s.Require().Contains(out.String(), tc.expectErrMsg) @@ -1099,7 +1071,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1118,7 +1090,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1138,7 +1110,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { "wrong admin", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1157,7 +1129,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyAdmin() { "wrong group policy", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1222,7 +1194,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1241,7 +1213,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { "correct data with percentage decision policy", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1260,7 +1232,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1280,7 +1252,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { "wrong admin", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1299,7 +1271,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { "wrong group policy", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1318,7 +1290,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { "invalid percentage decision policy with negative value", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1337,7 +1309,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyDecisionPolicy() { "invalid percentage decision policy with value greater than 1", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1396,7 +1368,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1415,7 +1387,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1435,7 +1407,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { "long metadata", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1454,7 +1426,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { "wrong admin", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1473,7 +1445,7 @@ func (s *CLITestSuite) TestTxUpdateGroupPolicyMetadata() { "wrong group policy", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1538,7 +1510,7 @@ func (s *CLITestSuite) TestTxSubmitProposal() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1555,7 +1527,7 @@ func (s *CLITestSuite) TestTxSubmitProposal() { "with try exec", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1573,7 +1545,7 @@ 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 := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1591,7 +1563,7 @@ func (s *CLITestSuite) TestTxSubmitProposal() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1649,7 +1621,7 @@ func (s *CLITestSuite) TestTxVote() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1669,7 +1641,7 @@ func (s *CLITestSuite) TestTxVote() { "with try exec", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1690,7 +1662,7 @@ func (s *CLITestSuite) TestTxVote() { "with amino-json", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1711,7 +1683,7 @@ func (s *CLITestSuite) TestTxVote() { "metadata too long", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1770,7 +1742,7 @@ func (s *CLITestSuite) TestTxWithdrawProposal() { "correct data", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) @@ -1788,7 +1760,7 @@ func (s *CLITestSuite) TestTxWithdrawProposal() { "wrong admin", func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/mint/client/cli/query_test.go b/x/mint/client/cli/query_test.go index 72e794964999..445aac432907 100644 --- a/x/mint/client/cli/query_test.go +++ b/x/mint/client/cli/query_test.go @@ -8,12 +8,7 @@ import ( "testing" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -27,26 +22,6 @@ import ( tmcli "github.com/tendermint/tendermint/libs/cli" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func (mockTendermintRPC) BroadcastTxSync(_ context.Context, _ tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ bytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - func TestGetCmdQueryParams(t *testing.T) { encCfg := testutilmod.MakeTestEncodingConfig(mint.AppModuleBasic{}) kr := keyring.NewInMemory(encCfg.Codec) @@ -54,7 +29,7 @@ func TestGetCmdQueryParams(t *testing.T) { WithKeyring(kr). WithTxConfig(encCfg.TxConfig). WithCodec(encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -119,7 +94,7 @@ func TestGetCmdQueryInflation(t *testing.T) { WithKeyring(kr). WithTxConfig(encCfg.TxConfig). WithCodec(encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -179,7 +154,7 @@ func TestGetCmdQueryAnnualProvisions(t *testing.T) { WithKeyring(kr). WithTxConfig(encCfg.TxConfig). WithCodec(encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") diff --git a/x/nft/client/cli/tx_test.go b/x/nft/client/cli/tx_test.go index ea0fb41caef5..7ef91278291f 100644 --- a/x/nft/client/cli/tx_test.go +++ b/x/nft/client/cli/tx_test.go @@ -9,11 +9,7 @@ import ( "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -69,30 +65,6 @@ var ( } ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - type CLITestSuite struct { suite.Suite @@ -116,7 +88,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -125,7 +97,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/slashing/client/cli/query_test.go b/x/slashing/client/cli/query_test.go index cbadc7e81cad..6f2bf13c9929 100644 --- a/x/slashing/client/cli/query_test.go +++ b/x/slashing/client/cli/query_test.go @@ -2,19 +2,14 @@ package cli_test import ( "bytes" - "context" "fmt" "io" "testing" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmlibs "github.com/tendermint/tendermint/libs/bytes" tmcli "github.com/tendermint/tendermint/libs/cli" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -40,30 +35,6 @@ type CLITestSuite struct { addr sdk.AccAddress } -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (m mockTendermintRPC) BroadcastTxSync(context.Context, tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{Code: 0}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmlibs.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - func TestCLITestSuite(t *testing.T) { suite.Run(t, new(CLITestSuite)) } @@ -77,7 +48,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -85,7 +56,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) diff --git a/x/staking/client/cli/tx_test.go b/x/staking/client/cli/tx_test.go index cb71d1595c29..0f6564b2b3ca 100644 --- a/x/staking/client/cli/tx_test.go +++ b/x/staking/client/cli/tx_test.go @@ -2,7 +2,6 @@ package cli_test import ( "bytes" - "context" "fmt" "io" "testing" @@ -12,11 +11,7 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -31,30 +26,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking/client/cli" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func newMockTendermintRPC(respQuery abci.ResponseQuery) mockTendermintRPC { - return mockTendermintRPC{responseQuery: respQuery} -} - -func (mockTendermintRPC) BroadcastTxSync(_ context.Context, _ tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ tmbytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - var PKs = simtestutil.CreateTestPubKeys(500) type CLITestSuite struct { @@ -74,7 +45,7 @@ func (s *CLITestSuite) SetupSuite() { WithKeyring(s.kr). WithTxConfig(s.encCfg.TxConfig). WithCodec(s.encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") @@ -82,7 +53,7 @@ func (s *CLITestSuite) SetupSuite() { var outBuf bytes.Buffer ctxGen := func() client.Context { bz, _ := s.encCfg.Codec.Marshal(&sdk.TxResponse{}) - c := newMockTendermintRPC(abci.ResponseQuery{ + c := clitestutil.NewMockTendermintRPC(abci.ResponseQuery{ Value: bz, }) return s.baseCtx.WithClient(c) diff --git a/x/upgrade/client/cli/tx_test.go b/x/upgrade/client/cli/tx_test.go index 76036c7505e6..b42d936fe923 100644 --- a/x/upgrade/client/cli/tx_test.go +++ b/x/upgrade/client/cli/tx_test.go @@ -7,44 +7,19 @@ import ( "testing" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/bytes" tmcli "github.com/tendermint/tendermint/libs/cli" - rpcclient "github.com/tendermint/tendermint/rpc/client" rpcclientmock "github.com/tendermint/tendermint/rpc/client/mock" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" "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" "github.com/cosmos/cosmos-sdk/x/upgrade" upgradecli "github.com/cosmos/cosmos-sdk/x/upgrade/client/cli" ) -var _ client.TendermintRPC = (*mockTendermintRPC)(nil) - -type mockTendermintRPC struct { - rpcclientmock.Client - - responseQuery abci.ResponseQuery -} - -func (mockTendermintRPC) BroadcastTxSync(_ context.Context, _ tmtypes.Tx) (*coretypes.ResultBroadcastTx, error) { - return &coretypes.ResultBroadcastTx{}, nil -} - -func (m mockTendermintRPC) ABCIQueryWithOptions( - _ context.Context, - _ string, _ bytes.HexBytes, - _ rpcclient.ABCIQueryOptions, -) (*coretypes.ResultABCIQuery, error) { - return &coretypes.ResultABCIQuery{Response: m.responseQuery}, nil -} - func TestModuleVersionsCLI(t *testing.T) { cmd := upgradecli.GetModuleVersionsCmd() cmd.SetOut(io.Discard) @@ -56,7 +31,7 @@ func TestModuleVersionsCLI(t *testing.T) { WithKeyring(kr). WithTxConfig(encCfg.TxConfig). WithCodec(encCfg.Codec). - WithClient(mockTendermintRPC{Client: rpcclientmock.Client{}}). + WithClient(clitestutil.MockTendermintRPC{Client: rpcclientmock.Client{}}). WithAccountRetriever(client.MockAccountRetriever{}). WithOutput(io.Discard). WithChainID("test-chain") From a51aa517c46c70df04a06f586c67fb765e45322a Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Fri, 4 Nov 2022 02:23:24 +0100 Subject: [PATCH 7/7] refactor: simplify app legacy (#13756) --- simapp/app_legacy.go | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/simapp/app_legacy.go b/simapp/app_legacy.go index 36940f250abe..4b57f79a1f9a 100644 --- a/simapp/app_legacy.go +++ b/simapp/app_legacy.go @@ -52,6 +52,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/capability" capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + consensus "github.com/cosmos/cosmos-sdk/x/consensus" consensusparamkeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" "github.com/cosmos/cosmos-sdk/x/crisis" @@ -134,6 +135,7 @@ var ( groupmodule.AppModuleBasic{}, vesting.AppModuleBasic{}, nftmodule.AppModuleBasic{}, + consensus.AppModuleBasic{}, ) // module account permissions @@ -386,6 +388,7 @@ func NewSimApp( authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), + consensus.NewAppModule(appCodec, app.ConsensusParamsKeeper), ) // During begin block slashing happens after distr.BeginBlocker so that @@ -398,7 +401,7 @@ func NewSimApp( evidencetypes.ModuleName, stakingtypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, govtypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, authz.ModuleName, feegrant.ModuleName, nft.ModuleName, group.ModuleName, - paramstypes.ModuleName, vestingtypes.ModuleName, + paramstypes.ModuleName, vestingtypes.ModuleName, consensusparamtypes.ModuleName, ) app.ModuleManager.SetOrderEndBlockers( crisistypes.ModuleName, govtypes.ModuleName, stakingtypes.ModuleName, @@ -406,7 +409,7 @@ func NewSimApp( slashingtypes.ModuleName, minttypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, feegrant.ModuleName, nft.ModuleName, group.ModuleName, - paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, + paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, consensusparamtypes.ModuleName, ) // NOTE: The genutils module must occur after staking so that pools are @@ -415,13 +418,15 @@ func NewSimApp( // NOTE: Capability module must occur first so that it can initialize any capabilities // so that other modules that want to create or claim capabilities afterwards in InitChain // can do so safely. - app.ModuleManager.SetOrderInitGenesis( - capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, distrtypes.ModuleName, stakingtypes.ModuleName, - slashingtypes.ModuleName, govtypes.ModuleName, minttypes.ModuleName, crisistypes.ModuleName, - genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, - feegrant.ModuleName, nft.ModuleName, group.ModuleName, - paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, - ) + genesisModuleOrder := []string{ + capabilitytypes.ModuleName, authtypes.ModuleName, banktypes.ModuleName, + distrtypes.ModuleName, stakingtypes.ModuleName, slashingtypes.ModuleName, govtypes.ModuleName, + minttypes.ModuleName, crisistypes.ModuleName, genutiltypes.ModuleName, evidencetypes.ModuleName, authz.ModuleName, + feegrant.ModuleName, nft.ModuleName, group.ModuleName, paramstypes.ModuleName, upgradetypes.ModuleName, + vestingtypes.ModuleName, consensusparamtypes.ModuleName, + } + app.ModuleManager.SetOrderInitGenesis(genesisModuleOrder...) + app.ModuleManager.SetOrderExportGenesis(genesisModuleOrder...) // Uncomment if you want to set a custom migration order here. // app.ModuleManager.SetOrderMigrations(custom order) @@ -437,22 +442,10 @@ func NewSimApp( // // NOTE: this is not required apps that don't use the simulator for fuzz testing // transactions - app.sm = module.NewSimulationManager( - auth.NewAppModule(appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), - bank.NewAppModule(appCodec, app.BankKeeper, app.AccountKeeper, app.GetSubspace(banktypes.ModuleName)), - capability.NewAppModule(appCodec, *app.CapabilityKeeper, false), - feegrantmodule.NewAppModule(appCodec, app.AccountKeeper, app.BankKeeper, app.FeeGrantKeeper, app.interfaceRegistry), - gov.NewAppModule(appCodec, &app.GovKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(govtypes.ModuleName)), - mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, nil, app.GetSubspace(minttypes.ModuleName)), - staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper, app.GetSubspace(stakingtypes.ModuleName)), - distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(distrtypes.ModuleName)), - slashing.NewAppModule(appCodec, app.SlashingKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper, app.GetSubspace(slashingtypes.ModuleName)), - params.NewAppModule(app.ParamsKeeper), - evidence.NewAppModule(app.EvidenceKeeper), - authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - groupmodule.NewAppModule(appCodec, app.GroupKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - nftmodule.NewAppModule(appCodec, app.NFTKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), - ) + overrideModules := map[string]module.AppModuleSimulation{ + authtypes.ModuleName: auth.NewAppModule(app.appCodec, app.AccountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), + } + app.sm = module.NewSimulationManagerFromAppModules(app.ModuleManager.Modules, overrideModules) app.sm.RegisterStoreDecoders()