From 03c3f8e71f64a0d1060480df92aa39a74aaf4908 Mon Sep 17 00:00:00 2001 From: Marko Date: Wed, 8 Nov 2023 19:38:57 +0100 Subject: [PATCH] refactor(tests): testutil.Network as an interface (#18389) Co-authored-by: Anmol --- client/grpc/cmtservice/status_test.go | 6 +- client/rpc/rpc_test.go | 10 +- server/api/server_test.go | 10 +- simapp/testutil_network_test.go | 2 +- tests/e2e/auth/suite.go | 415 +++++++++--------- tests/e2e/authz/grpc.go | 54 +-- tests/e2e/authz/tx.go | 170 +++---- tests/e2e/bank/grpc.go | 30 +- tests/e2e/bank/suite.go | 86 ++-- .../client/grpc/cmtservice/service_test.go | 70 +-- tests/e2e/distribution/grpc_query_suite.go | 92 ++-- tests/e2e/distribution/withdraw_all_suite.go | 24 +- tests/e2e/gov/deposits.go | 32 +- tests/e2e/gov/grpc.go | 86 ++-- tests/e2e/gov/tx.go | 50 +-- tests/e2e/group/suite.go | 88 ++-- tests/e2e/mint/grpc.go | 6 +- tests/e2e/mint/suite.go | 2 +- tests/e2e/staking/suite.go | 20 +- tests/e2e/tx/benchmarks_test.go | 48 +- tests/e2e/tx/service_test.go | 213 ++++----- tests/integration/server/grpc/server_test.go | 38 +- testutil/cli/tx.go | 4 +- testutil/network/interface.go | 44 ++ testutil/network/network.go | 88 +--- testutil/network/util.go | 38 +- testutil/network/validator.go | 84 ++++ x/auth/types/account_retriever_test.go | 12 +- 28 files changed, 959 insertions(+), 863 deletions(-) create mode 100644 testutil/network/interface.go create mode 100644 testutil/network/validator.go diff --git a/client/grpc/cmtservice/status_test.go b/client/grpc/cmtservice/status_test.go index 5b8b9f5fab..5671baab39 100644 --- a/client/grpc/cmtservice/status_test.go +++ b/client/grpc/cmtservice/status_test.go @@ -21,12 +21,12 @@ func TestStatusCommand(t *testing.T) { require.NoError(t, err) require.NoError(t, network.WaitForNextBlock()) - val0 := network.Validators[0] + val0 := network.GetValidators()[0] cmd := server.StatusCommand() - out, err := clitestutil.ExecTestCLICmd(val0.ClientCtx, cmd, []string{}) + out, err := clitestutil.ExecTestCLICmd(val0.GetClientCtx(), cmd, []string{}) require.NoError(t, err) // Make sure the output has the validator moniker. - require.Contains(t, out.String(), fmt.Sprintf("\"moniker\":\"%s\"", val0.Moniker)) + require.Contains(t, out.String(), fmt.Sprintf("\"moniker\":\"%s\"", val0.GetMoniker())) } diff --git a/client/rpc/rpc_test.go b/client/rpc/rpc_test.go index 97429aa63d..e8b4635eee 100644 --- a/client/rpc/rpc_test.go +++ b/client/rpc/rpc_test.go @@ -22,7 +22,7 @@ import ( type IntegrationTestSuite struct { suite.Suite - network *network.Network + network network.NetworkI } func (s *IntegrationTestSuite) SetupSuite() { @@ -47,7 +47,7 @@ func (s *IntegrationTestSuite) TestCLIQueryConn() { s.T().Skip("data race in comet is causing this to fail") var header metadata.MD - testClient := testdata.NewQueryClient(s.network.Validators[0].ClientCtx) + testClient := testdata.NewQueryClient(s.network.GetValidators()[0].GetClientCtx()) res, err := testClient.Echo(context.Background(), &testdata.EchoRequest{Message: "hello"}, grpc.Header(&header)) s.NoError(err) @@ -91,15 +91,15 @@ func (s *IntegrationTestSuite) TestQueryABCIHeight() { _, err := s.network.WaitForHeight(tc.expHeight) s.Require().NoError(err) - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() clientCtx = clientCtx.WithHeight(tc.ctxHeight) req := abci.RequestQuery{ Path: fmt.Sprintf("store/%s/key", banktypes.StoreKey), Height: tc.reqHeight, - Data: address.MustLengthPrefix(val.Address), + Data: address.MustLengthPrefix(val.GetAddress()), Prove: true, } diff --git a/server/api/server_test.go b/server/api/server_test.go index e878b3c2ac..1dbc7e6677 100644 --- a/server/api/server_test.go +++ b/server/api/server_test.go @@ -40,7 +40,7 @@ type GRPCWebTestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI protoCdc *codec.ProtoCodec } @@ -68,7 +68,7 @@ func (s *GRPCWebTestSuite) TearDownSuite() { } func (s *GRPCWebTestSuite) Test_Latest_Validators() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] for _, contentType := range []string{grpcWebContentType} { headers, trailers, responses, err := s.makeGrpcRequest( "/cosmos.base.tendermint.v1beta1.Service/GetLatestValidatorSet", @@ -84,7 +84,7 @@ func (s *GRPCWebTestSuite) Test_Latest_Validators() { s.Require().NoError(err) pubKey, ok := valsSet.Validators[0].PubKey.GetCachedValue().(cryptotypes.PubKey) s.Require().Equal(true, ok) - s.Require().Equal(pubKey, val.PubKey) + s.Require().Equal(pubKey, val.GetPubKey()) } } @@ -128,7 +128,7 @@ func serializeProtoMessages(messages []proto.Message) [][]byte { func (s *GRPCWebTestSuite) makeRequest( verb, method string, headers http.Header, body io.Reader, isText bool, ) (*http.Response, error) { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] contentType := "application/grpc-web" if isText { // base64 encode the body @@ -146,7 +146,7 @@ func (s *GRPCWebTestSuite) makeRequest( contentType = "application/grpc-web-text" } - url := fmt.Sprintf("http://%s%s", strings.TrimPrefix(val.AppConfig.API.Address, "tcp://"), method) + url := fmt.Sprintf("http://%s%s", strings.TrimPrefix(val.GetAppConfig().API.Address, "tcp://"), method) req, err := http.NewRequest(verb, url, body) s.Require().NoError(err, "failed creating a request") req.Header = headers diff --git a/simapp/testutil_network_test.go b/simapp/testutil_network_test.go index fad10ea954..6d551b1dfd 100644 --- a/simapp/testutil_network_test.go +++ b/simapp/testutil_network_test.go @@ -14,7 +14,7 @@ import ( type IntegrationTestSuite struct { suite.Suite - network *network.Network + network network.NetworkI } func (s *IntegrationTestSuite) SetupSuite() { diff --git a/tests/e2e/auth/suite.go b/tests/e2e/auth/suite.go index edace5e7fe..cee85a1be3 100644 --- a/tests/e2e/auth/suite.go +++ b/tests/e2e/auth/suite.go @@ -40,7 +40,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func NewE2ETestSuite(cfg network.Config) *E2ETestSuite { @@ -53,7 +53,7 @@ func (s *E2ETestSuite) SetupSuite() { s.network, err = network.New(s.T(), s.T().TempDir(), s.cfg) s.Require().NoError(err) - kb := s.network.Validators[0].ClientCtx.Keyring + kb := s.network.GetValidators()[0].GetClientCtx().Keyring _, _, err = kb.NewMnemonic("newAccount", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) s.Require().NoError(err) @@ -83,30 +83,30 @@ func (s *E2ETestSuite) TearDownSuite() { } func (s *E2ETestSuite) TestCLISignGenOnly() { - val := s.network.Validators[0] - val2 := s.network.Validators[1] + val := s.network.GetValidators()[0] + val2 := s.network.GetValidators()[1] - k, err := val.ClientCtx.Keyring.KeyByAddress(val.Address) + k, err := val.GetClientCtx().Keyring.KeyByAddress(val.GetAddress()) s.Require().NoError(err) keyName := k.Name addr, err := k.GetAddress() s.Require().NoError(err) - account, err := val.ClientCtx.AccountRetriever.GetAccount(val.ClientCtx, addr) + account, err := val.GetClientCtx().AccountRetriever.GetAccount(val.GetClientCtx(), addr) s.Require().NoError(err) sendTokens := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(10))) msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val2.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val2.GetAddress().String(), Amount: sendTokens, } generatedStd, err := clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, - val.Address, + val.GetAddress(), clitestutil.TestTxConfig{ GenOnly: true, }, @@ -117,8 +117,8 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { commonArgs := []string{ fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), - fmt.Sprintf("--%s=%s", flags.FlagHome, strings.Replace(val.ClientCtx.HomeDir, "simd", "simcli", 1)), - fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), + fmt.Sprintf("--%s=%s", flags.FlagHome, strings.Replace(val.GetClientCtx().HomeDir, "simd", "simcli", 1)), + fmt.Sprintf("--%s=%s", flags.FlagChainID, val.GetClientCtx().ChainID), } cases := []struct { @@ -144,7 +144,7 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { []string{ opFile.Name(), fmt.Sprintf("--%s=true", flags.FlagOffline), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%d", flags.FlagAccountNumber, account.GetAccountNumber()), fmt.Sprintf("--%s=%d", flags.FlagSequence, account.GetSequence()), }, @@ -187,8 +187,8 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { for _, tc := range cases { cmd := authcli.GetSignCommand() - cmd.PersistentFlags().String(flags.FlagHome, val.ClientCtx.HomeDir, "directory for config and data") - out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, append(tc.args, commonArgs...)) + cmd.PersistentFlags().String(flags.FlagHome, val.GetClientCtx().HomeDir, "directory for config and data") + out, err := clitestutil.ExecTestCLICmd(val.GetClientCtx(), cmd, append(tc.args, commonArgs...)) if tc.expErr { s.Require().Error(err) s.Require().Contains(err.Error(), tc.errMsg) @@ -197,7 +197,7 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { func() { signedTx := testutil.WriteToNewTempFile(s.T(), out.String()) defer signedTx.Close() - _, err := authclitestutil.TxBroadcastExec(val.ClientCtx, signedTx.Name()) + _, err := authclitestutil.TxBroadcastExec(val.GetClientCtx(), signedTx.Name()) s.Require().NoError(err) }() } @@ -205,15 +205,16 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { } func (s *E2ETestSuite) TestCLISignBatch() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] + clientCtx := val.GetClientCtx() sendTokens := sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ) generatedStd, err := s.createBankMsg( val, - val.Address, + val.GetAddress(), sendTokens, clitestutil.TestTxConfig{ GenOnly: true, }, @@ -222,50 +223,50 @@ func (s *E2ETestSuite) TestCLISignBatch() { outputFile := testutil.WriteToNewTempFile(s.T(), strings.Repeat(generatedStd.String()+"\n", 3)) defer outputFile.Close() - val.ClientCtx.HomeDir = strings.Replace(val.ClientCtx.HomeDir, "simd", "simcli", 1) + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) // sign-batch file - offline is set but account-number and sequence are not - _, err = authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--offline") + _, err = authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--offline") s.Require().EqualError(err, "required flag(s) \"account-number\", \"sequence\" not set") // sign-batch file - offline and sequence is set but account-number is not set - _, err = authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), fmt.Sprintf("--%s=%s", flags.FlagSequence, "1"), "--offline") + _, err = authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), fmt.Sprintf("--%s=%s", flags.FlagSequence, "1"), "--offline") s.Require().EqualError(err, "required flag(s) \"account-number\" not set") // sign-batch file - offline and account-number is set but sequence is not set - _, err = authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, "1"), "--offline") + _, err = authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, "1"), "--offline") s.Require().EqualError(err, "required flag(s) \"sequence\" not set") // sign-batch file - sequence and account-number are set when offline is false - res, err := authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), fmt.Sprintf("--%s=%s", flags.FlagSequence, "1"), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, "1")) + res, err := authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), fmt.Sprintf("--%s=%s", flags.FlagSequence, "1"), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, "1")) s.Require().NoError(err) s.Require().Equal(3, len(strings.Split(strings.Trim(res.String(), "\n"), "\n"))) // sign-batch file - res, err = authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID)) + res, err = authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID)) s.Require().NoError(err) s.Require().Equal(3, len(strings.Split(strings.Trim(res.String(), "\n"), "\n"))) // sign-batch file signature only - res, err = authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--signature-only") + res, err = authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--signature-only") s.Require().NoError(err) s.Require().Equal(3, len(strings.Split(strings.Trim(res.String(), "\n"), "\n"))) // Sign batch malformed tx file. malformedFile := testutil.WriteToNewTempFile(s.T(), fmt.Sprintf("malformed%s", generatedStd)) defer malformedFile.Close() - _, err = authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, malformedFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID)) + _, err = authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), malformedFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID)) s.Require().Error(err) // Sign batch malformed tx file signature only. - _, err = authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, malformedFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--signature-only") + _, err = authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), malformedFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--signature-only") s.Require().Error(err) // make a txn to increase the sequence of sender - _, seq, err := val.ClientCtx.AccountRetriever.GetAccountNumberSequence(val.ClientCtx, val.Address) + _, seq, err := clientCtx.AccountRetriever.GetAccountNumberSequence(clientCtx, val.GetAddress()) s.Require().NoError(err) - account1, err := val.ClientCtx.Keyring.Key("newAccount1") + account1, err := clientCtx.Keyring.Key("newAccount1") s.Require().NoError(err) addr, err := account1.GetAddress() @@ -282,12 +283,12 @@ func (s *E2ETestSuite) TestCLISignBatch() { s.Require().NoError(s.network.WaitForNextBlock()) // fetch the sequence after a tx, should be incremented. - _, seq1, err := val.ClientCtx.AccountRetriever.GetAccountNumberSequence(val.ClientCtx, val.Address) + _, seq1, err := clientCtx.AccountRetriever.GetAccountNumberSequence(clientCtx, val.GetAddress()) s.Require().NoError(err) s.Require().Equal(seq+1, seq1) // signing sign-batch should start from the last sequence. - signed, err := authclitestutil.TxSignBatchExec(val.ClientCtx, val.Address, outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--signature-only") + signed, err := authclitestutil.TxSignBatchExec(clientCtx, val.GetAddress(), outputFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--signature-only") s.Require().NoError(err) signedTxs := strings.Split(strings.Trim(signed.String(), "\n"), "\n") s.Require().GreaterOrEqual(len(signedTxs), 1) @@ -298,9 +299,9 @@ func (s *E2ETestSuite) TestCLISignBatch() { } func (s *E2ETestSuite) TestCLIQueryTxCmdByHash() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - account2, err := val.ClientCtx.Keyring.Key("newAccount2") + account2, err := val.GetClientCtx().Keyring.Key("newAccount2") s.Require().NoError(err) sendTokens := sdk.NewInt64Coin(s.cfg.BondDenom, 10) @@ -319,7 +320,7 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByHash() { s.Require().NoError(s.network.WaitForNextBlock()) var txRes sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &txRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(res.Bytes(), &txRes)) testCases := []struct { name string @@ -354,7 +355,7 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByHash() { tc := tc s.Run(tc.name, func() { cmd := authcli.QueryTxCmd() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() var ( out testutil.BufferWriter err error @@ -369,7 +370,7 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByHash() { s.Require().NotEqual("internal", err.Error()) } else { var result sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &result)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &result)) s.Require().NotNil(result.Height) if ok := s.deepContains(result.Events, tc.rawLogContains); !ok { s.Require().Fail("raw log does not contain the expected value, expected value: %s", tc.rawLogContains) @@ -380,9 +381,9 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByHash() { } func (s *E2ETestSuite) TestCLIQueryTxCmdByEvents() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - account2, err := val.ClientCtx.Keyring.Key("newAccount2") + account2, err := val.GetClientCtx().Keyring.Key("newAccount2") s.Require().NoError(err) sendTokens := sdk.NewInt64Coin(s.cfg.BondDenom, 10) @@ -399,17 +400,17 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByEvents() { ) s.Require().NoError(err) var txRes sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &txRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(res.Bytes(), &txRes)) s.Require().NoError(s.network.WaitForNextBlock()) var out testutil.BufferWriter // Query the tx by hash to get the inner tx. err = s.network.RetryForBlocks(func() error { - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{txRes.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + out, err = clitestutil.ExecTestCLICmd(val.GetClientCtx(), authcli.QueryTxCmd(), []string{txRes.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) return err }, 3) s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txRes)) protoTx := txRes.GetTx().(*tx.Tx) testCases := []struct { @@ -449,7 +450,7 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByEvents() { "addr+seq happy case", []string{ "--type=acc_seq", - fmt.Sprintf("%s/%d", val.Address, protoTx.AuthInfo.SignerInfos[0].Sequence), + fmt.Sprintf("%s/%d", val.GetAddress(), protoTx.AuthInfo.SignerInfos[0].Sequence), fmt.Sprintf("--%s=json", flags.FlagOutput), }, false, "", @@ -487,7 +488,7 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByEvents() { tc := tc s.Run(tc.name, func() { cmd := authcli.QueryTxCmd() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -496,7 +497,7 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByEvents() { } else { var result sdk.TxResponse s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &result)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &result)) s.Require().NotNil(result.Height) } }) @@ -504,9 +505,9 @@ func (s *E2ETestSuite) TestCLIQueryTxCmdByEvents() { } func (s *E2ETestSuite) TestCLIQueryTxsCmdByEvents() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - account2, err := val.ClientCtx.Keyring.Key("newAccount2") + account2, err := val.GetClientCtx().Keyring.Key("newAccount2") s.Require().NoError(err) sendTokens := sdk.NewInt64Coin(s.cfg.BondDenom, 10) @@ -522,17 +523,17 @@ func (s *E2ETestSuite) TestCLIQueryTxsCmdByEvents() { ) s.Require().NoError(err) var txRes sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &txRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(res.Bytes(), &txRes)) s.Require().NoError(s.network.WaitForNextBlock()) var out testutil.BufferWriter // Query the tx by hash to get the inner tx. err = s.network.RetryForBlocks(func() error { - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{txRes.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + out, err = clitestutil.ExecTestCLICmd(val.GetClientCtx(), authcli.QueryTxCmd(), []string{txRes.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) return err }, 3) s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txRes)) testCases := []struct { name string @@ -567,13 +568,13 @@ func (s *E2ETestSuite) TestCLIQueryTxsCmdByEvents() { tc := tc s.Run(tc.name, func() { cmd := authcli.QueryTxsByEventsCmd() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) s.Require().NoError(err) var result sdk.SearchTxsResult - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &result)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &result)) if tc.expectEmpty { s.Require().Equal(0, len(result.Txs)) @@ -586,9 +587,10 @@ func (s *E2ETestSuite) TestCLIQueryTxsCmdByEvents() { } func (s *E2ETestSuite) TestCLISendGenerateSignAndBroadcast() { - val1 := s.network.Validators[0] + val1 := s.network.GetValidators()[0] + clientCtx := val1.GetClientCtx() - account, err := val1.ClientCtx.Keyring.Key("newAccount") + account, err := clientCtx.Keyring.Key("newAccount") s.Require().NoError(err) sendTokens := sdk.NewCoin(s.cfg.BondDenom, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) @@ -604,8 +606,7 @@ func (s *E2ETestSuite) TestCLISendGenerateSignAndBroadcast() { }, ) s.Require().NoError(err) - - txCfg := val1.ClientCtx.TxConfig + txCfg := clientCtx.TxConfig normalGeneratedStdTx, err := txCfg.TxJSONDecoder()(normalGeneratedTx.Bytes()) s.Require().NoError(err) @@ -636,11 +637,11 @@ func (s *E2ETestSuite) TestCLISendGenerateSignAndBroadcast() { s.Require().NoError(err) s.Require().Equal(0, len(sigs)) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.APIAddress, val1.Address)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.GetAPIAddress(), val1.GetAddress())) s.Require().NoError(err) var balRes banktypes.QueryAllBalancesResponse - err = val1.ClientCtx.Codec.UnmarshalJSON(resp, &balRes) + err = clientCtx.Codec.UnmarshalJSON(resp, &balRes) s.Require().NoError(err) startTokens := balRes.Balances.AmountOf(s.cfg.BondDenom) @@ -666,27 +667,27 @@ func (s *E2ETestSuite) TestCLISendGenerateSignAndBroadcast() { defer unsignedTxFile.Close() // Test validate-signatures - res, err := authclitestutil.TxValidateSignaturesExec(val1.ClientCtx, unsignedTxFile.Name()) + res, err := authclitestutil.TxValidateSignaturesExec(clientCtx, unsignedTxFile.Name()) s.Require().EqualError(err, "signatures validation failed") - s.Require().True(strings.Contains(res.String(), fmt.Sprintf("Signers:\n 0: %v\n\nSignatures:\n\n", val1.Address.String()))) + s.Require().True(strings.Contains(res.String(), fmt.Sprintf("Signers:\n 0: %v\n\nSignatures:\n\n", val1.GetAddress().String()))) // Test sign // Does not work in offline mode - _, err = authclitestutil.TxSignExec(val1.ClientCtx, val1.Address, unsignedTxFile.Name(), "--offline") + _, err = authclitestutil.TxSignExec(clientCtx, val1.GetAddress(), unsignedTxFile.Name(), "--offline") s.Require().EqualError(err, "required flag(s) \"account-number\", \"sequence\" not set") // But works offline if we set account number and sequence - val1.ClientCtx.HomeDir = strings.Replace(val1.ClientCtx.HomeDir, "simd", "simcli", 1) - _, err = authclitestutil.TxSignExec(val1.ClientCtx, val1.Address, unsignedTxFile.Name(), "--offline", "--account-number", "1", "--sequence", "1") + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) + _, err = authclitestutil.TxSignExec(clientCtx, val1.GetAddress(), unsignedTxFile.Name(), "--offline", "--account-number", "1", "--sequence", "1") s.Require().NoError(err) // Sign transaction - signedTx, err := authclitestutil.TxSignExec(val1.ClientCtx, val1.Address, unsignedTxFile.Name()) + signedTx, err := authclitestutil.TxSignExec(clientCtx, val1.GetAddress(), unsignedTxFile.Name()) s.Require().NoError(err) signedFinalTx, err := txCfg.TxJSONDecoder()(signedTx.Bytes()) s.Require().NoError(err) - txBuilder, err = val1.ClientCtx.TxConfig.WrapTxBuilder(signedFinalTx) + txBuilder, err = clientCtx.TxConfig.WrapTxBuilder(signedFinalTx) s.Require().NoError(err) s.Require().Equal(len(txBuilder.GetTx().GetMsgs()), 1) sigs, err = txBuilder.GetTx().GetSignaturesV2() @@ -694,65 +695,66 @@ func (s *E2ETestSuite) TestCLISendGenerateSignAndBroadcast() { s.Require().Equal(1, len(sigs)) signers, err := txBuilder.GetTx().GetSigners() s.Require().NoError(err) - s.Require().Equal([]byte(val1.Address), signers[0]) + s.Require().Equal([]byte(val1.GetAddress()), signers[0]) // Write the output to disk signedTxFile := testutil.WriteToNewTempFile(s.T(), signedTx.String()) defer signedTxFile.Close() // validate Signature - res, err = authclitestutil.TxValidateSignaturesExec(val1.ClientCtx, signedTxFile.Name()) + res, err = authclitestutil.TxValidateSignaturesExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) s.Require().True(strings.Contains(res.String(), "[OK]")) s.Require().NoError(s.network.WaitForNextBlock()) // Ensure foo has right amount of funds - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.APIAddress, val1.Address)) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.GetAPIAddress(), val1.GetAddress())) s.Require().NoError(err) - err = val1.ClientCtx.Codec.UnmarshalJSON(resp, &balRes) + err = clientCtx.Codec.UnmarshalJSON(resp, &balRes) s.Require().NoError(err) s.Require().Equal(startTokens, balRes.Balances.AmountOf(s.cfg.BondDenom)) // Test broadcast // Does not work in offline mode - _, err = authclitestutil.TxBroadcastExec(val1.ClientCtx, signedTxFile.Name(), "--offline") + _, err = authclitestutil.TxBroadcastExec(clientCtx, signedTxFile.Name(), "--offline") s.Require().EqualError(err, "cannot broadcast tx during offline mode") s.Require().NoError(s.network.WaitForNextBlock()) // Broadcast correct transaction. - val1.ClientCtx.BroadcastMode = flags.BroadcastSync - _, err = authclitestutil.TxBroadcastExec(val1.ClientCtx, signedTxFile.Name()) + clientCtx.BroadcastMode = flags.BroadcastSync + _, err = authclitestutil.TxBroadcastExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) // Ensure destiny account state err = s.network.RetryForBlocks(func() error { - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.APIAddress, addr)) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.GetAPIAddress(), addr)) s.Require().NoError(err) return err }, 3) s.Require().NoError(err) - err = val1.ClientCtx.Codec.UnmarshalJSON(resp, &balRes) + err = clientCtx.Codec.UnmarshalJSON(resp, &balRes) s.Require().NoError(err) s.Require().Equal(sendTokens.Amount, balRes.Balances.AmountOf(s.cfg.BondDenom)) // Ensure origin account state - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.APIAddress, val1.Address)) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.GetAPIAddress(), val1.GetAddress())) s.Require().NoError(err) - err = val1.ClientCtx.Codec.UnmarshalJSON(resp, &balRes) + err = clientCtx.Codec.UnmarshalJSON(resp, &balRes) s.Require().NoError(err) } func (s *E2ETestSuite) TestCLIMultisignInsufficientCosigners() { - val1 := s.network.Validators[0] + val1 := s.network.GetValidators()[0] + clientCtx := val1.GetClientCtx() // Fetch account and a multisig info - account1, err := val1.ClientCtx.Keyring.Key("newAccount1") + account1, err := clientCtx.Keyring.Key("newAccount1") s.Require().NoError(err) - multisigRecord, err := val1.ClientCtx.Keyring.Key("multi") + multisigRecord, err := clientCtx.Keyring.Key("multi") s.Require().NoError(err) addr, err := multisigRecord.GetAddress() @@ -772,13 +774,13 @@ func (s *E2ETestSuite) TestCLIMultisignInsufficientCosigners() { coins := sdk.NewCoins(sdk.NewInt64Coin(s.cfg.BondDenom, 5)) msgSend := &banktypes.MsgSend{ FromAddress: addr.String(), - ToAddress: val1.Address.String(), + ToAddress: val1.GetAddress().String(), Amount: coins, } // Generate multisig transaction. multiGeneratedTx, err := clitestutil.SubmitTestTx( - val1.ClientCtx, + clientCtx, msgSend, addr, clitestutil.TestTxConfig{ @@ -792,33 +794,33 @@ func (s *E2ETestSuite) TestCLIMultisignInsufficientCosigners() { defer multiGeneratedTxFile.Close() // Multisign, sign with one signature - val1.ClientCtx.HomeDir = strings.Replace(val1.ClientCtx.HomeDir, "simd", "simcli", 1) + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) addr1, err := account1.GetAddress() s.Require().NoError(err) - account1Signature, err := authclitestutil.TxSignExec(val1.ClientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + account1Signature, err := authclitestutil.TxSignExec(clientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().NoError(err) sign1File := testutil.WriteToNewTempFile(s.T(), account1Signature.String()) defer sign1File.Close() - multiSigWith1Signature, err := authclitestutil.TxMultiSignExec(val1.ClientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name()) + multiSigWith1Signature, err := authclitestutil.TxMultiSignExec(clientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name()) s.Require().NoError(err) // Save tx to file multiSigWith1SignatureFile := testutil.WriteToNewTempFile(s.T(), multiSigWith1Signature.String()) defer multiSigWith1SignatureFile.Close() - _, err = authclitestutil.TxValidateSignaturesExec(val1.ClientCtx, multiSigWith1SignatureFile.Name()) + _, err = authclitestutil.TxValidateSignaturesExec(clientCtx, multiSigWith1SignatureFile.Name()) s.Require().Error(err) } func (s *E2ETestSuite) TestCLIEncode() { - val1 := s.network.Validators[0] + val1 := s.network.GetValidators()[0] sendTokens := sdk.NewCoin(s.cfg.BondDenom, sdk.TokensFromConsensusPower(10, sdk.DefaultPowerReduction)) normalGeneratedTx, err := s.createBankMsg( - val1, val1.Address, + val1, val1.GetAddress(), sdk.NewCoins(sendTokens), clitestutil.TestTxConfig{ GenOnly: true, @@ -830,46 +832,47 @@ func (s *E2ETestSuite) TestCLIEncode() { defer savedTxFile.Close() // Encode - encodeExec, err := authclitestutil.TxEncodeExec(val1.ClientCtx, savedTxFile.Name()) + encodeExec, err := authclitestutil.TxEncodeExec(val1.GetClientCtx(), savedTxFile.Name()) s.Require().NoError(err) trimmedBase64 := strings.Trim(encodeExec.String(), "\"\n") // Check that the transaction decodes as expected - decodedTx, err := authclitestutil.TxDecodeExec(val1.ClientCtx, trimmedBase64) + decodedTx, err := authclitestutil.TxDecodeExec(val1.GetClientCtx(), trimmedBase64) s.Require().NoError(err) - txCfg := val1.ClientCtx.TxConfig + txCfg := val1.GetClientCtx().TxConfig theTx, err := txCfg.TxJSONDecoder()(decodedTx.Bytes()) s.Require().NoError(err) - txBuilder, err := val1.ClientCtx.TxConfig.WrapTxBuilder(theTx) + txBuilder, err := val1.GetClientCtx().TxConfig.WrapTxBuilder(theTx) s.Require().NoError(err) s.Require().Equal("deadbeef", txBuilder.GetTx().GetMemo()) } func (s *E2ETestSuite) TestCLIMultisignSortSignatures() { - val1 := s.network.Validators[0] + val1 := s.network.GetValidators()[0] + clientCtx := val1.GetClientCtx() // Generate 2 accounts and a multisig. - account1, err := val1.ClientCtx.Keyring.Key("newAccount1") + account1, err := clientCtx.Keyring.Key("newAccount1") s.Require().NoError(err) - account2, err := val1.ClientCtx.Keyring.Key("newAccount2") + account2, err := clientCtx.Keyring.Key("newAccount2") s.Require().NoError(err) - multisigRecord, err := val1.ClientCtx.Keyring.Key("multi") + multisigRecord, err := clientCtx.Keyring.Key("multi") s.Require().NoError(err) // Generate dummy account which is not a part of multisig. - dummyAcc, err := val1.ClientCtx.Keyring.Key("dummyAccount") + dummyAcc, err := clientCtx.Keyring.Key("dummyAccount") s.Require().NoError(err) addr, err := multisigRecord.GetAddress() s.Require().NoError(err) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.APIAddress, addr)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.GetAPIAddress(), addr)) s.Require().NoError(err) var balRes banktypes.QueryAllBalancesResponse - err = val1.ClientCtx.Codec.UnmarshalJSON(resp, &balRes) + err = clientCtx.Codec.UnmarshalJSON(resp, &balRes) s.Require().NoError(err) intialCoins := balRes.Balances @@ -884,9 +887,9 @@ func (s *E2ETestSuite) TestCLIMultisignSortSignatures() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.APIAddress, addr)) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.GetAPIAddress(), addr)) s.Require().NoError(err) - err = val1.ClientCtx.Codec.UnmarshalJSON(resp, &balRes) + err = clientCtx.Codec.UnmarshalJSON(resp, &balRes) s.Require().NoError(err) diff, _ := balRes.Balances.SafeSub(intialCoins...) s.Require().Equal(sendTokens.Amount, diff.AmountOf(s.cfg.BondDenom)) @@ -894,13 +897,13 @@ func (s *E2ETestSuite) TestCLIMultisignSortSignatures() { tokens := sdk.NewCoins(sdk.NewInt64Coin(s.cfg.BondDenom, 5)) msgSend := &banktypes.MsgSend{ FromAddress: addr.String(), - ToAddress: val1.Address.String(), + ToAddress: val1.GetAddress().String(), Amount: tokens, } // Generate multisig transaction. multiGeneratedTx, err := clitestutil.SubmitTestTx( - val1.ClientCtx, + clientCtx, msgSend, addr, clitestutil.TestTxConfig{ @@ -916,8 +919,8 @@ func (s *E2ETestSuite) TestCLIMultisignSortSignatures() { // Sign with account1 addr1, err := account1.GetAddress() s.Require().NoError(err) - val1.ClientCtx.HomeDir = strings.Replace(val1.ClientCtx.HomeDir, "simd", "simcli", 1) - account1Signature, err := authclitestutil.TxSignExec(val1.ClientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) + account1Signature, err := authclitestutil.TxSignExec(clientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().NoError(err) sign1File := testutil.WriteToNewTempFile(s.T(), account1Signature.String()) @@ -926,7 +929,7 @@ func (s *E2ETestSuite) TestCLIMultisignSortSignatures() { // Sign with account2 addr2, err := account2.GetAddress() s.Require().NoError(err) - account2Signature, err := authclitestutil.TxSignExec(val1.ClientCtx, addr2, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + account2Signature, err := authclitestutil.TxSignExec(clientCtx, addr2, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().NoError(err) sign2File := testutil.WriteToNewTempFile(s.T(), account2Signature.String()) @@ -935,32 +938,32 @@ func (s *E2ETestSuite) TestCLIMultisignSortSignatures() { // Sign with dummy account dummyAddr, err := dummyAcc.GetAddress() s.Require().NoError(err) - _, err = authclitestutil.TxSignExec(val1.ClientCtx, dummyAddr, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + _, err = authclitestutil.TxSignExec(clientCtx, dummyAddr, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().Error(err) s.Require().Contains(err.Error(), "signing key is not a part of multisig key") - multiSigWith2Signatures, err := authclitestutil.TxMultiSignExec(val1.ClientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name(), sign2File.Name()) + multiSigWith2Signatures, err := authclitestutil.TxMultiSignExec(clientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name(), sign2File.Name()) s.Require().NoError(err) // Write the output to disk signedTxFile := testutil.WriteToNewTempFile(s.T(), multiSigWith2Signatures.String()) defer signedTxFile.Close() - _, err = authclitestutil.TxValidateSignaturesExec(val1.ClientCtx, signedTxFile.Name()) + _, err = authclitestutil.TxValidateSignaturesExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) - val1.ClientCtx.BroadcastMode = flags.BroadcastSync - _, err = authclitestutil.TxBroadcastExec(val1.ClientCtx, signedTxFile.Name()) + clientCtx.BroadcastMode = flags.BroadcastSync + _, err = authclitestutil.TxBroadcastExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) } func (s *E2ETestSuite) TestSignWithMultisig() { - val1 := s.network.Validators[0] + val1 := s.network.GetValidators()[0] // Generate a account for signing. - account1, err := val1.ClientCtx.Keyring.Key("newAccount1") + account1, err := val1.GetClientCtx().Keyring.Key("newAccount1") s.Require().NoError(err) addr1, err := account1.GetAddress() @@ -975,16 +978,16 @@ func (s *E2ETestSuite) TestSignWithMultisig() { sdk.NewInt64Coin(s.cfg.BondDenom, 5), ) msgSend := &banktypes.MsgSend{ - FromAddress: val1.Address.String(), - ToAddress: val1.Address.String(), + FromAddress: val1.GetAddress().String(), + ToAddress: val1.GetAddress().String(), Amount: tokens, } // Generate a transaction for testing --multisig with an address not in the keyring. multisigTx, err := clitestutil.SubmitTestTx( - val1.ClientCtx, + val1.GetClientCtx(), msgSend, - val1.Address, + val1.GetAddress(), clitestutil.TestTxConfig{ GenOnly: true, }, @@ -999,21 +1002,22 @@ func (s *E2ETestSuite) TestSignWithMultisig() { // even though the tx signer is NOT the multisig address. This is fine though, // as the main point of this test is to test the `--multisig` flag with an address // that is not in the keyring. - _, err = authclitestutil.TxSignExec(val1.ClientCtx, addr1, multiGeneratedTx2File.Name(), "--multisig", multisigAddr.String()) + _, err = authclitestutil.TxSignExec(val1.GetClientCtx(), addr1, multiGeneratedTx2File.Name(), "--multisig", multisigAddr.String()) s.Require().Contains(err.Error(), "error getting account from keybase") } func (s *E2ETestSuite) TestCLIMultisign() { - val1 := s.network.Validators[0] + val1 := s.network.GetValidators()[0] + clientCtx := val1.GetClientCtx() // Generate 2 accounts and a multisig. - account1, err := val1.ClientCtx.Keyring.Key("newAccount1") + account1, err := clientCtx.Keyring.Key("newAccount1") s.Require().NoError(err) - account2, err := val1.ClientCtx.Keyring.Key("newAccount2") + account2, err := clientCtx.Keyring.Key("newAccount2") s.Require().NoError(err) - multisigRecord, err := val1.ClientCtx.Keyring.Key("multi") + multisigRecord, err := clientCtx.Keyring.Key("multi") s.Require().NoError(err) addr, err := multisigRecord.GetAddress() @@ -1032,11 +1036,11 @@ func (s *E2ETestSuite) TestCLIMultisign() { var balRes banktypes.QueryAllBalancesResponse err = s.network.RetryForBlocks(func() error { - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.APIAddress, addr)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val1.GetAPIAddress(), addr)) if err != nil { return err } - return val1.ClientCtx.Codec.UnmarshalJSON(resp, &balRes) + return clientCtx.Codec.UnmarshalJSON(resp, &balRes) }, 3) s.Require().NoError(err) s.Require().True(sendTokens.Amount.Equal(balRes.Balances.AmountOf(s.cfg.BondDenom))) @@ -1044,13 +1048,13 @@ func (s *E2ETestSuite) TestCLIMultisign() { tokens := sdk.NewCoins(sdk.NewInt64Coin(s.cfg.BondDenom, 5)) msgSend := &banktypes.MsgSend{ FromAddress: addr.String(), - ToAddress: val1.Address.String(), + ToAddress: val1.GetAddress().String(), Amount: tokens, } // Generate multisig transaction. multiGeneratedTx, err := clitestutil.SubmitTestTx( - val1.ClientCtx, + clientCtx, msgSend, addr, clitestutil.TestTxConfig{ @@ -1066,8 +1070,8 @@ func (s *E2ETestSuite) TestCLIMultisign() { addr1, err := account1.GetAddress() s.Require().NoError(err) // Sign with account1 - val1.ClientCtx.HomeDir = strings.Replace(val1.ClientCtx.HomeDir, "simd", "simcli", 1) - account1Signature, err := authclitestutil.TxSignExec(val1.ClientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) + account1Signature, err := authclitestutil.TxSignExec(clientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().NoError(err) sign1File := testutil.WriteToNewTempFile(s.T(), account1Signature.String()) @@ -1076,17 +1080,17 @@ func (s *E2ETestSuite) TestCLIMultisign() { addr2, err := account2.GetAddress() s.Require().NoError(err) // Sign with account2 - account2Signature, err := authclitestutil.TxSignExec(val1.ClientCtx, addr2, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + account2Signature, err := authclitestutil.TxSignExec(clientCtx, addr2, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().NoError(err) sign2File := testutil.WriteToNewTempFile(s.T(), account2Signature.String()) defer sign2File.Close() // Work in offline mode. - multisigAccNum, multisigSeq, err := val1.ClientCtx.AccountRetriever.GetAccountNumberSequence(val1.ClientCtx, addr) + multisigAccNum, multisigSeq, err := clientCtx.AccountRetriever.GetAccountNumberSequence(clientCtx, addr) s.Require().NoError(err) _, err = authclitestutil.TxMultiSignExec( - val1.ClientCtx, + clientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), fmt.Sprintf("--%s", flags.FlagOffline), @@ -1097,33 +1101,34 @@ func (s *E2ETestSuite) TestCLIMultisign() { ) s.Require().NoError(err) - val1.ClientCtx.Offline = false - multiSigWith2Signatures, err := authclitestutil.TxMultiSignExec(val1.ClientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name(), sign2File.Name()) + clientCtx.Offline = false + multiSigWith2Signatures, err := authclitestutil.TxMultiSignExec(clientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name(), sign2File.Name()) s.Require().NoError(err) // Write the output to disk signedTxFile := testutil.WriteToNewTempFile(s.T(), multiSigWith2Signatures.String()) defer signedTxFile.Close() - _, err = authclitestutil.TxValidateSignaturesExec(val1.ClientCtx, signedTxFile.Name()) + _, err = authclitestutil.TxValidateSignaturesExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) - val1.ClientCtx.BroadcastMode = flags.BroadcastSync - _, err = authclitestutil.TxBroadcastExec(val1.ClientCtx, signedTxFile.Name()) + clientCtx.BroadcastMode = flags.BroadcastSync + _, err = authclitestutil.TxBroadcastExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) } func (s *E2ETestSuite) TestSignBatchMultisig() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] + clientCtx := val.GetClientCtx() // Fetch 2 accounts and a multisig. - account1, err := val.ClientCtx.Keyring.Key("newAccount1") + account1, err := clientCtx.Keyring.Key("newAccount1") s.Require().NoError(err) - account2, err := val.ClientCtx.Keyring.Key("newAccount2") + account2, err := clientCtx.Keyring.Key("newAccount2") s.Require().NoError(err) - multisigRecord, err := val.ClientCtx.Keyring.Key("multi") + multisigRecord, err := clientCtx.Keyring.Key("multi") s.Require().NoError(err) addr, err := multisigRecord.GetAddress() @@ -1144,12 +1149,12 @@ func (s *E2ETestSuite) TestSignBatchMultisig() { ) msgSend := &banktypes.MsgSend{ FromAddress: addr.String(), - ToAddress: val.Address.String(), + ToAddress: val.GetAddress().String(), Amount: tokens, } generatedStd, err := clitestutil.SubmitTestTx( - val.ClientCtx, + clientCtx, msgSend, addr, clitestutil.TestTxConfig{ @@ -1161,12 +1166,12 @@ func (s *E2ETestSuite) TestSignBatchMultisig() { // Write the output to disk filename := testutil.WriteToNewTempFile(s.T(), strings.Repeat(generatedStd.String(), 1)) defer filename.Close() - val.ClientCtx.HomeDir = strings.Replace(val.ClientCtx.HomeDir, "simd", "simcli", 1) + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) addr1, err := account1.GetAddress() s.Require().NoError(err) // sign-batch file - res, err := authclitestutil.TxSignBatchExec(val.ClientCtx, addr1, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--multisig", addr.String(), "--signature-only") + res, err := authclitestutil.TxSignBatchExec(clientCtx, addr1, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--multisig", addr.String(), "--signature-only") s.Require().NoError(err) s.Require().Equal(1, len(strings.Split(strings.Trim(res.String(), "\n"), "\n"))) // write sigs to file @@ -1176,25 +1181,26 @@ func (s *E2ETestSuite) TestSignBatchMultisig() { addr2, err := account2.GetAddress() s.Require().NoError(err) // sign-batch file with account2 - res, err = authclitestutil.TxSignBatchExec(val.ClientCtx, addr2, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--multisig", addr.String(), "--signature-only") + res, err = authclitestutil.TxSignBatchExec(clientCtx, addr2, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--multisig", addr.String(), "--signature-only") s.Require().NoError(err) s.Require().Equal(1, len(strings.Split(strings.Trim(res.String(), "\n"), "\n"))) // write sigs to file2 file2 := testutil.WriteToNewTempFile(s.T(), res.String()) defer file2.Close() - _, err = authclitestutil.TxMultiSignExec(val.ClientCtx, multisigRecord.Name, filename.Name(), file1.Name(), file2.Name()) + _, err = authclitestutil.TxMultiSignExec(clientCtx, multisigRecord.Name, filename.Name(), file1.Name(), file2.Name()) s.Require().NoError(err) } func (s *E2ETestSuite) TestMultisignBatch() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] + clientCtx := val.GetClientCtx() // Fetch 2 accounts and a multisig. - account1, err := val.ClientCtx.Keyring.Key("newAccount1") + account1, err := clientCtx.Keyring.Key("newAccount1") s.Require().NoError(err) - account2, err := val.ClientCtx.Keyring.Key("newAccount2") + account2, err := clientCtx.Keyring.Key("newAccount2") s.Require().NoError(err) - multisigRecord, err := val.ClientCtx.Keyring.Key("multi") + multisigRecord, err := clientCtx.Keyring.Key("multi") s.Require().NoError(err) addr, err := multisigRecord.GetAddress() @@ -1213,12 +1219,12 @@ func (s *E2ETestSuite) TestMultisignBatch() { tokens := sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(1))) msgSend := &banktypes.MsgSend{ FromAddress: addr.String(), - ToAddress: val.Address.String(), + ToAddress: val.GetAddress().String(), Amount: tokens, } generatedStd, err := clitestutil.SubmitTestTx( - val.ClientCtx, + clientCtx, msgSend, addr, clitestutil.TestTxConfig{ @@ -1230,15 +1236,15 @@ func (s *E2ETestSuite) TestMultisignBatch() { // Write the output to disk filename := testutil.WriteToNewTempFile(s.T(), strings.Repeat(generatedStd.String()+"\n", 3)) defer filename.Close() - val.ClientCtx.HomeDir = strings.Replace(val.ClientCtx.HomeDir, "simd", "simcli", 1) + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) - account, err := val.ClientCtx.AccountRetriever.GetAccount(val.ClientCtx, addr) + account, err := clientCtx.AccountRetriever.GetAccount(clientCtx, addr) s.Require().NoError(err) // sign-batch file addr1, err := account1.GetAddress() s.Require().NoError(err) - res, err := authclitestutil.TxSignBatchExec(val.ClientCtx, addr1, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--multisig", addr.String(), fmt.Sprintf("--%s", flags.FlagOffline), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, fmt.Sprint(account.GetAccountNumber())), fmt.Sprintf("--%s=%s", flags.FlagSequence, fmt.Sprint(account.GetSequence())), "--signature-only") + res, err := authclitestutil.TxSignBatchExec(clientCtx, addr1, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--multisig", addr.String(), fmt.Sprintf("--%s", flags.FlagOffline), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, fmt.Sprint(account.GetAccountNumber())), fmt.Sprintf("--%s=%s", flags.FlagSequence, fmt.Sprint(account.GetSequence())), "--signature-only") s.Require().NoError(err) s.Require().Equal(3, len(strings.Split(strings.Trim(res.String(), "\n"), "\n"))) // write sigs to file @@ -1248,14 +1254,14 @@ func (s *E2ETestSuite) TestMultisignBatch() { // sign-batch file with account2 addr2, err := account2.GetAddress() s.Require().NoError(err) - res, err = authclitestutil.TxSignBatchExec(val.ClientCtx, addr2, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, val.ClientCtx.ChainID), "--multisig", addr.String(), fmt.Sprintf("--%s", flags.FlagOffline), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, fmt.Sprint(account.GetAccountNumber())), fmt.Sprintf("--%s=%s", flags.FlagSequence, fmt.Sprint(account.GetSequence())), "--signature-only") + res, err = authclitestutil.TxSignBatchExec(clientCtx, addr2, filename.Name(), fmt.Sprintf("--%s=%s", flags.FlagChainID, clientCtx.ChainID), "--multisig", addr.String(), fmt.Sprintf("--%s", flags.FlagOffline), fmt.Sprintf("--%s=%s", flags.FlagAccountNumber, fmt.Sprint(account.GetAccountNumber())), fmt.Sprintf("--%s=%s", flags.FlagSequence, fmt.Sprint(account.GetSequence())), "--signature-only") s.Require().NoError(err) s.Require().Equal(3, len(strings.Split(strings.Trim(res.String(), "\n"), "\n"))) // multisign the file file2 := testutil.WriteToNewTempFile(s.T(), res.String()) defer file2.Close() - res, err = authclitestutil.TxMultiSignBatchExec(val.ClientCtx, filename.Name(), multisigRecord.Name, file1.Name(), file2.Name()) + res, err = authclitestutil.TxMultiSignBatchExec(clientCtx, filename.Name(), multisigRecord.Name, file1.Name(), file2.Name()) s.Require().NoError(err) signedTxs := strings.Split(strings.Trim(res.String(), "\n"), "\n") @@ -1264,8 +1270,8 @@ func (s *E2ETestSuite) TestMultisignBatch() { func() { signedTxFile := testutil.WriteToNewTempFile(s.T(), signedTx) defer signedTxFile.Close() - val.ClientCtx.BroadcastMode = flags.BroadcastSync - _, err = authclitestutil.TxBroadcastExec(val.ClientCtx, signedTxFile.Name()) + clientCtx.BroadcastMode = flags.BroadcastSync + _, err = authclitestutil.TxBroadcastExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) }() @@ -1318,12 +1324,13 @@ func TestGetBroadcastCommandWithoutOfflineFlag(t *testing.T) { // public key doesn't cause any error in the RPC layer (broadcast). // See https://github.com/cosmos/cosmos-sdk/issues/7585 for more details. func (s *E2ETestSuite) TestTxWithoutPublicKey() { - val1 := s.network.Validators[0] - txCfg := val1.ClientCtx.TxConfig + val1 := s.network.GetValidators()[0] + clientCtx := val1.GetClientCtx() + txCfg := clientCtx.TxConfig // Create a txBuilder with an unsigned tx. txBuilder := txCfg.NewTxBuilder() - msg := banktypes.NewMsgSend(val1.Address, val1.Address, sdk.NewCoins( + msg := banktypes.NewMsgSend(val1.GetAddress(), val1.GetAddress(), sdk.NewCoins( sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), )) err := txBuilder.SetMsgs(msg) @@ -1332,7 +1339,7 @@ func (s *E2ETestSuite) TestTxWithoutPublicKey() { txBuilder.SetGasLimit(testdata.NewTestGasLimit()) // Set empty signature to set signer infos. sigV2 := signing.SignatureV2{ - PubKey: val1.PubKey, + PubKey: val1.GetPubKey(), Data: &signing.SingleSignatureData{ SignMode: signing.SignMode_SIGN_MODE_DIRECT, Signature: nil, @@ -1348,29 +1355,29 @@ func (s *E2ETestSuite) TestTxWithoutPublicKey() { defer unsignedTxFile.Close() // Sign the file with the unsignedTx. - signedTx, err := authclitestutil.TxSignExec(val1.ClientCtx, val1.Address, unsignedTxFile.Name(), fmt.Sprintf("--%s=true", cli.FlagOverwrite)) + signedTx, err := authclitestutil.TxSignExec(clientCtx, val1.GetAddress(), unsignedTxFile.Name(), fmt.Sprintf("--%s=true", cli.FlagOverwrite)) s.Require().NoError(err) // Remove the signerInfo's `public_key` field manually from the signedTx. // Note: this method is only used for test purposes! In general, one should // use txBuilder and TxEncoder/TxDecoder to manipulate txs. var tx tx.Tx - err = val1.ClientCtx.Codec.UnmarshalJSON(signedTx.Bytes(), &tx) + err = clientCtx.Codec.UnmarshalJSON(signedTx.Bytes(), &tx) s.Require().NoError(err) tx.AuthInfo.SignerInfos[0].PublicKey = nil // Re-encode the tx again, to another file. - txJSON, err = val1.ClientCtx.Codec.MarshalJSON(&tx) + txJSON, err = clientCtx.Codec.MarshalJSON(&tx) s.Require().NoError(err) signedTxFile := testutil.WriteToNewTempFile(s.T(), string(txJSON)) defer signedTxFile.Close() s.Require().True(strings.Contains(string(txJSON), "\"public_key\":null")) // Broadcast tx, test that it shouldn't panic. - val1.ClientCtx.BroadcastMode = flags.BroadcastSync - out, err := authclitestutil.TxBroadcastExec(val1.ClientCtx, signedTxFile.Name()) + clientCtx.BroadcastMode = flags.BroadcastSync + out, err := authclitestutil.TxBroadcastExec(clientCtx, signedTxFile.Name()) s.Require().NoError(err) var res sdk.TxResponse - s.Require().NoError(val1.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res)) + s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &res)) s.Require().NotEqual(0, res.Code) } @@ -1380,46 +1387,46 @@ func (s *E2ETestSuite) TestTxWithoutPublicKey() { // transaction to the blockchain. func (s *E2ETestSuite) TestSignWithMultiSignersAminoJSON() { require := s.Require() - val0, val1 := s.network.Validators[0], s.network.Validators[1] - val0Coin := sdk.NewCoin(fmt.Sprintf("%stoken", val0.Moniker), math.NewInt(10)) - val1Coin := sdk.NewCoin(fmt.Sprintf("%stoken", val1.Moniker), math.NewInt(10)) + val0, val1 := s.network.GetValidators()[0], s.network.GetValidators()[1] + val0Coin := sdk.NewCoin(fmt.Sprintf("%stoken", val0.GetMoniker()), math.NewInt(10)) + val1Coin := sdk.NewCoin(fmt.Sprintf("%stoken", val1.GetMoniker()), math.NewInt(10)) _, _, addr1 := testdata.KeyTestPubAddr() // Creating a tx with 2 msgs from 2 signers: val0 and val1. // The validators need to sign with SIGN_MODE_LEGACY_AMINO_JSON, // because DIRECT doesn't support multi signers via the CLI. // Since we use amino, we don't need to pre-populate signer_infos. - txBuilder := val0.ClientCtx.TxConfig.NewTxBuilder() + txBuilder := val0.GetClientCtx().TxConfig.NewTxBuilder() err := txBuilder.SetMsgs( - banktypes.NewMsgSend(val0.Address, addr1, sdk.NewCoins(val0Coin)), - banktypes.NewMsgSend(val1.Address, addr1, sdk.NewCoins(val1Coin)), + banktypes.NewMsgSend(val0.GetAddress(), addr1, sdk.NewCoins(val0Coin)), + banktypes.NewMsgSend(val1.GetAddress(), addr1, sdk.NewCoins(val1Coin)), ) require.NoError(err) txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)))) txBuilder.SetGasLimit(testdata.NewTestGasLimit() * 2) signers, err := txBuilder.GetTx().GetSigners() require.NoError(err) - require.Equal([][]byte{val0.Address, val1.Address}, signers) + require.Equal([][]byte{val0.GetAddress(), val1.GetAddress()}, signers) // Write the unsigned tx into a file. - txJSON, err := val0.ClientCtx.TxConfig.TxJSONEncoder()(txBuilder.GetTx()) + txJSON, err := val0.GetClientCtx().TxConfig.TxJSONEncoder()(txBuilder.GetTx()) require.NoError(err) unsignedTxFile := testutil.WriteToNewTempFile(s.T(), string(txJSON)) defer unsignedTxFile.Close() // Let val0 sign first the file with the unsignedTx. - signedByVal0, err := authclitestutil.TxSignExec(val0.ClientCtx, val0.Address, unsignedTxFile.Name(), "--overwrite", "--sign-mode=amino-json") + signedByVal0, err := authclitestutil.TxSignExec(val0.GetClientCtx(), val0.GetAddress(), unsignedTxFile.Name(), "--overwrite", "--sign-mode=amino-json") require.NoError(err) signedByVal0File := testutil.WriteToNewTempFile(s.T(), signedByVal0.String()) defer signedByVal0File.Close() // Then let val1 sign the file with signedByVal0. - val1AccNum, val1Seq, err := val0.ClientCtx.AccountRetriever.GetAccountNumberSequence(val0.ClientCtx, val1.Address) + val1AccNum, val1Seq, err := val0.GetClientCtx().AccountRetriever.GetAccountNumberSequence(val0.GetClientCtx(), val1.GetAddress()) require.NoError(err) signedTx, err := authclitestutil.TxSignExec( - val1.ClientCtx, - val1.Address, + val1.GetClientCtx(), + val1.GetAddress(), signedByVal0File.Name(), "--offline", fmt.Sprintf("--account-number=%d", val1AccNum), @@ -1431,7 +1438,7 @@ func (s *E2ETestSuite) TestSignWithMultiSignersAminoJSON() { defer signedTxFile.Close() res, err := authclitestutil.TxBroadcastExec( - val0.ClientCtx, + val0.GetClientCtx(), signedTxFile.Name(), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), ) @@ -1439,22 +1446,22 @@ func (s *E2ETestSuite) TestSignWithMultiSignersAminoJSON() { require.NoError(s.network.WaitForNextBlock()) var txRes sdk.TxResponse - require.NoError(val0.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &txRes)) + require.NoError(val0.GetClientCtx().Codec.UnmarshalJSON(res.Bytes(), &txRes)) require.Equal(uint32(0), txRes.Code, txRes.RawLog) // Make sure the addr1's balance got funded. - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val0.APIAddress, addr1)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", val0.GetAPIAddress(), addr1)) s.Require().NoError(err) var queryRes banktypes.QueryAllBalancesResponse - err = val0.ClientCtx.Codec.UnmarshalJSON(resp, &queryRes) + err = val0.GetClientCtx().Codec.UnmarshalJSON(resp, &queryRes) require.NoError(err) require.Equal(sdk.NewCoins(val0Coin, val1Coin), queryRes.Balances) } func (s *E2ETestSuite) TestAuxSigner() { require := s.Require() - val := s.network.Validators[0] - val0Coin := sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)) + val := s.network.GetValidators()[0] + val0Coin := sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)) testCases := []struct { name string @@ -1491,8 +1498,8 @@ func (s *E2ETestSuite) TestAuxSigner() { tc := tc s.Run(tc.name, func() { _, err := govtestutil.MsgSubmitLegacyProposal( - val.ClientCtx, - val.Address.String(), + val.GetClientCtx(), + val.GetAddress().String(), "test", "test desc", govtypes.ProposalTypeText, @@ -1512,19 +1519,19 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { s.T().Skip() require := s.Require() - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - kb := s.network.Validators[0].ClientCtx.Keyring + kb := s.network.GetValidators()[0].GetClientCtx().Keyring acc, _, err := kb.NewMnemonic("tipperAccount", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) require.NoError(err) tipper, err := acc.GetAddress() require.NoError(err) - tipperInitialBal := sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10000)) + tipperInitialBal := sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10000)) - feePayer := val.Address + feePayer := val.GetAddress() fee := sdk.NewCoin(s.cfg.BondDenom, math.NewInt(1000)) - tip := sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(1000)) + tip := sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(1000)) require.NoError(s.network.WaitForNextBlock()) _, err = s.createBankMsg( @@ -1536,7 +1543,7 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { require.NoError(err) require.NoError(s.network.WaitForNextBlock()) - bal := s.getBalances(val.ClientCtx, tipper, tip.Denom) + bal := s.getBalances(val.GetClientCtx(), tipper, tip.Denom) require.True(bal.Equal(tipperInitialBal.Amount)) testCases := []struct { @@ -1608,7 +1615,7 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { name: "--tip flag unset: no error", tipper: tipper, feePayer: feePayer, - tip: sdk.Coin{Denom: fmt.Sprintf("%stoken", val.Moniker), Amount: math.NewInt(0)}, + tip: sdk.Coin{Denom: fmt.Sprintf("%stoken", val.GetMoniker()), Amount: math.NewInt(0)}, tipperArgs: []string{ fmt.Sprintf("--%s=%s", flags.FlagSignMode, flags.SignModeDirectAux), fmt.Sprintf("--%s=true", flags.FlagAux), @@ -1679,7 +1686,7 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { name: "wrong denom in tip: error", tipper: tipper, feePayer: feePayer, - tip: sdk.Coin{Denom: fmt.Sprintf("%stoken", val.Moniker), Amount: math.NewInt(0)}, + tip: sdk.Coin{Denom: fmt.Sprintf("%stoken", val.GetMoniker()), Amount: math.NewInt(0)}, tipperArgs: []string{ fmt.Sprintf("--%s=%s", flags.FlagTip, "1000wrongDenom"), fmt.Sprintf("--%s=%s", flags.FlagSignMode, flags.SignModeDirectAux), @@ -1698,7 +1705,7 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { name: "insufficient fees: error", tipper: tipper, feePayer: feePayer, - tip: sdk.Coin{Denom: fmt.Sprintf("%stoken", val.Moniker), Amount: math.NewInt(0)}, + tip: sdk.Coin{Denom: fmt.Sprintf("%stoken", val.GetMoniker()), Amount: math.NewInt(0)}, tipperArgs: []string{ fmt.Sprintf("--%s=%s", flags.FlagTip, tip), fmt.Sprintf("--%s=%s", flags.FlagSignMode, flags.SignModeDirectAux), @@ -1718,7 +1725,7 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { tc := tc s.Run(tc.name, func() { res, err := govtestutil.MsgSubmitLegacyProposal( - val.ClientCtx, + val.GetClientCtx(), tipper.String(), "test", "test desc", @@ -1743,7 +1750,7 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { require.NoError(err) var txRes sdk.TxResponse - require.NoError(val.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &txRes)) + require.NoError(val.GetClientCtx().Codec.UnmarshalJSON(res.Bytes(), &txRes)) require.Contains(txRes.RawLog, tc.errMsg) @@ -1751,12 +1758,12 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { require.NoError(err) var txRes sdk.TxResponse - require.NoError(val.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &txRes)) + require.NoError(val.GetClientCtx().Codec.UnmarshalJSON(res.Bytes(), &txRes)) require.Equal(uint32(0), txRes.Code) require.NotNil(int64(0), txRes.Height) - bal = s.getBalances(val.ClientCtx, tipper, tc.tip.Denom) + bal = s.getBalances(val.GetClientCtx(), tipper, tc.tip.Denom) tipperInitialBal = tipperInitialBal.Sub(tc.tip) require.True(bal.Equal(tipperInitialBal.Amount)) } @@ -1765,14 +1772,14 @@ func (s *E2ETestSuite) TestAuxToFeeWithTips() { } } -func (s *E2ETestSuite) createBankMsg(val *network.Validator, toAddr sdk.AccAddress, amount sdk.Coins, config clitestutil.TestTxConfig) (testutil.BufferWriter, error) { +func (s *E2ETestSuite) createBankMsg(val network.ValidatorI, toAddr sdk.AccAddress, amount sdk.Coins, config clitestutil.TestTxConfig) (testutil.BufferWriter, error) { msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), ToAddress: toAddr.String(), Amount: amount, } - return clitestutil.SubmitTestTx(val.ClientCtx, msgSend, val.Address, config) + return clitestutil.SubmitTestTx(val.GetClientCtx(), msgSend, val.GetAddress(), config) } func (s *E2ETestSuite) getBalances(clientCtx client.Context, addr sdk.AccAddress, denom string) math.Int { diff --git a/tests/e2e/authz/grpc.go b/tests/e2e/authz/grpc.go index d2b71eec0b..e8b9c3487e 100644 --- a/tests/e2e/authz/grpc.go +++ b/tests/e2e/authz/grpc.go @@ -16,9 +16,9 @@ import ( ) func (s *E2ETestSuite) TestQueryGrantGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[1] - grantsURL := val.APIAddress + "/cosmos/authz/v1beta1/grants?granter=%s&grantee=%s&msg_type_url=%s" + grantsURL := val.GetAPIAddress() + "/cosmos/authz/v1beta1/grants?granter=%s&grantee=%s&msg_type_url=%s" testCases := []struct { name string url string @@ -33,7 +33,7 @@ func (s *E2ETestSuite) TestQueryGrantGRPC() { }, { "fail invalid grantee address", - fmt.Sprintf(grantsURL, val.Address.String(), "invalid_grantee", typeMsgSend), + fmt.Sprintf(grantsURL, val.GetAddress().String(), "invalid_grantee", typeMsgSend), true, "decoding bech32 failed: invalid separator index -1: invalid request", }, @@ -45,19 +45,19 @@ func (s *E2ETestSuite) TestQueryGrantGRPC() { }, { "fail with empty grantee", - fmt.Sprintf(grantsURL, val.Address.String(), "", typeMsgSend), + fmt.Sprintf(grantsURL, val.GetAddress().String(), "", typeMsgSend), true, "empty address string is not allowed: invalid request", }, { "fail invalid msg-type", - fmt.Sprintf(grantsURL, val.Address.String(), grantee.String(), "invalidMsg"), + fmt.Sprintf(grantsURL, val.GetAddress().String(), grantee.String(), "invalidMsg"), true, "authorization not found for invalidMsg type", }, { "valid query", - fmt.Sprintf(grantsURL, val.Address.String(), grantee.String(), typeMsgSend), + fmt.Sprintf(grantsURL, val.GetAddress().String(), grantee.String(), typeMsgSend), false, "", }, @@ -71,10 +71,10 @@ func (s *E2ETestSuite) TestQueryGrantGRPC() { require.Contains(string(resp), tc.errorMsg) } else { var g authz.QueryGrantsResponse - err := val.ClientCtx.Codec.UnmarshalJSON(resp, &g) + err := val.GetClientCtx().Codec.UnmarshalJSON(resp, &g) require.NoError(err) require.Len(g.Grants, 1) - err = g.Grants[0].UnpackInterfaces(val.ClientCtx.InterfaceRegistry) + err = g.Grants[0].UnpackInterfaces(val.GetClientCtx().InterfaceRegistry) require.NoError(err) auth, err := g.Grants[0].GetAuthorization() require.NoError(err) @@ -85,9 +85,9 @@ func (s *E2ETestSuite) TestQueryGrantGRPC() { } func (s *E2ETestSuite) TestQueryGrantsGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[1] - grantsURL := val.APIAddress + "/cosmos/authz/v1beta1/grants?granter=%s&grantee=%s" + grantsURL := val.GetAPIAddress() + "/cosmos/authz/v1beta1/grants?granter=%s&grantee=%s" testCases := []struct { name string url string @@ -98,7 +98,7 @@ func (s *E2ETestSuite) TestQueryGrantsGRPC() { }{ { "valid query: expect single grant", - fmt.Sprintf(grantsURL, val.Address.String(), grantee.String()), + fmt.Sprintf(grantsURL, val.GetAddress().String(), grantee.String()), false, "", func() {}, @@ -108,14 +108,14 @@ func (s *E2ETestSuite) TestQueryGrantsGRPC() { }, { "valid query: expect two grants", - fmt.Sprintf(grantsURL, val.Address.String(), grantee.String()), + fmt.Sprintf(grantsURL, val.GetAddress().String(), grantee.String()), false, "", func() { - _, err := authzclitestutil.CreateGrant(val.ClientCtx, []string{ + _, err := authzclitestutil.CreateGrant(val.GetClientCtx(), []string{ grantee.String(), "generic", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", cli.FlagMsgType, typeMsgVote), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), @@ -131,7 +131,7 @@ func (s *E2ETestSuite) TestQueryGrantsGRPC() { }, { "valid query: expect single grant with pagination", - fmt.Sprintf(grantsURL+"&pagination.limit=1", val.Address.String(), grantee.String()), + fmt.Sprintf(grantsURL+"&pagination.limit=1", val.GetAddress().String(), grantee.String()), false, "", func() {}, @@ -141,7 +141,7 @@ func (s *E2ETestSuite) TestQueryGrantsGRPC() { }, { "valid query: expect two grants with pagination", - fmt.Sprintf(grantsURL+"&pagination.limit=2", val.Address.String(), grantee.String()), + fmt.Sprintf(grantsURL+"&pagination.limit=2", val.GetAddress().String(), grantee.String()), false, "", func() {}, @@ -161,7 +161,7 @@ func (s *E2ETestSuite) TestQueryGrantsGRPC() { s.Require().Contains(string(resp), tc.errMsg) } else { var authorizations authz.QueryGrantsResponse - err := val.ClientCtx.Codec.UnmarshalJSON(resp, &authorizations) + err := val.GetClientCtx().Codec.UnmarshalJSON(resp, &authorizations) s.Require().NoError(err) tc.postRun(&authorizations) } @@ -170,7 +170,7 @@ func (s *E2ETestSuite) TestQueryGrantsGRPC() { } func (s *E2ETestSuite) TestQueryGranterGrantsGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[1] require := s.Require() @@ -183,21 +183,21 @@ func (s *E2ETestSuite) TestQueryGranterGrantsGRPC() { }{ { "invalid account address", - fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.APIAddress, "invalid address"), + fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.GetAPIAddress(), "invalid address"), true, "decoding bech32 failed", 0, }, { "no authorizations found", - fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.APIAddress, grantee.String()), + fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.GetAPIAddress(), grantee.String()), false, "", 0, }, { "valid query", - fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.APIAddress, val.Address.String()), + fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/granter/%s", val.GetAPIAddress(), val.GetAddress().String()), false, "", 6, @@ -212,7 +212,7 @@ func (s *E2ETestSuite) TestQueryGranterGrantsGRPC() { require.Contains(string(resp), tc.errMsg) } else { var authorizations authz.QueryGranterGrantsResponse - err := val.ClientCtx.Codec.UnmarshalJSON(resp, &authorizations) + err := val.GetClientCtx().Codec.UnmarshalJSON(resp, &authorizations) require.NoError(err) require.Len(authorizations.Grants, tc.numItems) } @@ -221,7 +221,7 @@ func (s *E2ETestSuite) TestQueryGranterGrantsGRPC() { } func (s *E2ETestSuite) TestQueryGranteeGrantsGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[1] require := s.Require() @@ -234,21 +234,21 @@ func (s *E2ETestSuite) TestQueryGranteeGrantsGRPC() { }{ { "invalid account address", - fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.APIAddress, "invalid address"), + fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.GetAPIAddress(), "invalid address"), true, "decoding bech32 failed", 0, }, { "no authorizations found", - fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.APIAddress, val.Address.String()), + fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.GetAPIAddress(), val.GetAddress().String()), false, "", 0, }, { "valid query", - fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.APIAddress, grantee.String()), + fmt.Sprintf("%s/cosmos/authz/v1beta1/grants/grantee/%s", val.GetAPIAddress(), grantee.String()), false, "", 1, @@ -263,7 +263,7 @@ func (s *E2ETestSuite) TestQueryGranteeGrantsGRPC() { require.Contains(string(resp), tc.errMsg) } else { var authorizations authz.QueryGranteeGrantsResponse - err := val.ClientCtx.Codec.UnmarshalJSON(resp, &authorizations) + err := val.GetClientCtx().Codec.UnmarshalJSON(resp, &authorizations) require.NoError(err) require.Len(authorizations.Grants, tc.numItems) } diff --git a/tests/e2e/authz/tx.go b/tests/e2e/authz/tx.go index b247baadd0..fe3bc7131e 100644 --- a/tests/e2e/authz/tx.go +++ b/tests/e2e/authz/tx.go @@ -34,7 +34,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI grantee []sdk.AccAddress } @@ -49,7 +49,7 @@ func (s *E2ETestSuite) SetupSuite() { s.network, err = network.New(s.T(), s.T().TempDir(), s.cfg) s.Require().NoError(err) - val := s.network.Validators[0] + val := s.network.GetValidators()[0] s.grantee = make([]sdk.AccAddress, 6) // Send some funds to the new account. @@ -58,7 +58,7 @@ func (s *E2ETestSuite) SetupSuite() { s.msgSendExec(s.grantee[0]) // create a proposal with deposit - _, err = govtestutil.MsgSubmitLegacyProposal(val.ClientCtx, val.Address.String(), + _, err = govtestutil.MsgSubmitLegacyProposal(val.GetClientCtx(), val.GetAddress().String(), "Text Proposal 1", "Where is the title!?", govv1beta1.ProposalTypeText, fmt.Sprintf("--%s=%s", govcli.FlagDeposit, sdk.NewCoin(s.cfg.BondDenom, govv1.DefaultMinDepositTokens).String())) s.Require().NoError(err) @@ -70,11 +70,11 @@ func (s *E2ETestSuite) SetupSuite() { s.msgSendExec(s.grantee[1]) // grant send authorization to grantee2 - out, err := authzclitestutil.CreateGrant(val.ClientCtx, []string{ + out, err := authzclitestutil.CreateGrant(val.GetClientCtx(), []string{ s.grantee[1].String(), "send", fmt.Sprintf("--%s=100stake", cli.FlagSpendLimit), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(sdk.DefaultBondDenom, math.NewInt(10))).String()), @@ -83,18 +83,18 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) var response sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, response.TxHash, 0)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), response.TxHash, 0)) // Create new account in the keyring. s.grantee[2] = s.createAccount("grantee3") // grant send authorization to grantee3 - _, err = authzclitestutil.CreateGrant(val.ClientCtx, []string{ + _, err = authzclitestutil.CreateGrant(val.GetClientCtx(), []string{ s.grantee[2].String(), "send", fmt.Sprintf("--%s=100stake", cli.FlagSpendLimit), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(sdk.DefaultBondDenom, math.NewInt(10))).String()), @@ -111,13 +111,13 @@ func (s *E2ETestSuite) SetupSuite() { s.grantee[5] = s.createAccount("grantee6") // grant send authorization with allow list to grantee4 - out, err = authzclitestutil.CreateGrant(val.ClientCtx, + out, err = authzclitestutil.CreateGrant(val.GetClientCtx(), []string{ s.grantee[3].String(), "send", fmt.Sprintf("--%s=100stake", cli.FlagSpendLimit), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, time.Now().Add(time.Minute*time.Duration(120)).Unix()), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -127,14 +127,14 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, response.TxHash, 0)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), response.TxHash, 0)) } func (s *E2ETestSuite) createAccount(uid string) sdk.AccAddress { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] // Create new account in the keyring. - k, _, err := val.ClientCtx.Keyring.NewMnemonic(uid, keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) + k, _, err := val.GetClientCtx().Keyring.NewMnemonic(uid, keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) s.Require().NoError(err) addr, err := k.GetAddress() @@ -144,10 +144,10 @@ func (s *E2ETestSuite) createAccount(uid string) sdk.AccAddress { } func (s *E2ETestSuite) msgSendExec(grantee sdk.AccAddress) { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] // Send some funds to the new account. - from := val.Address + from := val.GetAddress() coins := sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(200))) msgSend := &bank.MsgSend{ FromAddress: from.String(), @@ -156,7 +156,7 @@ func (s *E2ETestSuite) msgSendExec(grantee sdk.AccAddress) { } out, err := clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, from, clitestutil.TestTxConfig{}, @@ -178,18 +178,18 @@ var ( ) func (s *E2ETestSuite) TestExecAuthorizationWithExpiration() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[0] tenSeconds := time.Now().Add(time.Second * time.Duration(10)).Unix() _, err := authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "generic", fmt.Sprintf("--%s=%s", cli.FlagMsgType, typeMsgVote), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, tenSeconds), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -197,7 +197,7 @@ func (s *E2ETestSuite) TestExecAuthorizationWithExpiration() { ) s.Require().NoError(err) // msg vote - voteTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.gov.v1.MsgVote","proposal_id":"1","voter":"%s","option":"VOTE_OPTION_YES"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.Address.String()) + voteTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.gov.v1.MsgVote","proposal_id":"1","voter":"%s","option":"VOTE_OPTION_YES"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.GetAddress().String()) execMsg := testutil.WriteToNewTempFile(s.T(), voteTx) defer execMsg.Close() @@ -205,7 +205,7 @@ func (s *E2ETestSuite) TestExecAuthorizationWithExpiration() { time.Sleep(12 * time.Second) cmd := cli.NewCmdExecAuthorization() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, []string{ execMsg.Name(), @@ -221,18 +221,18 @@ func (s *E2ETestSuite) TestExecAuthorizationWithExpiration() { } func (s *E2ETestSuite) TestNewExecGenericAuthorized() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[0] twoHours := time.Now().Add(time.Minute * time.Duration(120)).Unix() _, err := authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "generic", fmt.Sprintf("--%s=%s", cli.FlagMsgType, typeMsgVote), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -242,7 +242,7 @@ func (s *E2ETestSuite) TestNewExecGenericAuthorized() { s.Require().NoError(s.network.WaitForNextBlock()) // msg vote - voteTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.gov.v1.MsgVote","proposal_id":"1","voter":"%s","option":"VOTE_OPTION_YES"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.Address.String()) + voteTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.gov.v1.MsgVote","proposal_id":"1","voter":"%s","option":"VOTE_OPTION_YES"}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.GetAddress().String()) execMsg := testutil.WriteToNewTempFile(s.T(), voteTx) defer execMsg.Close() @@ -308,7 +308,7 @@ func (s *E2ETestSuite) TestNewExecGenericAuthorized() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdExecAuthorization() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -317,26 +317,26 @@ func (s *E2ETestSuite) TestNewExecGenericAuthorized() { s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), tc.respType), out.String()) txResp := tc.respType.(*sdk.TxResponse) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, txResp.TxHash, tc.expectedCode)) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), txResp.TxHash, tc.expectedCode)) } }) } } func (s *E2ETestSuite) TestNewExecGrantAuthorized() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[0] grantee1 := s.grantee[2] twoHours := time.Now().Add(time.Minute * time.Duration(120)).Unix() _, err := authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "send", - fmt.Sprintf("--%s=12%stoken", cli.FlagSpendLimit, val.Moniker), + fmt.Sprintf("--%s=12%stoken", cli.FlagSpendLimit, val.GetMoniker()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -345,9 +345,9 @@ func (s *E2ETestSuite) TestNewExecGrantAuthorized() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - from := val.Address + from := val.GetAddress() tokens := sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(12)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(12)), ) msgSend := &bank.MsgSend{ FromAddress: from.String(), @@ -355,7 +355,7 @@ func (s *E2ETestSuite) TestNewExecGrantAuthorized() { Amount: tokens, } normalGeneratedTx, err := clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, from, clitestutil.TestTxConfig{ @@ -418,7 +418,7 @@ func (s *E2ETestSuite) TestNewExecGrantAuthorized() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdExecAuthorization() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() var response sdk.TxResponse out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) @@ -433,27 +433,27 @@ func (s *E2ETestSuite) TestNewExecGrantAuthorized() { default: s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, response.TxHash, tc.expectedCode)) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), response.TxHash, tc.expectedCode)) } }) } } func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[3] allowedAddr := s.grantee[4] notAllowedAddr := s.grantee[5] twoHours := time.Now().Add(time.Minute * time.Duration(120)).Unix() _, err := authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "send", fmt.Sprintf("--%s=100stake", cli.FlagSpendLimit), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -463,7 +463,7 @@ func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - from := val.Address + from := val.GetAddress() tokens := sdk.NewCoins( sdk.NewCoin("stake", math.NewInt(12)), ) @@ -474,7 +474,7 @@ func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { } validGeneratedTx, err := clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, from, clitestutil.TestTxConfig{ @@ -491,7 +491,7 @@ func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { Amount: tokens, } invalidGeneratedTx, err := clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend1, from, clitestutil.TestTxConfig{ @@ -512,9 +512,9 @@ func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { } var response sdk.TxResponse cmd := cli.NewCmdExecAuthorization() - out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, args) + out, err := clitestutil.ExecTestCLICmd(val.GetClientCtx(), cmd, args) s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) s.Require().NoError(s.network.WaitForNextBlock()) // test sending to not allowed address @@ -525,14 +525,14 @@ func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), } - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, args) + out, err = clitestutil.ExecTestCLICmd(val.GetClientCtx(), cmd, args) s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) s.Require().NoError(s.network.WaitForNextBlock()) // query tx and check result err = s.network.RetryForBlocks(func() error { - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + out, err = clitestutil.ExecTestCLICmd(val.GetClientCtx(), authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) return err }, 3) s.Require().NoError(err) @@ -540,21 +540,21 @@ func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { } func (s *E2ETestSuite) TestExecDelegateAuthorization() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[0] twoHours := time.Now().Add(time.Minute * time.Duration(120)).Unix() _, err := authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "delegate", fmt.Sprintf("--%s=100stake", cli.FlagSpendLimit), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), - fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.ValAddress.String()), + fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.GetValAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), }, ) @@ -565,7 +565,7 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { sdk.NewCoin("stake", math.NewInt(50)), ) - delegateTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgDelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.Address.String(), val.ValAddress.String(), + delegateTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgDelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.GetAddress().String(), val.GetValAddress().String(), tokens.GetDenomByIndex(0), tokens[0].Amount) execMsg := testutil.WriteToNewTempFile(s.T(), delegateTx) defer execMsg.Close() @@ -622,7 +622,7 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdExecAuthorization() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -632,22 +632,22 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { var response sdk.TxResponse s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, response.TxHash, tc.expectedCode)) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), response.TxHash, tc.expectedCode)) } }) } // test delegate no spend-limit _, err = authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "delegate", fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), - fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.ValAddress.String()), + fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.GetValAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), }, ) @@ -658,7 +658,7 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { sdk.NewCoin("stake", math.NewInt(50)), ) - delegateTx = fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgDelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.Address.String(), val.ValAddress.String(), + delegateTx = fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgDelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.GetAddress().String(), val.GetValAddress().String(), tokens.GetDenomByIndex(0), tokens[0].Amount) execMsg = testutil.WriteToNewTempFile(s.T(), delegateTx) defer execMsg.Close() @@ -689,7 +689,7 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdExecAuthorization() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -699,23 +699,23 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { var response sdk.TxResponse s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, response.TxHash, tc.expectedCode)) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), response.TxHash, tc.expectedCode)) } }) } // test delegating to denied validator _, err = authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "delegate", fmt.Sprintf("--%s=100stake", cli.FlagSpendLimit), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), - fmt.Sprintf("--%s=%s", cli.FlagDenyValidators, val.ValAddress.String()), + fmt.Sprintf("--%s=%s", cli.FlagDenyValidators, val.GetValAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), }, ) @@ -730,39 +730,39 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), } cmd := cli.NewCmdExecAuthorization() - out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, args) + out, err := clitestutil.ExecTestCLICmd(val.GetClientCtx(), cmd, args) s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) var response sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) // query tx and check result err = s.network.RetryForBlocks(func() error { - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + out, err = clitestutil.ExecTestCLICmd(val.GetClientCtx(), authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) return err }, 3) s.Require().NoError(err) - s.Contains(out.String(), fmt.Sprintf("cannot delegate/undelegate to %s validator", val.ValAddress.String())) + s.Contains(out.String(), fmt.Sprintf("cannot delegate/undelegate to %s validator", val.GetValAddress().String())) } func (s *E2ETestSuite) TestExecUndelegateAuthorization() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] grantee := s.grantee[0] twoHours := time.Now().Add(time.Minute * time.Duration(120)).Unix() // granting undelegate msg authorization _, err := authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "unbond", fmt.Sprintf("--%s=100stake", cli.FlagSpendLimit), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), - fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.ValAddress.String()), + fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.GetValAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), }, ) @@ -771,12 +771,12 @@ func (s *E2ETestSuite) TestExecUndelegateAuthorization() { // delegating stakes to validator msg := &stakingtypes.MsgDelegate{ - DelegatorAddress: val.Address.String(), - ValidatorAddress: val.ValAddress.String(), + DelegatorAddress: val.GetAddress().String(), + ValidatorAddress: val.GetValAddress().String(), Amount: sdk.NewCoin("stake", math.NewInt(100)), } - _, err = clitestutil.SubmitTestTx(val.ClientCtx, msg, val.Address, clitestutil.TestTxConfig{}) + _, err = clitestutil.SubmitTestTx(val.GetClientCtx(), msg, val.GetAddress(), clitestutil.TestTxConfig{}) s.Require().NoError(err) @@ -784,7 +784,7 @@ func (s *E2ETestSuite) TestExecUndelegateAuthorization() { sdk.NewCoin("stake", math.NewInt(50)), ) - undelegateTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgUndelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.Address.String(), val.ValAddress.String(), + undelegateTx := fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgUndelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.GetAddress().String(), val.GetValAddress().String(), tokens.GetDenomByIndex(0), tokens[0].Amount) execMsg := testutil.WriteToNewTempFile(s.T(), undelegateTx) defer execMsg.Close() @@ -844,7 +844,7 @@ func (s *E2ETestSuite) TestExecUndelegateAuthorization() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdExecAuthorization() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -854,22 +854,22 @@ func (s *E2ETestSuite) TestExecUndelegateAuthorization() { var response sdk.TxResponse s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, response.TxHash, tc.expectedCode)) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), response.TxHash, tc.expectedCode)) } }) } // grant undelegate authorization without limit _, err = authzclitestutil.CreateGrant( - val.ClientCtx, + val.GetClientCtx(), []string{ grantee.String(), "unbond", fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--%s=%d", cli.FlagExpiration, twoHours), - fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.ValAddress.String()), + fmt.Sprintf("--%s=%s", cli.FlagAllowedValidators, val.GetValAddress().String()), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), }, ) @@ -880,7 +880,7 @@ func (s *E2ETestSuite) TestExecUndelegateAuthorization() { sdk.NewCoin("stake", math.NewInt(50)), ) - undelegateTx = fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgUndelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.Address.String(), val.ValAddress.String(), + undelegateTx = fmt.Sprintf(`{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgUndelegate","delegator_address":"%s","validator_address":"%s","amount":{"denom":"%s","amount":"%s"}}],"memo":"","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""}},"signatures":[]}`, val.GetAddress().String(), val.GetValAddress().String(), tokens.GetDenomByIndex(0), tokens[0].Amount) execMsg = testutil.WriteToNewTempFile(s.T(), undelegateTx) defer execMsg.Close() @@ -912,7 +912,7 @@ func (s *E2ETestSuite) TestExecUndelegateAuthorization() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdExecAuthorization() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -922,7 +922,7 @@ func (s *E2ETestSuite) TestExecUndelegateAuthorization() { var response sdk.TxResponse s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, response.TxHash, tc.expectedCode)) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), response.TxHash, tc.expectedCode)) } }) } diff --git a/tests/e2e/bank/grpc.go b/tests/e2e/bank/grpc.go index 1035eedc48..435778eae8 100644 --- a/tests/e2e/bank/grpc.go +++ b/tests/e2e/bank/grpc.go @@ -15,8 +15,8 @@ import ( ) func (s *E2ETestSuite) TestTotalSupplyGRPCHandler() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -34,7 +34,7 @@ func (s *E2ETestSuite) TestTotalSupplyGRPCHandler() { &types.QueryTotalSupplyResponse{}, &types.QueryTotalSupplyResponse{ Supply: sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), s.cfg.AccountTokens), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), s.cfg.AccountTokens), sdk.NewCoin(s.cfg.BondDenom, s.cfg.StakingTokens.Add(math.NewInt(10))), ), Pagination: &query.PageResponse{ @@ -94,15 +94,15 @@ func (s *E2ETestSuite) TestTotalSupplyGRPCHandler() { resp, err := testutil.GetRequestWithHeaders(tc.url, tc.headers) s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) }) } } func (s *E2ETestSuite) TestDenomMetadataGRPCHandler() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -216,9 +216,9 @@ func (s *E2ETestSuite) TestDenomMetadataGRPCHandler() { s.Require().NoError(err) if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) } }) @@ -226,8 +226,8 @@ func (s *E2ETestSuite) TestDenomMetadataGRPCHandler() { } func (s *E2ETestSuite) TestBalancesGRPCHandler() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -237,11 +237,11 @@ func (s *E2ETestSuite) TestBalancesGRPCHandler() { }{ { "gRPC total account balance", - fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", baseURL, val.Address.String()), + fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s", baseURL, val.GetAddress().String()), &types.QueryAllBalancesResponse{}, &types.QueryAllBalancesResponse{ Balances: sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), s.cfg.AccountTokens), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), s.cfg.AccountTokens), sdk.NewCoin(s.cfg.BondDenom, s.cfg.StakingTokens.Sub(s.cfg.BondedTokens)), ), Pagination: &query.PageResponse{ @@ -251,7 +251,7 @@ func (s *E2ETestSuite) TestBalancesGRPCHandler() { }, { "gPRC account balance of a denom", - fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s/by_denom?denom=%s", baseURL, val.Address.String(), s.cfg.BondDenom), + fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s/by_denom?denom=%s", baseURL, val.GetAddress().String(), s.cfg.BondDenom), &types.QueryBalanceResponse{}, &types.QueryBalanceResponse{ Balance: &sdk.Coin{ @@ -262,7 +262,7 @@ func (s *E2ETestSuite) TestBalancesGRPCHandler() { }, { "gPRC account balance of a bogus denom", - fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s/by_denom?denom=foobar", baseURL, val.Address.String()), + fmt.Sprintf("%s/cosmos/bank/v1beta1/balances/%s/by_denom?denom=foobar", baseURL, val.GetAddress().String()), &types.QueryBalanceResponse{}, &types.QueryBalanceResponse{ Balance: &sdk.Coin{ @@ -279,7 +279,7 @@ func (s *E2ETestSuite) TestBalancesGRPCHandler() { resp, err := testutil.GetRequest(tc.url) s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) }) } diff --git a/tests/e2e/bank/suite.go b/tests/e2e/bank/suite.go index b8a842a4a0..2a2ebdaa1c 100644 --- a/tests/e2e/bank/suite.go +++ b/tests/e2e/bank/suite.go @@ -23,7 +23,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func NewE2ETestSuite(cfg network.Config) *E2ETestSuite { @@ -93,12 +93,12 @@ func (s *E2ETestSuite) TearDownSuite() { } func (s *E2ETestSuite) TestNewSendTxCmdGenOnly() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - from := val.Address - to := val.Address + from := val.GetAddress() + to := val.GetAddress() amount := sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ) @@ -109,7 +109,7 @@ func (s *E2ETestSuite) TestNewSendTxCmdGenOnly() { } bz, err := clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, from, clitestutil.TestTxConfig{ @@ -124,12 +124,12 @@ func (s *E2ETestSuite) TestNewSendTxCmdGenOnly() { } func (s *E2ETestSuite) TestNewSendTxCmdDryRun() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - from := val.Address - to := val.Address + from := val.GetAddress() + to := val.GetAddress() amount := sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ) @@ -140,7 +140,7 @@ func (s *E2ETestSuite) TestNewSendTxCmdDryRun() { } out, err := clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, from, clitestutil.TestTxConfig{ @@ -153,7 +153,7 @@ func (s *E2ETestSuite) TestNewSendTxCmdDryRun() { } func (s *E2ETestSuite) TestNewSendTxCmd() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -166,10 +166,10 @@ func (s *E2ETestSuite) TestNewSendTxCmd() { }{ { "valid transaction", - val.Address, - val.Address, + val.GetAddress(), + val.GetAddress(), sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), clitestutil.TestTxConfig{ @@ -179,10 +179,10 @@ func (s *E2ETestSuite) TestNewSendTxCmd() { }, { "not enough fees", - val.Address, - val.Address, + val.GetAddress(), + val.GetAddress(), sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), clitestutil.TestTxConfig{ @@ -195,10 +195,10 @@ func (s *E2ETestSuite) TestNewSendTxCmd() { }, { "not enough gas", - val.Address, - val.Address, + val.GetAddress(), + val.GetAddress(), sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), clitestutil.TestTxConfig{ @@ -216,14 +216,14 @@ func (s *E2ETestSuite) TestNewSendTxCmd() { s.Require().NoError(s.network.WaitForNextBlock()) s.Run(tc.name, func() { - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() msgSend := types.MsgSend{ FromAddress: tc.from.String(), ToAddress: tc.to.String(), Amount: tc.amount, } - bz, err := clitestutil.SubmitTestTx(val.ClientCtx, &msgSend, tc.from, tc.config) + bz, err := clitestutil.SubmitTestTx(val.GetClientCtx(), &msgSend, tc.from, tc.config) if tc.expectErr { s.Require().Error(err) } else { @@ -238,7 +238,7 @@ func (s *E2ETestSuite) TestNewSendTxCmd() { } func (s *E2ETestSuite) TestNewMultiSendTxCmd() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testAddr := sdk.AccAddress("cosmos139f7kncmglres2nf3h4hc4tade85ekfr8sulz5") testCases := []struct { @@ -253,10 +253,10 @@ func (s *E2ETestSuite) TestNewMultiSendTxCmd() { }{ { "valid transaction", - val.Address, - []sdk.AccAddress{val.Address, testAddr}, + val.GetAddress(), + []sdk.AccAddress{val.GetAddress(), testAddr}, sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), []string{ @@ -268,10 +268,10 @@ func (s *E2ETestSuite) TestNewMultiSendTxCmd() { }, { "valid split transaction", - val.Address, - []sdk.AccAddress{val.Address, testAddr}, + val.GetAddress(), + []sdk.AccAddress{val.GetAddress(), testAddr}, sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), []string{ @@ -284,10 +284,10 @@ func (s *E2ETestSuite) TestNewMultiSendTxCmd() { }, { "not enough arguments", - val.Address, - []sdk.AccAddress{val.Address}, + val.GetAddress(), + []sdk.AccAddress{val.GetAddress()}, sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), []string{ @@ -299,10 +299,10 @@ func (s *E2ETestSuite) TestNewMultiSendTxCmd() { }, { "chain-id shouldn't be used with offline and generate-only flags", - val.Address, - []sdk.AccAddress{val.Address, testAddr}, + val.GetAddress(), + []sdk.AccAddress{val.GetAddress(), testAddr}, sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), []string{ @@ -316,10 +316,10 @@ func (s *E2ETestSuite) TestNewMultiSendTxCmd() { }, { "not enough fees", - val.Address, - []sdk.AccAddress{val.Address, testAddr}, + val.GetAddress(), + []sdk.AccAddress{val.GetAddress(), testAddr}, sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), []string{ @@ -333,10 +333,10 @@ func (s *E2ETestSuite) TestNewMultiSendTxCmd() { }, { "not enough gas", - val.Address, - []sdk.AccAddress{val.Address, testAddr}, + val.GetAddress(), + []sdk.AccAddress{val.GetAddress(), testAddr}, sdk.NewCoins( - sdk.NewCoin(fmt.Sprintf("%stoken", val.Moniker), math.NewInt(10)), + sdk.NewCoin(fmt.Sprintf("%stoken", val.GetMoniker()), math.NewInt(10)), sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)), ), []string{ @@ -356,7 +356,7 @@ func (s *E2ETestSuite) TestNewMultiSendTxCmd() { s.Require().NoError(s.network.WaitForNextBlock()) s.Run(tc.name, func() { - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() bz, err := MsgMultiSendExec(clientCtx, tc.from, tc.to, tc.amount, tc.args...) if tc.expectErr { diff --git a/tests/e2e/client/grpc/cmtservice/service_test.go b/tests/e2e/client/grpc/cmtservice/service_test.go index b2fbfb2ced..a08c77ce4d 100644 --- a/tests/e2e/client/grpc/cmtservice/service_test.go +++ b/tests/e2e/client/grpc/cmtservice/service_test.go @@ -26,7 +26,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI queryClient cmtservice.ServiceClient } @@ -47,7 +47,7 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(s.network.WaitForNextBlock()) - s.queryClient = cmtservice.NewServiceClient(s.network.Validators[0].ClientCtx) + s.queryClient = cmtservice.NewServiceClient(s.network.GetValidators()[0].GetClientCtx()) } func (s *E2ETestSuite) TearDownSuite() { @@ -56,58 +56,58 @@ func (s *E2ETestSuite) TearDownSuite() { } func (s *E2ETestSuite) TestQueryNodeInfo() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] res, err := s.queryClient.GetNodeInfo(context.Background(), &cmtservice.GetNodeInfoRequest{}) s.Require().NoError(err) s.Require().Equal(res.ApplicationVersion.AppName, version.NewInfo().AppName) - restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/node_info", val.APIAddress)) + restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/node_info", val.GetAPIAddress())) s.Require().NoError(err) var getInfoRes cmtservice.GetNodeInfoResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(restRes, &getInfoRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(restRes, &getInfoRes)) s.Require().Equal(getInfoRes.ApplicationVersion.AppName, version.NewInfo().AppName) } func (s *E2ETestSuite) TestQuerySyncing() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] _, err := s.queryClient.GetSyncing(context.Background(), &cmtservice.GetSyncingRequest{}) s.Require().NoError(err) - restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/syncing", val.APIAddress)) + restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/syncing", val.GetAPIAddress())) s.Require().NoError(err) var syncingRes cmtservice.GetSyncingResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(restRes, &syncingRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(restRes, &syncingRes)) } func (s *E2ETestSuite) TestQueryLatestBlock() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] _, err := s.queryClient.GetLatestBlock(context.Background(), &cmtservice.GetLatestBlockRequest{}) s.Require().NoError(err) - restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/blocks/latest", val.APIAddress)) + restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/blocks/latest", val.GetAPIAddress())) s.Require().NoError(err) var blockInfoRes cmtservice.GetLatestBlockResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(restRes, &blockInfoRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(restRes, &blockInfoRes)) s.Require().Contains(blockInfoRes.SdkBlock.Header.ProposerAddress, "cosmosvalcons") } func (s *E2ETestSuite) TestQueryBlockByHeight() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] _, err := s.queryClient.GetBlockByHeight(context.Background(), &cmtservice.GetBlockByHeightRequest{Height: 1}) s.Require().NoError(err) - restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/blocks/%d", val.APIAddress, 1)) + restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/blocks/%d", val.GetAPIAddress(), 1)) s.Require().NoError(err) var blockInfoRes cmtservice.GetBlockByHeightResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(restRes, &blockInfoRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(restRes, &blockInfoRes)) s.Require().Contains(blockInfoRes.SdkBlock.Header.ProposerAddress, "cosmosvalcons") } func (s *E2ETestSuite) TestQueryLatestValidatorSet() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] // nil pagination res, err := s.queryClient.GetLatestValidatorSet(context.Background(), &cmtservice.GetLatestValidatorSetRequest{ @@ -117,7 +117,7 @@ func (s *E2ETestSuite) TestQueryLatestValidatorSet() { s.Require().Equal(1, len(res.Validators)) content, ok := res.Validators[0].PubKey.GetCachedValue().(cryptotypes.PubKey) s.Require().Equal(true, ok) - s.Require().Equal(content, val.PubKey) + s.Require().Equal(content, val.GetPubKey()) // with pagination _, err = s.queryClient.GetLatestValidatorSet(context.Background(), &cmtservice.GetLatestValidatorSetRequest{Pagination: &qtypes.PageRequest{ @@ -127,22 +127,22 @@ func (s *E2ETestSuite) TestQueryLatestValidatorSet() { s.Require().NoError(err) // rest request without pagination - _, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest", val.APIAddress)) + _, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest", val.GetAPIAddress())) s.Require().NoError(err) // rest request with pagination - restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest?pagination.offset=%d&pagination.limit=%d", val.APIAddress, 0, 1)) + restRes, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest?pagination.offset=%d&pagination.limit=%d", val.GetAPIAddress(), 0, 1)) s.Require().NoError(err) var validatorSetRes cmtservice.GetLatestValidatorSetResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(restRes, &validatorSetRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(restRes, &validatorSetRes)) s.Require().Equal(1, len(validatorSetRes.Validators)) - anyPub, err := codectypes.NewAnyWithValue(val.PubKey) + anyPub, err := codectypes.NewAnyWithValue(val.GetPubKey()) s.Require().NoError(err) s.Require().Equal(validatorSetRes.Validators[0].PubKey, anyPub) } func (s *E2ETestSuite) TestLatestValidatorSet_GRPC() { - vals := s.network.Validators + vals := s.network.GetValidators() testCases := []struct { name string req *cmtservice.GetLatestValidatorSetRequest @@ -166,23 +166,23 @@ func (s *E2ETestSuite) TestLatestValidatorSet_GRPC() { s.Require().Equal(grpcRes.Pagination.Total, uint64(len(vals))) content, ok := grpcRes.Validators[0].PubKey.GetCachedValue().(cryptotypes.PubKey) s.Require().Equal(true, ok) - s.Require().Equal(content, vals[0].PubKey) + s.Require().Equal(content, vals[0].GetPubKey()) } }) } } func (s *E2ETestSuite) TestLatestValidatorSet_GRPCGateway() { - vals := s.network.Validators + vals := s.network.GetValidators() testCases := []struct { name string url string expErr bool expErrMsg string }{ - {"no pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest", vals[0].APIAddress), false, ""}, - {"pagination invalid fields", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest?pagination.offset=-1&pagination.limit=-2", vals[0].APIAddress), true, "strconv.ParseUint"}, - {"with pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest?pagination.offset=0&pagination.limit=2", vals[0].APIAddress), false, ""}, + {"no pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest", vals[0].GetAPIAddress()), false, ""}, + {"pagination invalid fields", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest?pagination.offset=-1&pagination.limit=-2", vals[0].GetAPIAddress()), true, "strconv.ParseUint"}, + {"with pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/latest?pagination.offset=0&pagination.limit=2", vals[0].GetAPIAddress()), false, ""}, } for _, tc := range testCases { tc := tc @@ -193,10 +193,10 @@ func (s *E2ETestSuite) TestLatestValidatorSet_GRPCGateway() { s.Require().Contains(string(res), tc.expErrMsg) } else { var result cmtservice.GetLatestValidatorSetResponse - err = vals[0].ClientCtx.Codec.UnmarshalJSON(res, &result) + err = vals[0].GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) s.Require().Equal(uint64(len(vals)), result.Pagination.Total) - anyPub, err := codectypes.NewAnyWithValue(vals[0].PubKey) + anyPub, err := codectypes.NewAnyWithValue(vals[0].GetPubKey()) s.Require().NoError(err) s.Require().Equal(result.Validators[0].PubKey, anyPub) } @@ -205,7 +205,7 @@ func (s *E2ETestSuite) TestLatestValidatorSet_GRPCGateway() { } func (s *E2ETestSuite) TestValidatorSetByHeight_GRPC() { - vals := s.network.Validators + vals := s.network.GetValidators() testCases := []struct { name string req *cmtservice.GetValidatorSetByHeightRequest @@ -234,17 +234,17 @@ func (s *E2ETestSuite) TestValidatorSetByHeight_GRPC() { } func (s *E2ETestSuite) TestValidatorSetByHeight_GRPCGateway() { - vals := s.network.Validators + vals := s.network.GetValidators() testCases := []struct { name string url string expErr bool expErrMsg string }{ - {"invalid height", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d", vals[0].APIAddress, -1), true, "height must be greater than 0"}, - {"no pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d", vals[0].APIAddress, 1), false, ""}, - {"pagination invalid fields", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d?pagination.offset=-1&pagination.limit=-2", vals[0].APIAddress, 1), true, "strconv.ParseUint"}, - {"with pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d?pagination.offset=0&pagination.limit=2", vals[0].APIAddress, 1), false, ""}, + {"invalid height", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d", vals[0].GetAPIAddress(), -1), true, "height must be greater than 0"}, + {"no pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d", vals[0].GetAPIAddress(), 1), false, ""}, + {"pagination invalid fields", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d?pagination.offset=-1&pagination.limit=-2", vals[0].GetAPIAddress(), 1), true, "strconv.ParseUint"}, + {"with pagination", fmt.Sprintf("%s/cosmos/base/tendermint/v1beta1/validatorsets/%d?pagination.offset=0&pagination.limit=2", vals[0].GetAPIAddress(), 1), false, ""}, } for _, tc := range testCases { tc := tc @@ -255,7 +255,7 @@ func (s *E2ETestSuite) TestValidatorSetByHeight_GRPCGateway() { s.Require().Contains(string(res), tc.expErrMsg) } else { var result cmtservice.GetValidatorSetByHeightResponse - err = vals[0].ClientCtx.Codec.UnmarshalJSON(res, &result) + err = vals[0].GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) s.Require().Equal(uint64(len(vals)), result.Pagination.Total) } diff --git a/tests/e2e/distribution/grpc_query_suite.go b/tests/e2e/distribution/grpc_query_suite.go index e1d7566c7f..6bdff1116a 100644 --- a/tests/e2e/distribution/grpc_query_suite.go +++ b/tests/e2e/distribution/grpc_query_suite.go @@ -20,7 +20,7 @@ type GRPCQueryTestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func (s *GRPCQueryTestSuite) SetupSuite() { @@ -44,8 +44,8 @@ func (s *GRPCQueryTestSuite) TearDownSuite() { } func (s *GRPCQueryTestSuite) TestQueryParamsGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -68,15 +68,15 @@ func (s *GRPCQueryTestSuite) TestQueryParamsGRPC() { resp, err := sdktestutil.GetRequest(tc.url) s.Run(tc.name, func() { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected, tc.respType) }) } } func (s *GRPCQueryTestSuite) TestQueryValidatorDistributionInfoGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -92,7 +92,7 @@ func (s *GRPCQueryTestSuite) TestQueryValidatorDistributionInfoGRPC() { }, { "gRPC request with valid validator address ", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s", baseURL, val.ValAddress.String()), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s", baseURL, val.GetValAddress().String()), false, &types.QueryValidatorDistributionInfoResponse{}, }, @@ -103,18 +103,18 @@ func (s *GRPCQueryTestSuite) TestQueryValidatorDistributionInfoGRPC() { resp, err := sdktestutil.GetRequest(tc.url) s.Run(tc.name, func() { if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } }) } } func (s *GRPCQueryTestSuite) TestQueryOutstandingRewardsGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() rewards, err := sdk.ParseDecCoins("19.6stake") s.Require().NoError(err) @@ -137,7 +137,7 @@ func (s *GRPCQueryTestSuite) TestQueryOutstandingRewardsGRPC() { }, { "gRPC request params valid address", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/outstanding_rewards", baseURL, val.ValAddress.String()), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/outstanding_rewards", baseURL, val.GetValAddress().String()), map[string]string{ grpctypes.GRPCBlockHeightHeader: "2", }, @@ -156,10 +156,10 @@ func (s *GRPCQueryTestSuite) TestQueryOutstandingRewardsGRPC() { resp, err := sdktestutil.GetRequestWithHeaders(tc.url, tc.headers) s.Run(tc.name, func() { if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) } }) @@ -167,8 +167,8 @@ func (s *GRPCQueryTestSuite) TestQueryOutstandingRewardsGRPC() { } func (s *GRPCQueryTestSuite) TestQueryValidatorCommissionGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() commission, err := sdk.ParseDecCoins("9.8stake") s.Require().NoError(err) @@ -191,7 +191,7 @@ func (s *GRPCQueryTestSuite) TestQueryValidatorCommissionGRPC() { }, { "gRPC request params valid address", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/commission", baseURL, val.ValAddress.String()), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/commission", baseURL, val.GetValAddress().String()), map[string]string{ grpctypes.GRPCBlockHeightHeader: "2", }, @@ -210,10 +210,10 @@ func (s *GRPCQueryTestSuite) TestQueryValidatorCommissionGRPC() { resp, err := sdktestutil.GetRequestWithHeaders(tc.url, tc.headers) s.Run(tc.name, func() { if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) } }) @@ -221,8 +221,8 @@ func (s *GRPCQueryTestSuite) TestQueryValidatorCommissionGRPC() { } func (s *GRPCQueryTestSuite) TestQuerySlashesGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -240,21 +240,21 @@ func (s *GRPCQueryTestSuite) TestQuerySlashesGRPC() { }, { "invalid start height", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/slashes?starting_height=%s&ending_height=%s", baseURL, val.ValAddress.String(), "-1", "3"), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/slashes?starting_height=%s&ending_height=%s", baseURL, val.GetValAddress().String(), "-1", "3"), true, &types.QueryValidatorSlashesResponse{}, nil, }, { "invalid start height", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/slashes?starting_height=%s&ending_height=%s", baseURL, val.ValAddress.String(), "1", "-3"), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/slashes?starting_height=%s&ending_height=%s", baseURL, val.GetValAddress().String(), "1", "-3"), true, &types.QueryValidatorSlashesResponse{}, nil, }, { "valid request get slashes", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/slashes?starting_height=%s&ending_height=%s", baseURL, val.ValAddress.String(), "1", "3"), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/validators/%s/slashes?starting_height=%s&ending_height=%s", baseURL, val.GetValAddress().String(), "1", "3"), false, &types.QueryValidatorSlashesResponse{}, &types.QueryValidatorSlashesResponse{ @@ -269,10 +269,10 @@ func (s *GRPCQueryTestSuite) TestQuerySlashesGRPC() { s.Run(tc.name, func() { if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) } }) @@ -280,8 +280,8 @@ func (s *GRPCQueryTestSuite) TestQuerySlashesGRPC() { } func (s *GRPCQueryTestSuite) TestQueryDelegatorRewardsGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() rewards, err := sdk.ParseDecCoins("9.8stake") s.Require().NoError(err) @@ -304,7 +304,7 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorRewardsGRPC() { }, { "valid request", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/rewards", baseURL, val.Address.String()), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/rewards", baseURL, val.GetAddress().String()), map[string]string{ grpctypes.GRPCBlockHeightHeader: "2", }, @@ -312,14 +312,14 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorRewardsGRPC() { &types.QueryDelegationTotalRewardsResponse{}, &types.QueryDelegationTotalRewardsResponse{ Rewards: []types.DelegationDelegatorReward{ - types.NewDelegationDelegatorReward(val.ValAddress.String(), rewards), + types.NewDelegationDelegatorReward(val.GetValAddress().String(), rewards), }, Total: rewards, }, }, { "wrong validator address(specific validator rewards)", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/rewards/%s", baseURL, val.Address.String(), "wrongValAddress"), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/rewards/%s", baseURL, val.GetAddress().String(), "wrongValAddress"), map[string]string{}, true, &types.QueryDelegationTotalRewardsResponse{}, @@ -327,7 +327,7 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorRewardsGRPC() { }, { "valid request(specific validator rewards)", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/rewards/%s", baseURL, val.Address.String(), val.ValAddress.String()), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/rewards/%s", baseURL, val.GetAddress().String(), val.GetValAddress().String()), map[string]string{ grpctypes.GRPCBlockHeightHeader: "2", }, @@ -345,10 +345,10 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorRewardsGRPC() { s.Run(tc.name, func() { if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) } }) @@ -356,8 +356,8 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorRewardsGRPC() { } func (s *GRPCQueryTestSuite) TestQueryDelegatorValidatorsGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -382,11 +382,11 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorValidatorsGRPC() { }, { "valid request", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/validators", baseURL, val.Address.String()), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/validators", baseURL, val.GetAddress().String()), false, &types.QueryDelegatorValidatorsResponse{}, &types.QueryDelegatorValidatorsResponse{ - Validators: []string{val.ValAddress.String()}, + Validators: []string{val.GetValAddress().String()}, }, }, } @@ -397,10 +397,10 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorValidatorsGRPC() { s.Run(tc.name, func() { if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) } }) @@ -408,8 +408,8 @@ func (s *GRPCQueryTestSuite) TestQueryDelegatorValidatorsGRPC() { } func (s *GRPCQueryTestSuite) TestQueryWithdrawAddressGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string @@ -434,11 +434,11 @@ func (s *GRPCQueryTestSuite) TestQueryWithdrawAddressGRPC() { }, { "valid request", - fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/withdraw_address", baseURL, val.Address.String()), + fmt.Sprintf("%s/cosmos/distribution/v1beta1/delegators/%s/withdraw_address", baseURL, val.GetAddress().String()), false, &types.QueryDelegatorWithdrawAddressResponse{}, &types.QueryDelegatorWithdrawAddressResponse{ - WithdrawAddress: val.Address.String(), + WithdrawAddress: val.GetAddress().String(), }, }, } @@ -449,10 +449,10 @@ func (s *GRPCQueryTestSuite) TestQueryWithdrawAddressGRPC() { s.Run(tc.name, func() { if tc.expErr { - s.Require().Error(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().Error(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) } else { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) } }) diff --git a/tests/e2e/distribution/withdraw_all_suite.go b/tests/e2e/distribution/withdraw_all_suite.go index 5fbeb5d06f..fed25e0955 100644 --- a/tests/e2e/distribution/withdraw_all_suite.go +++ b/tests/e2e/distribution/withdraw_all_suite.go @@ -24,7 +24,7 @@ type WithdrawAllTestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func (s *WithdrawAllTestSuite) SetupSuite() { @@ -50,11 +50,11 @@ func (s *WithdrawAllTestSuite) TearDownSuite() { // `NumValidators` the existing tests are leading to non-determnism so created new suite for this test. func (s *WithdrawAllTestSuite) TestNewWithdrawAllRewardsGenerateOnly() { require := s.Require() - val := s.network.Validators[0] - val1 := s.network.Validators[1] - clientCtx := val.ClientCtx + val := s.network.GetValidators()[0] + val1 := s.network.GetValidators()[1] + clientCtx := val.GetClientCtx() - info, _, err := val.ClientCtx.Keyring.NewMnemonic("newAccount", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) + info, _, err := val.GetClientCtx().Keyring.NewMnemonic("newAccount", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) require.NoError(err) pubkey, err := info.GetPubKey() @@ -63,14 +63,14 @@ func (s *WithdrawAllTestSuite) TestNewWithdrawAllRewardsGenerateOnly() { newAddr := sdk.AccAddress(pubkey.Address()) msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), ToAddress: newAddr.String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(2000))), } _, err = clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, - val.Address, + val.GetAddress(), clitestutil.TestTxConfig{}, ) @@ -80,22 +80,22 @@ func (s *WithdrawAllTestSuite) TestNewWithdrawAllRewardsGenerateOnly() { // delegate 500 tokens to validator1 msg := &stakingtypes.MsgDelegate{ DelegatorAddress: newAddr.String(), - ValidatorAddress: val.ValAddress.String(), + ValidatorAddress: val.GetValAddress().String(), Amount: sdk.NewCoin("stake", math.NewInt(500)), } - _, err = clitestutil.SubmitTestTx(val.ClientCtx, msg, newAddr, clitestutil.TestTxConfig{}) + _, err = clitestutil.SubmitTestTx(val.GetClientCtx(), msg, newAddr, clitestutil.TestTxConfig{}) require.NoError(err) require.NoError(s.network.WaitForNextBlock()) // delegate 500 tokens to validator2 msg2 := &stakingtypes.MsgDelegate{ DelegatorAddress: newAddr.String(), - ValidatorAddress: val1.ValAddress.String(), + ValidatorAddress: val1.GetValAddress().String(), Amount: sdk.NewCoin("stake", math.NewInt(500)), } - _, err = clitestutil.SubmitTestTx(val.ClientCtx, msg2, newAddr, clitestutil.TestTxConfig{}) + _, err = clitestutil.SubmitTestTx(val.GetClientCtx(), msg2, newAddr, clitestutil.TestTxConfig{}) require.NoError(err) require.NoError(s.network.WaitForNextBlock()) diff --git a/tests/e2e/gov/deposits.go b/tests/e2e/gov/deposits.go index baf3f88980..b685fa08bc 100644 --- a/tests/e2e/gov/deposits.go +++ b/tests/e2e/gov/deposits.go @@ -22,7 +22,7 @@ type DepositTestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func NewDepositTestSuite(cfg network.Config) *DepositTestSuite { @@ -37,7 +37,7 @@ func (s *DepositTestSuite) SetupSuite() { s.Require().NoError(err) } -func (s *DepositTestSuite) submitProposal(val *network.Validator, initialDeposit sdk.Coin, name string) uint64 { +func (s *DepositTestSuite) submitProposal(val network.ValidatorI, initialDeposit sdk.Coin, name string) uint64 { var exactArgs []string if !initialDeposit.IsZero() { @@ -45,8 +45,8 @@ func (s *DepositTestSuite) submitProposal(val *network.Validator, initialDeposit } _, err := govclitestutil.MsgSubmitLegacyProposal( - val.ClientCtx, - val.Address.String(), + val.GetClientCtx(), + val.GetAddress().String(), fmt.Sprintf("Text Proposal %s", name), "Where is the title!?", v1beta1.ProposalTypeText, @@ -56,7 +56,7 @@ func (s *DepositTestSuite) submitProposal(val *network.Validator, initialDeposit s.Require().NoError(s.network.WaitForNextBlock()) // query proposals, return the last's id - res, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.APIAddress)) + res, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.GetAPIAddress())) s.Require().NoError(err) var proposals v1.QueryProposalsResponse err = s.cfg.Codec.UnmarshalJSON(res, &proposals) @@ -72,7 +72,7 @@ func (s *DepositTestSuite) TearDownSuite() { } func (s *DepositTestSuite) TestQueryDepositsWithInitialDeposit() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] depositAmount := sdk.NewCoin(s.cfg.BondDenom, v1.DefaultMinDepositTokens) // submit proposal with an initial deposit @@ -93,14 +93,14 @@ func (s *DepositTestSuite) TestQueryDepositsWithInitialDeposit() { } func (s *DepositTestSuite) TestQueryProposalAfterVotingPeriod() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] depositAmount := sdk.NewCoin(s.cfg.BondDenom, v1.DefaultMinDepositTokens.Sub(math.NewInt(50))) // submit proposal with an initial deposit id := s.submitProposal(val, depositAmount, "TestQueryProposalAfterVotingPeriod") proposalID := strconv.FormatUint(id, 10) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.APIAddress)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.GetAPIAddress())) s.Require().NoError(err) var proposals v1.QueryProposalsResponse err = s.cfg.Codec.UnmarshalJSON(resp, &proposals) @@ -108,7 +108,7 @@ func (s *DepositTestSuite) TestQueryProposalAfterVotingPeriod() { s.Require().GreaterOrEqual(len(proposals.Proposals), 1) // query proposal - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.APIAddress, proposalID)) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.GetAPIAddress(), proposalID)) s.Require().NoError(err) var proposal v1.QueryProposalResponse err = s.cfg.Codec.UnmarshalJSON(resp, &proposal) @@ -118,7 +118,7 @@ func (s *DepositTestSuite) TestQueryProposalAfterVotingPeriod() { time.Sleep(25 * time.Second) // query proposal - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.APIAddress, proposalID)) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.GetAPIAddress(), proposalID)) s.Require().NoError(err) s.Require().Contains(string(resp), fmt.Sprintf("proposal %s doesn't exist", proposalID)) @@ -127,10 +127,10 @@ func (s *DepositTestSuite) TestQueryProposalAfterVotingPeriod() { s.Require().Len(deposits.Deposits, 0) } -func (s *DepositTestSuite) queryDeposits(val *network.Validator, proposalID string, exceptErr bool, message string) *v1.QueryDepositsResponse { +func (s *DepositTestSuite) queryDeposits(val network.ValidatorI, proposalID string, exceptErr bool, message string) *v1.QueryDepositsResponse { s.Require().NoError(s.network.WaitForNextBlock()) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits", val.APIAddress, proposalID)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits", val.GetAPIAddress(), proposalID)) s.Require().NoError(err) if exceptErr { @@ -139,16 +139,16 @@ func (s *DepositTestSuite) queryDeposits(val *network.Validator, proposalID stri } var depositsRes v1.QueryDepositsResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &depositsRes) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &depositsRes) s.Require().NoError(err) return &depositsRes } -func (s *DepositTestSuite) queryDeposit(val *network.Validator, proposalID string, exceptErr bool, message string) *v1.QueryDepositResponse { +func (s *DepositTestSuite) queryDeposit(val network.ValidatorI, proposalID string, exceptErr bool, message string) *v1.QueryDepositResponse { s.Require().NoError(s.network.WaitForNextBlock()) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.APIAddress, proposalID, val.Address.String())) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.GetAPIAddress(), proposalID, val.GetAddress().String())) s.Require().NoError(err) if exceptErr { @@ -157,7 +157,7 @@ func (s *DepositTestSuite) queryDeposit(val *network.Validator, proposalID strin } var depositRes v1.QueryDepositResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &depositRes) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &depositRes) s.Require().NoError(err) return &depositRes diff --git a/tests/e2e/gov/grpc.go b/tests/e2e/gov/grpc.go index 41cb8cdc87..6f293c2736 100644 --- a/tests/e2e/gov/grpc.go +++ b/tests/e2e/gov/grpc.go @@ -13,7 +13,7 @@ import ( ) func (s *E2ETestSuite) TestGetProposalGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -22,17 +22,17 @@ func (s *E2ETestSuite) TestGetProposalGRPC() { }{ { "empty proposal", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.APIAddress, ""), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.GetAPIAddress(), ""), true, }, { "get non existing proposal", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.APIAddress, "10"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.GetAPIAddress(), "10"), true, }, { "get proposal with id", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.APIAddress, "1"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s", val.GetAPIAddress(), "1"), false, }, } @@ -44,7 +44,7 @@ func (s *E2ETestSuite) TestGetProposalGRPC() { s.Require().NoError(err) var proposal v1.QueryProposalResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &proposal) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &proposal) if tc.expErr { s.Require().Error(err) @@ -57,7 +57,7 @@ func (s *E2ETestSuite) TestGetProposalGRPC() { } func (s *E2ETestSuite) TestGetProposalsGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -68,7 +68,7 @@ func (s *E2ETestSuite) TestGetProposalsGRPC() { }{ { "get proposals with height 1", - fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.APIAddress), + fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.GetAPIAddress()), map[string]string{ grpctypes.GRPCBlockHeightHeader: "1", }, @@ -77,14 +77,14 @@ func (s *E2ETestSuite) TestGetProposalsGRPC() { }, { "valid request", - fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.APIAddress), + fmt.Sprintf("%s/cosmos/gov/v1/proposals", val.GetAPIAddress()), map[string]string{}, 4, false, }, { "valid request with filter by status", - fmt.Sprintf("%s/cosmos/gov/v1/proposals?proposal_status=1", val.APIAddress), + fmt.Sprintf("%s/cosmos/gov/v1/proposals?proposal_status=1", val.GetAPIAddress()), map[string]string{}, 1, false, @@ -98,7 +98,7 @@ func (s *E2ETestSuite) TestGetProposalsGRPC() { s.Require().NoError(err) var proposals v1.QueryProposalsResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &proposals) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &proposals) if tc.expErr { s.Require().Empty(proposals.Proposals) @@ -111,9 +111,9 @@ func (s *E2ETestSuite) TestGetProposalsGRPC() { } func (s *E2ETestSuite) TestGetProposalVoteGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] - voterAddressBech32 := val.Address.String() + voterAddressBech32 := val.GetAddress().String() testCases := []struct { name string @@ -123,31 +123,31 @@ func (s *E2ETestSuite) TestGetProposalVoteGRPC() { }{ { "empty proposal", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.APIAddress, "", voterAddressBech32), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.GetAPIAddress(), "", voterAddressBech32), true, v1.NewNonSplitVoteOption(v1.OptionYes), }, { "get non existing proposal", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.APIAddress, "10", voterAddressBech32), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.GetAPIAddress(), "10", voterAddressBech32), true, v1.NewNonSplitVoteOption(v1.OptionYes), }, { "get proposal with wrong voter address", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.APIAddress, "1", "wrongVoterAddress"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.GetAPIAddress(), "1", "wrongVoterAddress"), true, v1.NewNonSplitVoteOption(v1.OptionYes), }, { "get proposal with id", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.APIAddress, "1", voterAddressBech32), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.GetAPIAddress(), "1", voterAddressBech32), false, v1.NewNonSplitVoteOption(v1.OptionYes), }, { "get proposal with id for split vote", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.APIAddress, "3", voterAddressBech32), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes/%s", val.GetAPIAddress(), "3", voterAddressBech32), false, v1.WeightedVoteOptions{ &v1.WeightedVoteOption{Option: v1.OptionYes, Weight: math.LegacyNewDecWithPrec(60, 2).String()}, @@ -165,7 +165,7 @@ func (s *E2ETestSuite) TestGetProposalVoteGRPC() { s.Require().NoError(err) var vote v1.QueryVoteResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &vote) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &vote) if tc.expErr { s.Require().Error(err) @@ -183,7 +183,7 @@ func (s *E2ETestSuite) TestGetProposalVoteGRPC() { } func (s *E2ETestSuite) TestGetProposalVotesGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -192,12 +192,12 @@ func (s *E2ETestSuite) TestGetProposalVotesGRPC() { }{ { "votes with empty proposal id", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes", val.APIAddress, ""), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes", val.GetAPIAddress(), ""), true, }, { "get votes with valid id", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes", val.APIAddress, "1"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/votes", val.GetAPIAddress(), "1"), false, }, } @@ -209,7 +209,7 @@ func (s *E2ETestSuite) TestGetProposalVotesGRPC() { s.Require().NoError(err) var votes v1.QueryVotesResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &votes) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &votes) if tc.expErr { s.Require().Error(err) @@ -222,7 +222,7 @@ func (s *E2ETestSuite) TestGetProposalVotesGRPC() { } func (s *E2ETestSuite) TestGetProposalDepositGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -231,22 +231,22 @@ func (s *E2ETestSuite) TestGetProposalDepositGRPC() { }{ { "get deposit with empty proposal id", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.APIAddress, "", val.Address.String()), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.GetAPIAddress(), "", val.GetAddress().String()), true, }, { "get deposit of non existing proposal", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.APIAddress, "10", val.Address.String()), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.GetAPIAddress(), "10", val.GetAddress().String()), true, }, { "get deposit with wrong depositer address", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.APIAddress, "1", "wrongDepositerAddress"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.GetAPIAddress(), "1", "wrongDepositerAddress"), true, }, { "get deposit valid request", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.APIAddress, "1", val.Address.String()), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits/%s", val.GetAPIAddress(), "1", val.GetAddress().String()), false, }, } @@ -258,7 +258,7 @@ func (s *E2ETestSuite) TestGetProposalDepositGRPC() { s.Require().NoError(err) var deposit v1.QueryDepositResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &deposit) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &deposit) if tc.expErr { s.Require().Error(err) @@ -271,7 +271,7 @@ func (s *E2ETestSuite) TestGetProposalDepositGRPC() { } func (s *E2ETestSuite) TestGetProposalDepositsGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -280,12 +280,12 @@ func (s *E2ETestSuite) TestGetProposalDepositsGRPC() { }{ { "get deposits with empty proposal id", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits", val.APIAddress, ""), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits", val.GetAPIAddress(), ""), true, }, { "valid request", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits", val.APIAddress, "1"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/deposits", val.GetAPIAddress(), "1"), false, }, } @@ -297,7 +297,7 @@ func (s *E2ETestSuite) TestGetProposalDepositsGRPC() { s.Require().NoError(err) var deposits v1.QueryDepositsResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &deposits) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &deposits) if tc.expErr { s.Require().Error(err) @@ -311,7 +311,7 @@ func (s *E2ETestSuite) TestGetProposalDepositsGRPC() { } func (s *E2ETestSuite) TestGetTallyGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -320,17 +320,17 @@ func (s *E2ETestSuite) TestGetTallyGRPC() { }{ { "get tally with no proposal id", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/tally", val.APIAddress, ""), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/tally", val.GetAPIAddress(), ""), true, }, { "get tally with non existing proposal", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/tally", val.APIAddress, "10"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/tally", val.GetAPIAddress(), "10"), true, }, { "get tally valid request", - fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/tally", val.APIAddress, "1"), + fmt.Sprintf("%s/cosmos/gov/v1/proposals/%s/tally", val.GetAPIAddress(), "1"), false, }, } @@ -342,7 +342,7 @@ func (s *E2ETestSuite) TestGetTallyGRPC() { s.Require().NoError(err) var tally v1.QueryTallyResultResponse - err = val.ClientCtx.Codec.UnmarshalJSON(resp, &tally) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, &tally) if tc.expErr { s.Require().Error(err) @@ -355,7 +355,7 @@ func (s *E2ETestSuite) TestGetTallyGRPC() { } func (s *E2ETestSuite) TestGetParamsGRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] params := v1.DefaultParams() dp := v1.NewDepositParams(params.MinDeposit, params.MaxDepositPeriod) //nolint:staticcheck // we use deprecated gov commands here, but we don't want to remove them @@ -371,26 +371,26 @@ func (s *E2ETestSuite) TestGetParamsGRPC() { }{ { "request params with empty params type", - fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.APIAddress, ""), + fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.GetAPIAddress(), ""), true, nil, nil, }, { "get deposit params", - fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.APIAddress, v1.ParamDeposit), + fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.GetAPIAddress(), v1.ParamDeposit), false, &v1.QueryParamsResponse{}, &v1.QueryParamsResponse{DepositParams: &dp, Params: ¶ms}, }, { "get vote params", - fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.APIAddress, v1.ParamVoting), + fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.GetAPIAddress(), v1.ParamVoting), false, &v1.QueryParamsResponse{}, &v1.QueryParamsResponse{VotingParams: &vp, Params: ¶ms}, }, { "get tally params", - fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.APIAddress, v1.ParamTallying), + fmt.Sprintf("%s/cosmos/gov/v1/params/%s", val.GetAPIAddress(), v1.ParamTallying), false, &v1.QueryParamsResponse{}, &v1.QueryParamsResponse{TallyParams: &tp, Params: ¶ms}, @@ -402,7 +402,7 @@ func (s *E2ETestSuite) TestGetParamsGRPC() { s.Run(tc.name, func() { resp, err := testutil.GetRequest(tc.url) s.Require().NoError(err) - err = val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType) + err = val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType) if tc.expErr { s.Require().Error(err) diff --git a/tests/e2e/gov/tx.go b/tests/e2e/gov/tx.go index 13a59a4e8a..9c7e5959db 100644 --- a/tests/e2e/gov/tx.go +++ b/tests/e2e/gov/tx.go @@ -26,7 +26,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func NewE2ETestSuite(cfg network.Config) *E2ETestSuite { @@ -41,12 +41,12 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - val := s.network.Validators[0] - clientCtx := val.ClientCtx + val := s.network.GetValidators()[0] + clientCtx := val.GetClientCtx() var resp sdk.TxResponse // create a proposal with deposit - out, err := govclitestutil.MsgSubmitLegacyProposal(val.ClientCtx, val.Address.String(), + out, err := govclitestutil.MsgSubmitLegacyProposal(val.GetClientCtx(), val.GetAddress().String(), "Text Proposal 1", "Where is the title!?", v1beta1.ProposalTypeText, fmt.Sprintf("--%s=%s", cli.FlagDeposit, sdk.NewCoin(s.cfg.BondDenom, v1.DefaultMinDepositTokens).String())) s.Require().NoError(err) @@ -54,14 +54,14 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(clitestutil.CheckTxCode(s.network, clientCtx, resp.TxHash, 0)) // vote for proposal - out, err = govclitestutil.MsgVote(val.ClientCtx, val.Address.String(), "1", "yes") + out, err = govclitestutil.MsgVote(val.GetClientCtx(), val.GetAddress().String(), "1", "yes") s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &resp), out.String()) s.Require().NoError(clitestutil.CheckTxCode(s.network, clientCtx, resp.TxHash, 0)) // create a proposal with a small deposit minimumAcceptedDep := v1.DefaultMinDepositTokens.ToLegacyDec().Mul(v1.DefaultMinDepositRatio).Ceil().TruncateInt() - out, err = govclitestutil.MsgSubmitLegacyProposal(val.ClientCtx, val.Address.String(), + out, err = govclitestutil.MsgSubmitLegacyProposal(val.GetClientCtx(), val.GetAddress().String(), "Text Proposal 2", "Where is the title!?", v1beta1.ProposalTypeText, fmt.Sprintf("--%s=%s", cli.FlagDeposit, sdk.NewCoin(s.cfg.BondDenom, minimumAcceptedDep).String())) @@ -70,7 +70,7 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(clitestutil.CheckTxCode(s.network, clientCtx, resp.TxHash, 0)) // create a proposal3 with deposit - out, err = govclitestutil.MsgSubmitLegacyProposal(val.ClientCtx, val.Address.String(), + out, err = govclitestutil.MsgSubmitLegacyProposal(val.GetClientCtx(), val.GetAddress().String(), "Text Proposal 3", "Where is the title!?", v1beta1.ProposalTypeText, fmt.Sprintf("--%s=%s", cli.FlagDeposit, sdk.NewCoin(s.cfg.BondDenom, v1.DefaultMinDepositTokens).String())) s.Require().NoError(err) @@ -78,7 +78,7 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(clitestutil.CheckTxCode(s.network, clientCtx, resp.TxHash, 0)) // create a proposal4 with deposit to check the cancel proposal cli tx - out, err = govclitestutil.MsgSubmitLegacyProposal(val.ClientCtx, val.Address.String(), + out, err = govclitestutil.MsgSubmitLegacyProposal(val.GetClientCtx(), val.GetAddress().String(), "Text Proposal 4", "Where is the title!?", v1beta1.ProposalTypeText, fmt.Sprintf("--%s=%s", cli.FlagDeposit, sdk.NewCoin(s.cfg.BondDenom, v1.DefaultMinDepositTokens).String())) s.Require().NoError(err) @@ -86,7 +86,7 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(clitestutil.CheckTxCode(s.network, clientCtx, resp.TxHash, 0)) // vote for proposal3 as val - out, err = govclitestutil.MsgVote(val.ClientCtx, val.Address.String(), "3", "yes=0.6,no=0.3,abstain=0.05,no_with_veto=0.05") + out, err = govclitestutil.MsgVote(val.GetClientCtx(), val.GetAddress().String(), "3", "yes=0.6,no=0.3,abstain=0.05,no_with_veto=0.05") s.Require().NoError(err) s.Require().NoError(clientCtx.Codec.UnmarshalJSON(out.Bytes(), &resp), out.String()) s.Require().NoError(clitestutil.CheckTxCode(s.network, clientCtx, resp.TxHash, 0)) @@ -98,7 +98,7 @@ func (s *E2ETestSuite) TearDownSuite() { } func (s *E2ETestSuite) TestNewCmdSubmitProposal() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] // Create a legacy proposal JSON, make sure it doesn't pass this new CLI // command. @@ -154,7 +154,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitProposal() { "valid proposal", []string{ validPropFile.Name(), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -168,7 +168,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitProposal() { s.Run(tc.name, func() { cmd := cli.NewCmdSubmitProposal() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -184,7 +184,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitProposal() { } func (s *E2ETestSuite) TestNewCmdSubmitLegacyProposal() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] invalidProp := `{ "title": "", "description": "Where is the title!?", @@ -213,7 +213,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitLegacyProposal() { "invalid proposal (file)", []string{ fmt.Sprintf("--%s=%s", cli.FlagProposal, invalidPropFile.Name()), //nolint:staticcheck // we are intentionally using a deprecated flag here. - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), }, @@ -225,7 +225,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitLegacyProposal() { fmt.Sprintf("--%s='Where is the title!?'", cli.FlagDescription), //nolint:staticcheck // we are intentionally using a deprecated flag here. fmt.Sprintf("--%s=%s", cli.FlagProposalType, v1beta1.ProposalTypeText), //nolint:staticcheck // we are intentionally using a deprecated flag here. fmt.Sprintf("--%s=%s", cli.FlagDeposit, sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10000)).String()), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))).String()), }, @@ -236,7 +236,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitLegacyProposal() { //nolint:staticcheck // we are intentionally using a deprecated flag here. []string{ fmt.Sprintf("--%s=%s", cli.FlagProposal, validPropFile.Name()), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -250,7 +250,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitLegacyProposal() { fmt.Sprintf("--%s='Where is the title!?'", cli.FlagDescription), //nolint:staticcheck // we are intentionally using a deprecated flag here. fmt.Sprintf("--%s=%s", cli.FlagProposalType, v1beta1.ProposalTypeText), //nolint:staticcheck // we are intentionally using a deprecated flag here. fmt.Sprintf("--%s=%s", cli.FlagDeposit, sdk.NewCoin(s.cfg.BondDenom, math.NewInt(100000)).String()), - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -264,7 +264,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitLegacyProposal() { s.Run(tc.name, func() { cmd := cli.NewCmdSubmitLegacyProposal() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) if tc.expectErr { @@ -280,7 +280,7 @@ func (s *E2ETestSuite) TestNewCmdSubmitLegacyProposal() { } func (s *E2ETestSuite) TestNewCmdWeightedVote() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string @@ -298,7 +298,7 @@ func (s *E2ETestSuite) TestNewCmdWeightedVote() { []string{ "10", "yes", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -310,7 +310,7 @@ func (s *E2ETestSuite) TestNewCmdWeightedVote() { []string{ "1", "yes", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -322,7 +322,7 @@ func (s *E2ETestSuite) TestNewCmdWeightedVote() { []string{ "1", "yes", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().String()), fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastSync), fmt.Sprintf("--metadata=%s", "AQ=="), @@ -335,7 +335,7 @@ func (s *E2ETestSuite) TestNewCmdWeightedVote() { []string{ "1", "yes/0.6,no/0.3,abstain/0.05,no_with_veto/0.05", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -347,7 +347,7 @@ func (s *E2ETestSuite) TestNewCmdWeightedVote() { []string{ "1", "yes=0.6,no=0.3,abstain=0.05,no_with_veto=0.05", - fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.GetAddress().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(s.cfg.BondDenom, math.NewInt(10))).String()), @@ -360,7 +360,7 @@ func (s *E2ETestSuite) TestNewCmdWeightedVote() { tc := tc s.Run(tc.name, func() { cmd := cli.NewCmdWeightedVote() - clientCtx := val.ClientCtx + clientCtx := val.GetClientCtx() var txResp sdk.TxResponse out, err := clitestutil.ExecTestCLICmd(clientCtx, cmd, tc.args) diff --git a/tests/e2e/group/suite.go b/tests/e2e/group/suite.go index afb59487d1..2dd59828f7 100644 --- a/tests/e2e/group/suite.go +++ b/tests/e2e/group/suite.go @@ -27,7 +27,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI group *group.GroupInfo groupPolicies []*group.GroupPolicyInfo @@ -57,10 +57,10 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - val := s.network.Validators[0] + val := s.network.GetValidators()[0] // create a new account - info, _, err := val.ClientCtx.Keyring.NewMnemonic("NewValidator", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) + info, _, err := val.GetClientCtx().Keyring.NewMnemonic("NewValidator", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) s.Require().NoError(err) pk, err := info.GetPubKey() @@ -68,15 +68,15 @@ func (s *E2ETestSuite) SetupSuite() { account := sdk.AccAddress(pk.Address()) msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), ToAddress: account.String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(2000))), } _, err = clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, - val.Address, + val.GetAddress(), clitestutil.TestTxConfig{ GenOnly: true, }, @@ -96,12 +96,12 @@ func (s *E2ETestSuite) SetupSuite() { "metadata": "%s" } ] - }`, val.Address.String(), memberWeight, validMetadata) + }`, val.GetAddress().String(), memberWeight, validMetadata) validMembersFile := testutil.WriteToNewTempFile(s.T(), validMembers) - out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, client.MsgCreateGroupCmd(), + out, err := clitestutil.ExecTestCLICmd(val.GetClientCtx(), client.MsgCreateGroupCmd(), append( []string{ - val.Address.String(), + val.GetAddress().String(), validMetadata, validMembersFile.Name(), }, @@ -110,10 +110,10 @@ func (s *E2ETestSuite) SetupSuite() { ) s.Require().NoError(err, out.String()) txResp := sdk.TxResponse{} - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, txResp.TxHash, 0)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), txResp.TxHash, 0)) - s.group = &group.GroupInfo{Id: 1, Admin: val.Address.String(), Metadata: validMetadata, TotalWeight: "3", Version: 1} + s.group = &group.GroupInfo{Id: 1, Admin: val.GetAddress().String(), Metadata: validMetadata, TotalWeight: "3", Version: 1} // create 5 group policies for i := 0; i < 5; i++ { @@ -122,20 +122,20 @@ func (s *E2ETestSuite) SetupSuite() { threshold = 3 } - s.createGroupThresholdPolicyWithBalance(val.Address.String(), "1", threshold, 1000) + s.createGroupThresholdPolicyWithBalance(val.GetAddress().String(), "1", threshold, 1000) s.Require().NoError(s.network.WaitForNextBlock()) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/group_policies_by_group/1", val.APIAddress)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/group_policies_by_group/1", val.GetAPIAddress())) s.Require().NoError(err) var groupPoliciesResp group.QueryGroupPoliciesByGroupResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, &groupPoliciesResp)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, &groupPoliciesResp)) s.Require().Len(groupPoliciesResp.GroupPolicies, i+1) } // create group policy with percentage decision policy - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, client.MsgCreateGroupPolicyCmd(), + out, err = clitestutil.ExecTestCLICmd(val.GetClientCtx(), client.MsgCreateGroupPolicyCmd(), append( []string{ - val.Address.String(), + val.GetAddress().String(), "1", validMetadata, testutil.WriteToNewTempFile(s.T(), fmt.Sprintf(`{"@type":"/cosmos.group.v1.PercentageDecisionPolicy", "percentage":"%f", "windows":{"voting_period":"30000s"}}`, 0.5)).Name(), @@ -144,61 +144,61 @@ func (s *E2ETestSuite) SetupSuite() { ), ) s.Require().NoError(err, out.String()) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, txResp.TxHash, 0)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), txResp.TxHash, 0)) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/group_policies_by_group/1", val.APIAddress)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/group_policies_by_group/1", val.GetAPIAddress())) s.Require().NoError(err) var groupPoliciesResp group.QueryGroupPoliciesByGroupResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, &groupPoliciesResp)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, &groupPoliciesResp)) s.Require().Equal(len(groupPoliciesResp.GroupPolicies), 6) s.groupPolicies = groupPoliciesResp.GroupPolicies // create a proposal - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, client.MsgSubmitProposalCmd(), + out, err = clitestutil.ExecTestCLICmd(val.GetClientCtx(), client.MsgSubmitProposalCmd(), append( []string{ s.createCLIProposal( - s.groupPolicies[0].Address, val.Address.String(), - s.groupPolicies[0].Address, val.Address.String(), + s.groupPolicies[0].Address, val.GetAddress().String(), + s.groupPolicies[0].Address, val.GetAddress().String(), "", "title", "summary"), }, s.commonFlags..., ), ) s.Require().NoError(err, out.String()) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, txResp.TxHash, 0)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), txResp.TxHash, 0)) msg := &group.MsgVote{ ProposalId: uint64(1), - Voter: val.Address.String(), + Voter: val.GetAddress().String(), Option: group.VOTE_OPTION_YES, } // vote - out, err = clitestutil.SubmitTestTx(val.ClientCtx, msg, val.Address, clitestutil.TestTxConfig{}) + out, err = clitestutil.SubmitTestTx(val.GetClientCtx(), msg, val.GetAddress(), clitestutil.TestTxConfig{}) s.Require().NoError(err, out.String()) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, txResp.TxHash, 0)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), txResp.TxHash, 0)) - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/proposal/1", val.APIAddress)) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/proposal/1", val.GetAPIAddress())) s.Require().NoError(err) var proposalRes group.QueryProposalResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, &proposalRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, &proposalRes)) s.proposal = proposalRes.Proposal - resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/vote_by_proposal_voter/1/%s", val.APIAddress, val.Address.String())) + resp, err = testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/vote_by_proposal_voter/1/%s", val.GetAPIAddress(), val.GetAddress().String())) s.Require().NoError(err) var voteRes group.QueryVoteByProposalVoterResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, &voteRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, &voteRes)) s.vote = voteRes.Vote s.voter = &group.Member{ - Address: val.Address.String(), + Address: val.GetAddress().String(), Weight: memberWeight, Metadata: validMetadata, } @@ -241,8 +241,8 @@ func (s *E2ETestSuite) createCLIProposal(groupPolicyAddress, proposer, sendFrom, func (s *E2ETestSuite) createGroupThresholdPolicyWithBalance(adminAddress, groupID string, threshold int, tokens int64) string { s.Require().NoError(s.network.WaitForNextBlock()) - val := s.network.Validators[0] - clientCtx := val.ClientCtx + val := s.network.GetValidators()[0] + clientCtx := val.GetClientCtx() out, err := clitestutil.ExecTestCLICmd(clientCtx, client.MsgCreateGroupPolicyCmd(), append( @@ -257,29 +257,29 @@ func (s *E2ETestSuite) createGroupThresholdPolicyWithBalance(adminAddress, group ) txResp := sdk.TxResponse{} s.Require().NoError(err, out.String()) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) - s.Require().NoError(clitestutil.CheckTxCode(s.network, val.ClientCtx, txResp.TxHash, 0)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txResp), out.String()) + s.Require().NoError(clitestutil.CheckTxCode(s.network, val.GetClientCtx(), txResp.TxHash, 0)) - resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/group_policies_by_group/%s", val.APIAddress, groupID)) + resp, err := testutil.GetRequest(fmt.Sprintf("%s/cosmos/group/v1/group_policies_by_group/%s", val.GetAPIAddress(), groupID)) s.Require().NoError(err) var res group.QueryGroupPoliciesByGroupResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, &res)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, &res)) groupPolicyAddress := res.GroupPolicies[0].Address addr, err := sdk.AccAddressFromBech32(groupPolicyAddress) s.Require().NoError(err) msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), ToAddress: addr.String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(tokens))), } _, err = clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, - val.Address, + val.GetAddress(), clitestutil.TestTxConfig{ GenOnly: true, }, diff --git a/tests/e2e/mint/grpc.go b/tests/e2e/mint/grpc.go index baa1a2a447..8e509d9e60 100644 --- a/tests/e2e/mint/grpc.go +++ b/tests/e2e/mint/grpc.go @@ -13,8 +13,8 @@ import ( ) func (s *E2ETestSuite) TestQueryGRPC() { - val := s.network.Validators[0] - baseURL := val.APIAddress + val := s.network.GetValidators()[0] + baseURL := val.GetAPIAddress() testCases := []struct { name string url string @@ -57,7 +57,7 @@ func (s *E2ETestSuite) TestQueryGRPC() { resp, err := testutil.GetRequestWithHeaders(tc.url, tc.headers) s.Run(tc.name, func() { s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(resp, tc.respType)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(resp, tc.respType)) s.Require().Equal(tc.expected.String(), tc.respType.String()) }) } diff --git a/tests/e2e/mint/suite.go b/tests/e2e/mint/suite.go index 2b90df6e62..7f40603246 100644 --- a/tests/e2e/mint/suite.go +++ b/tests/e2e/mint/suite.go @@ -13,7 +13,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func NewE2ETestSuite(cfg network.Config) *E2ETestSuite { diff --git a/tests/e2e/staking/suite.go b/tests/e2e/staking/suite.go index fcb8e2c412..7f78dfdac9 100644 --- a/tests/e2e/staking/suite.go +++ b/tests/e2e/staking/suite.go @@ -24,7 +24,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI } func NewE2ETestSuite(cfg network.Config) *E2ETestSuite { @@ -53,26 +53,26 @@ func (s *E2ETestSuite) TearDownSuite() { // ref: https://github.com/cosmos/cosmos-sdk/issues/7401. func (s *E2ETestSuite) TestBlockResults() { require := s.Require() - val := s.network.Validators[0] + val := s.network.GetValidators()[0] // Create new account in the keyring. - k, _, err := val.ClientCtx.Keyring.NewMnemonic("NewDelegator", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) + k, _, err := val.GetClientCtx().Keyring.NewMnemonic("NewDelegator", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) require.NoError(err) pub, err := k.GetPubKey() require.NoError(err) newAddr := sdk.AccAddress(pub.Address()) msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), ToAddress: newAddr.String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(200))), } // Send some funds to the new account. _, err = clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, - val.Address, + val.GetAddress(), clitestutil.TestTxConfig{}, ) require.NoError(err) @@ -80,13 +80,13 @@ func (s *E2ETestSuite) TestBlockResults() { msgDel := &stakingtypes.MsgDelegate{ DelegatorAddress: newAddr.String(), - ValidatorAddress: val.ValAddress.String(), + ValidatorAddress: val.GetValAddress().String(), Amount: sdk.NewCoin(s.cfg.BondDenom, math.NewInt(150)), } // create a delegation from the new account to validator `val`. _, err = clitestutil.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgDel, newAddr, clitestutil.TestTxConfig{}, @@ -95,7 +95,7 @@ func (s *E2ETestSuite) TestBlockResults() { require.NoError(s.network.WaitForNextBlock()) // Create a HTTP rpc client. - rpcClient, err := http.New(val.RPCAddress, "/websocket") + rpcClient, err := http.New(val.GetRPCAddress(), "/websocket") require.NoError(err) // Loop until we find a block result with the correct validator updates. @@ -115,7 +115,7 @@ func (s *E2ETestSuite) TestBlockResults() { valUpdate := res.ValidatorUpdates[0] require.Equal( valUpdate.GetPubKey().Sum.(*crypto.PublicKey_Ed25519).Ed25519, - val.PubKey.Bytes(), + val.GetPubKey().Bytes(), ) return nil diff --git a/tests/e2e/tx/benchmarks_test.go b/tests/e2e/tx/benchmarks_test.go index 43cf72fed6..bfbf22db5e 100644 --- a/tests/e2e/tx/benchmarks_test.go +++ b/tests/e2e/tx/benchmarks_test.go @@ -23,7 +23,7 @@ import ( type E2EBenchmarkSuite struct { cfg network.Config - network *network.Network + network network.NetworkI txHeight int64 queryClient tx.ServiceClient @@ -44,13 +44,13 @@ func BenchmarkTx(b *testing.B) { s := NewE2EBenchmarkSuite(b) b.Cleanup(s.Close) - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := mkTxBuilder(b, s) // Convert the txBuilder to a tx.Tx. protoTx, err := txBuilderToProtoTx(txBuilder) assert.NilError(b, err) // Encode the txBuilder to txBytes. - txBytes, err := val.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + txBytes, err := val.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) assert.NilError(b, err) testCases := []struct { @@ -95,22 +95,22 @@ func NewE2EBenchmarkSuite(tb testing.TB) *E2EBenchmarkSuite { s.network, err = network.New(tb, tb.TempDir(), s.cfg) assert.NilError(tb, err) - val := s.network.Validators[0] + val := s.network.GetValidators()[0] assert.NilError(tb, s.network.WaitForNextBlock()) - s.queryClient = tx.NewServiceClient(val.ClientCtx) + s.queryClient = tx.NewServiceClient(val.GetClientCtx()) msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val.GetAddress().String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdkmath.NewInt(10))), } // Create a new MsgSend tx from val to itself. out, err := cli.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, - val.Address, + val.GetAddress(), cli.TestTxConfig{ Memo: "foobar", }, @@ -119,19 +119,19 @@ func NewE2EBenchmarkSuite(tb testing.TB) *E2EBenchmarkSuite { assert.NilError(tb, err) var txRes sdk.TxResponse - assert.NilError(tb, val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txRes)) + assert.NilError(tb, val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txRes)) assert.Equal(tb, uint32(0), txRes.Code, txRes) msgSend1 := &banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val.GetAddress().String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdkmath.NewInt(1))), } out, err = cli.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend1, - val.Address, + val.GetAddress(), cli.TestTxConfig{ Offline: true, AccNum: 0, @@ -142,10 +142,10 @@ func NewE2EBenchmarkSuite(tb testing.TB) *E2EBenchmarkSuite { assert.NilError(tb, err) var tr sdk.TxResponse - assert.NilError(tb, val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &tr)) + assert.NilError(tb, val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &tr)) assert.Equal(tb, uint32(0), tr.Code) - resp, err := cli.GetTxResponse(s.network, val.ClientCtx, tr.TxHash) + resp, err := cli.GetTxResponse(s.network, val.GetClientCtx(), tr.TxHash) assert.NilError(tb, err) s.txHeight = resp.Height return s @@ -158,17 +158,17 @@ func (s *E2EBenchmarkSuite) Close() { func mkTxBuilder(tb testing.TB, s *E2EBenchmarkSuite) client.TxBuilder { tb.Helper() - val := s.network.Validators[0] + val := s.network.GetValidators()[0] assert.NilError(tb, s.network.WaitForNextBlock()) // prepare txBuilder with msg - txBuilder := val.ClientCtx.TxConfig.NewTxBuilder() + txBuilder := val.GetClientCtx().TxConfig.NewTxBuilder() feeAmount := sdk.Coins{sdk.NewInt64Coin(s.cfg.BondDenom, 10)} gasLimit := testdata.NewTestGasLimit() assert.NilError(tb, txBuilder.SetMsgs(&banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val.GetAddress().String(), Amount: sdk.Coins{sdk.NewInt64Coin(s.cfg.BondDenom, 10)}, }), ) @@ -178,13 +178,13 @@ func mkTxBuilder(tb testing.TB, s *E2EBenchmarkSuite) client.TxBuilder { // setup txFactory txFactory := clienttx.Factory{}. - WithChainID(val.ClientCtx.ChainID). - WithKeybase(val.ClientCtx.Keyring). - WithTxConfig(val.ClientCtx.TxConfig). + WithChainID(val.GetClientCtx().ChainID). + WithKeybase(val.GetClientCtx().Keyring). + WithTxConfig(val.GetClientCtx().TxConfig). WithSignMode(signing.SignMode_SIGN_MODE_DIRECT) // Sign Tx. - err := authclient.SignTx(txFactory, val.ClientCtx, val.Moniker, txBuilder, false, true) + err := authclient.SignTx(txFactory, val.GetClientCtx(), val.GetMoniker(), txBuilder, false, true) assert.NilError(tb, err) return txBuilder diff --git a/tests/e2e/tx/service_test.go b/tests/e2e/tx/service_test.go index 53caea5c76..632becfb39 100644 --- a/tests/e2e/tx/service_test.go +++ b/tests/e2e/tx/service_test.go @@ -42,7 +42,7 @@ type E2ETestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI txHeight int64 queryClient tx.ServiceClient @@ -60,22 +60,22 @@ func (s *E2ETestSuite) SetupSuite() { s.network, err = network.New(s.T(), s.T().TempDir(), s.cfg) s.Require().NoError(err) - val := s.network.Validators[0] + val := s.network.GetValidators()[0] s.Require().NoError(s.network.WaitForNextBlock()) - s.queryClient = tx.NewServiceClient(val.ClientCtx) + s.queryClient = tx.NewServiceClient(val.GetClientCtx()) msgSend := &banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val.GetAddress().String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10))), } // Create a new MsgSend tx from val to itself. out, err := cli.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend, - val.Address, + val.GetAddress(), cli.TestTxConfig{ Memo: "foobar", }, @@ -84,20 +84,20 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(err) var txRes sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &txRes)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out.Bytes(), &txRes)) s.Require().Equal(uint32(0), txRes.Code, txRes) s.goodTxHash = txRes.TxHash msgSend1 := &banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val.GetAddress().String(), Amount: sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(1))), } out1, err := cli.SubmitTestTx( - val.ClientCtx, + val.GetClientCtx(), msgSend1, - val.Address, + val.GetAddress(), cli.TestTxConfig{ Offline: true, AccNum: 0, @@ -108,10 +108,10 @@ func (s *E2ETestSuite) SetupSuite() { s.Require().NoError(err) var tr sdk.TxResponse - s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out1.Bytes(), &tr)) + s.Require().NoError(val.GetClientCtx().Codec.UnmarshalJSON(out1.Bytes(), &tr)) s.Require().Equal(uint32(0), tr.Code) - resp, err := cli.GetTxResponse(s.network, val.ClientCtx, tr.TxHash) + resp, err := cli.GetTxResponse(s.network, val.GetClientCtx(), tr.TxHash) s.Require().NoError(err) s.txHeight = resp.Height } @@ -155,13 +155,13 @@ func (s *E2ETestSuite) TestQueryBySig() { } func (s *E2ETestSuite) TestSimulateTx_GRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() // Convert the txBuilder to a tx.Tx. protoTx, err := txBuilderToProtoTx(txBuilder) s.Require().NoError(err) // Encode the txBuilder to txBytes. - txBytes, err := val.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + txBytes, err := val.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) s.Require().NoError(err) testCases := []struct { @@ -202,13 +202,13 @@ func (s *E2ETestSuite) TestSimulateTx_GRPC() { } func (s *E2ETestSuite) TestSimulateTx_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() // Convert the txBuilder to a tx.Tx. protoTx, err := txBuilderToProtoTx(txBuilder) s.Require().NoError(err) // Encode the txBuilder to txBytes. - txBytes, err := val.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + txBytes, err := val.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) s.Require().NoError(err) testCases := []struct { @@ -224,15 +224,15 @@ func (s *E2ETestSuite) TestSimulateTx_GRPCGateway() { for _, tc := range testCases { s.Run(tc.name, func() { - req, err := val.ClientCtx.Codec.MarshalJSON(tc.req) + req, err := val.GetClientCtx().Codec.MarshalJSON(tc.req) s.Require().NoError(err) - res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/simulate", val.APIAddress), "application/json", req) + res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/simulate", val.GetAPIAddress()), "application/json", req) s.Require().NoError(err) if tc.expErr { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.SimulateResponse - err = val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err = val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) // Check the result and gas used are correct. s.Require().Len(result.GetResult().MsgResponses, 1) @@ -336,7 +336,7 @@ func (s *E2ETestSuite) TestGetTxEvents_GRPC() { } func (s *E2ETestSuite) TestGetTxEvents_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string url string @@ -346,49 +346,49 @@ func (s *E2ETestSuite) TestGetTxEvents_GRPCGateway() { }{ { "empty params", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs", val.APIAddress), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs", val.GetAPIAddress()), true, "query cannot be empty", 0, }, { "without pagination", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s", val.APIAddress, bankMsgSendEventAction), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s", val.GetAPIAddress(), bankMsgSendEventAction), false, "", 3, }, { "with pagination", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&page=%d&limit=%d", val.APIAddress, bankMsgSendEventAction, 1, 2), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&page=%d&limit=%d", val.GetAPIAddress(), bankMsgSendEventAction, 1, 2), false, "", 2, }, { "valid request: order by asc", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s&order_by=ORDER_BY_ASC", val.APIAddress, bankMsgSendEventAction, "message.module='bank'"), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s&order_by=ORDER_BY_ASC", val.GetAPIAddress(), bankMsgSendEventAction, "message.module='bank'"), false, "", 3, }, { "valid request: order by desc", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s&order_by=ORDER_BY_DESC", val.APIAddress, bankMsgSendEventAction, "message.module='bank'"), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s&order_by=ORDER_BY_DESC", val.GetAPIAddress(), bankMsgSendEventAction, "message.module='bank'"), false, "", 3, }, { "invalid request: invalid order by", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s&order_by=invalid_order", val.APIAddress, bankMsgSendEventAction, "message.module='bank'"), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s&order_by=invalid_order", val.GetAPIAddress(), bankMsgSendEventAction, "message.module='bank'"), true, "is not a valid tx.OrderBy", 0, }, { "expect pass with multiple-events", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s", val.APIAddress, bankMsgSendEventAction, "message.module='bank'"), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s&query=%s", val.GetAPIAddress(), bankMsgSendEventAction, "message.module='bank'"), false, "", 3, }, { "expect pass with escape event", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s", val.APIAddress, "message.action%3D'/cosmos.bank.v1beta1.MsgSend'"), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs?query=%s", val.GetAPIAddress(), "message.action%3D'/cosmos.bank.v1beta1.MsgSend'"), false, "", 3, }, @@ -401,7 +401,7 @@ func (s *E2ETestSuite) TestGetTxEvents_GRPCGateway() { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.GetTxsEventResponse - err = val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err = val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err, "failed to unmarshal JSON: %s", res) s.Require().GreaterOrEqual(len(result.Txs), 1) s.Require().Equal("foobar", result.Txs[0].Body.Memo) @@ -440,7 +440,7 @@ func (s *E2ETestSuite) TestGetTx_GRPC() { } func (s *E2ETestSuite) TestGetTx_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string url string @@ -449,17 +449,17 @@ func (s *E2ETestSuite) TestGetTx_GRPCGateway() { }{ { "empty params", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/", val.APIAddress), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/", val.GetAPIAddress()), true, "tx hash cannot be empty", }, { "dummy hash", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/%s", val.APIAddress, "deadbeef"), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/%s", val.GetAPIAddress(), "deadbeef"), true, "code = NotFound desc = tx not found: deadbeef", }, { "good hash", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/%s", val.APIAddress, s.goodTxHash), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/%s", val.GetAPIAddress(), s.goodTxHash), false, "", }, } @@ -471,7 +471,7 @@ func (s *E2ETestSuite) TestGetTx_GRPCGateway() { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.GetTxResponse - err = val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err = val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) s.Require().Equal("foobar", result.Tx.Body.Memo) s.Require().NotZero(result.TxResponse.Height) @@ -487,9 +487,9 @@ func (s *E2ETestSuite) TestGetTx_GRPCGateway() { } func (s *E2ETestSuite) TestBroadcastTx_GRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() - txBytes, err := val.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + txBytes, err := val.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) s.Require().NoError(err) testCases := []struct { @@ -525,9 +525,9 @@ func (s *E2ETestSuite) TestBroadcastTx_GRPC() { } func (s *E2ETestSuite) TestBroadcastTx_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() - txBytes, err := val.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + txBytes, err := val.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) s.Require().NoError(err) testCases := []struct { @@ -546,15 +546,15 @@ func (s *E2ETestSuite) TestBroadcastTx_GRPCGateway() { for _, tc := range testCases { s.Run(tc.name, func() { - req, err := val.ClientCtx.Codec.MarshalJSON(tc.req) + req, err := val.GetClientCtx().Codec.MarshalJSON(tc.req) s.Require().NoError(err) - res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/txs", val.APIAddress), "application/json", req) + res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/txs", val.GetAPIAddress()), "application/json", req) s.Require().NoError(err) if tc.expErr { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.BroadcastTxResponse - err = val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err = val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) s.Require().Equal(uint32(0), result.TxResponse.Code, "rawlog", result.TxResponse.RawLog) } @@ -563,9 +563,10 @@ func (s *E2ETestSuite) TestBroadcastTx_GRPCGateway() { } func (s *E2ETestSuite) TestSimMultiSigTx() { - val1 := *s.network.Validators[0] + val1 := s.network.GetValidators()[0] + clientCtx := val1.GetClientCtx() - kr := val1.ClientCtx.Keyring + kr := clientCtx.Keyring account1, _, err := kr.NewMnemonic("newAccount1", keyring.English, sdk.FullFundraiserPath, keyring.DefaultBIP39Passphrase, hd.Secp256k1) s.Require().NoError(err) @@ -585,7 +586,7 @@ func (s *E2ETestSuite) TestSimMultiSigTx() { s.Require().NoError(s.network.WaitForNextBlock()) - multisigRecord, err := val1.ClientCtx.Keyring.Key("multi") + multisigRecord, err := clientCtx.Keyring.Key("multi") s.Require().NoError(err) height, err := s.network.LatestHeight() @@ -599,15 +600,15 @@ func (s *E2ETestSuite) TestSimMultiSigTx() { // Send coins from validator to multisig. coin := sdk.NewInt64Coin(s.cfg.BondDenom, 15) msgSend := &banktypes.MsgSend{ - FromAddress: val1.Address.String(), + FromAddress: val1.GetAddress().String(), ToAddress: addr.String(), Amount: sdk.NewCoins(coin), } _, err = cli.SubmitTestTx( - val1.ClientCtx, + clientCtx, msgSend, - val1.Address, + val1.GetAddress(), cli.TestTxConfig{}, ) @@ -620,16 +621,16 @@ func (s *E2ETestSuite) TestSimMultiSigTx() { msgSend1 := &banktypes.MsgSend{ FromAddress: addr.String(), - ToAddress: val1.Address.String(), + ToAddress: val1.GetAddress().String(), Amount: sdk.NewCoins( sdk.NewInt64Coin(s.cfg.BondDenom, 5), ), } // Generate multisig transaction. multiGeneratedTx, err := cli.SubmitTestTx( - val1.ClientCtx, + clientCtx, msgSend1, - val1.Address, + val1.GetAddress(), cli.TestTxConfig{ GenOnly: true, Memo: "foobar", @@ -644,27 +645,27 @@ func (s *E2ETestSuite) TestSimMultiSigTx() { // Sign with account1 addr1, err := account1.GetAddress() s.Require().NoError(err) - val1.ClientCtx.HomeDir = strings.Replace(val1.ClientCtx.HomeDir, "simd", "simcli", 1) - account1Signature, err := authtest.TxSignExec(val1.ClientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + clientCtx.HomeDir = strings.Replace(clientCtx.HomeDir, "simd", "simcli", 1) + account1Signature, err := authtest.TxSignExec(clientCtx, addr1, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().NoError(err) sign1File := testutil.WriteToNewTempFile(s.T(), account1Signature.String()) // Sign with account2 addr2, err := account2.GetAddress() s.Require().NoError(err) - account2Signature, err := authtest.TxSignExec(val1.ClientCtx, addr2, multiGeneratedTxFile.Name(), "--multisig", addr.String()) + account2Signature, err := authtest.TxSignExec(clientCtx, addr2, multiGeneratedTxFile.Name(), "--multisig", addr.String()) s.Require().NoError(err) sign2File := testutil.WriteToNewTempFile(s.T(), account2Signature.String()) // multisign tx - val1.ClientCtx.Offline = false - multiSigWith2Signatures, err := authtest.TxMultiSignExec(val1.ClientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name(), sign2File.Name()) + clientCtx.Offline = false + multiSigWith2Signatures, err := authtest.TxMultiSignExec(clientCtx, multisigRecord.Name, multiGeneratedTxFile.Name(), sign1File.Name(), sign2File.Name()) s.Require().NoError(err) // convert from protoJSON to protoBinary for sim - sdkTx, err := val1.ClientCtx.TxConfig.TxJSONDecoder()(multiSigWith2Signatures.Bytes()) + sdkTx, err := clientCtx.TxConfig.TxJSONDecoder()(multiSigWith2Signatures.Bytes()) s.Require().NoError(err) - txBytes, err := val1.ClientCtx.TxConfig.TxEncoder()(sdkTx) + txBytes, err := clientCtx.TxConfig.TxEncoder()(sdkTx) s.Require().NoError(err) // simulate tx @@ -715,7 +716,7 @@ func (s *E2ETestSuite) TestGetBlockWithTxs_GRPC() { } func (s *E2ETestSuite) TestGetBlockWithTxs_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] testCases := []struct { name string url string @@ -724,17 +725,17 @@ func (s *E2ETestSuite) TestGetBlockWithTxs_GRPCGateway() { }{ { "empty params", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/block/0", val.APIAddress), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/block/0", val.GetAPIAddress()), true, "height must not be less than 1 or greater than the current height", }, { "bad height", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/block/%d", val.APIAddress, 9999999), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/block/%d", val.GetAPIAddress(), 9999999), true, "height must not be less than 1 or greater than the current height", }, { "good request", - fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/block/%d", val.APIAddress, s.txHeight), + fmt.Sprintf("%s/cosmos/tx/v1beta1/txs/block/%d", val.GetAPIAddress(), s.txHeight), false, "", }, } @@ -746,7 +747,7 @@ func (s *E2ETestSuite) TestGetBlockWithTxs_GRPCGateway() { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.GetBlockWithTxsResponse - err = val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err = val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) s.Require().Equal("foobar", result.Txs[0].Body.Memo) s.Require().Equal(result.Block.Header.Height, s.txHeight) @@ -756,7 +757,7 @@ func (s *E2ETestSuite) TestGetBlockWithTxs_GRPCGateway() { } func (s *E2ETestSuite) TestTxEncode_GRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() protoTx, err := txBuilderToProtoTx(txBuilder) s.Require().NoError(err) @@ -784,7 +785,7 @@ func (s *E2ETestSuite) TestTxEncode_GRPC() { s.Require().NoError(err) s.Require().NotEmpty(res.GetTxBytes()) - tx, err := val.ClientCtx.TxConfig.TxDecoder()(res.TxBytes) + tx, err := val.GetClientCtx().TxConfig.TxDecoder()(res.TxBytes) s.Require().NoError(err) s.Require().Equal(protoTx.GetMsgs(), tx.GetMsgs()) } @@ -793,7 +794,7 @@ func (s *E2ETestSuite) TestTxEncode_GRPC() { } func (s *E2ETestSuite) TestTxEncode_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() protoTx, err := txBuilderToProtoTx(txBuilder) s.Require().NoError(err) @@ -810,19 +811,19 @@ func (s *E2ETestSuite) TestTxEncode_GRPCGateway() { for _, tc := range testCases { s.Run(tc.name, func() { - req, err := val.ClientCtx.Codec.MarshalJSON(tc.req) + req, err := val.GetClientCtx().Codec.MarshalJSON(tc.req) s.Require().NoError(err) - res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/encode", val.APIAddress), "application/json", req) + res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/encode", val.GetAPIAddress()), "application/json", req) s.Require().NoError(err) if tc.expErr { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.TxEncodeResponse - err := val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err := val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) - tx, err := val.ClientCtx.TxConfig.TxDecoder()(result.TxBytes) + tx, err := val.GetClientCtx().TxConfig.TxDecoder()(result.TxBytes) s.Require().NoError(err) s.Require().Equal(protoTx.GetMsgs(), tx.GetMsgs()) } @@ -831,10 +832,10 @@ func (s *E2ETestSuite) TestTxEncode_GRPCGateway() { } func (s *E2ETestSuite) TestTxDecode_GRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() - encodedTx, err := val.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + encodedTx, err := val.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) s.Require().NoError(err) invalidTxBytes := append(encodedTx, byte(0o00)) @@ -864,7 +865,7 @@ func (s *E2ETestSuite) TestTxDecode_GRPC() { s.Require().NotEmpty(res.GetTx()) txb := authtx.WrapTx(res.Tx) - tx, err := val.ClientCtx.TxConfig.TxEncoder()(txb.GetTx()) + tx, err := val.GetClientCtx().TxConfig.TxEncoder()(txb.GetTx()) s.Require().NoError(err) s.Require().Equal(encodedTx, tx) } @@ -873,10 +874,10 @@ func (s *E2ETestSuite) TestTxDecode_GRPC() { } func (s *E2ETestSuite) TestTxDecode_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() - encodedTxBytes, err := val.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + encodedTxBytes, err := val.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) s.Require().NoError(err) invalidTxBytes := append(encodedTxBytes, byte(0o00)) @@ -894,20 +895,20 @@ func (s *E2ETestSuite) TestTxDecode_GRPCGateway() { for _, tc := range testCases { s.Run(tc.name, func() { - req, err := val.ClientCtx.Codec.MarshalJSON(tc.req) + req, err := val.GetClientCtx().Codec.MarshalJSON(tc.req) s.Require().NoError(err) - res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/decode", val.APIAddress), "application/json", req) + res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/decode", val.GetAPIAddress()), "application/json", req) s.Require().NoError(err) if tc.expErr { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.TxDecodeResponse - err := val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err := val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) txb := authtx.WrapTx(result.Tx) - tx, err := val.ClientCtx.TxConfig.TxEncoder()(txb.GetTx()) + tx, err := val.GetClientCtx().TxConfig.TxEncoder()(txb.GetTx()) s.Require().NoError(err) s.Require().Equal(encodedTxBytes, tx) } @@ -916,17 +917,17 @@ func (s *E2ETestSuite) TestTxDecode_GRPCGateway() { } func (s *E2ETestSuite) readTestAminoTxJSON() ([]byte, *legacytx.StdTx) { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txJSONBytes, err := os.ReadFile("testdata/tx_amino1.json") s.Require().NoError(err) var stdTx legacytx.StdTx - err = val.ClientCtx.LegacyAmino.UnmarshalJSON(txJSONBytes, &stdTx) + err = val.GetClientCtx().LegacyAmino.UnmarshalJSON(txJSONBytes, &stdTx) s.Require().NoError(err) return txJSONBytes, &stdTx } func (s *E2ETestSuite) TestTxEncodeAmino_GRPC() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txJSONBytes, stdTx := s.readTestAminoTxJSON() testCases := []struct { @@ -954,7 +955,7 @@ func (s *E2ETestSuite) TestTxEncodeAmino_GRPC() { s.Require().NotEmpty(res.GetAminoBinary()) var decodedTx legacytx.StdTx - err = val.ClientCtx.LegacyAmino.Unmarshal(res.AminoBinary, &decodedTx) + err = val.GetClientCtx().LegacyAmino.Unmarshal(res.AminoBinary, &decodedTx) s.Require().NoError(err) s.Require().Equal(decodedTx.GetMsgs(), stdTx.GetMsgs()) } @@ -963,7 +964,7 @@ func (s *E2ETestSuite) TestTxEncodeAmino_GRPC() { } func (s *E2ETestSuite) TestTxEncodeAmino_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txJSONBytes, stdTx := s.readTestAminoTxJSON() testCases := []struct { @@ -979,20 +980,20 @@ func (s *E2ETestSuite) TestTxEncodeAmino_GRPCGateway() { for _, tc := range testCases { s.Run(tc.name, func() { - req, err := val.ClientCtx.Codec.MarshalJSON(tc.req) + req, err := val.GetClientCtx().Codec.MarshalJSON(tc.req) s.Require().NoError(err) - res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/encode/amino", val.APIAddress), "application/json", req) + res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/encode/amino", val.GetAPIAddress()), "application/json", req) s.Require().NoError(err) if tc.expErr { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.TxEncodeAminoResponse - err := val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err := val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) var decodedTx legacytx.StdTx - err = val.ClientCtx.LegacyAmino.Unmarshal(result.AminoBinary, &decodedTx) + err = val.GetClientCtx().LegacyAmino.Unmarshal(result.AminoBinary, &decodedTx) s.Require().NoError(err) s.Require().Equal(decodedTx.GetMsgs(), stdTx.GetMsgs()) } @@ -1001,11 +1002,11 @@ func (s *E2ETestSuite) TestTxEncodeAmino_GRPCGateway() { } func (s *E2ETestSuite) readTestAminoTxBinary() ([]byte, *legacytx.StdTx) { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] txJSONBytes, err := os.ReadFile("testdata/tx_amino1.bin") s.Require().NoError(err) var stdTx legacytx.StdTx - err = val.ClientCtx.LegacyAmino.Unmarshal(txJSONBytes, &stdTx) + err = val.GetClientCtx().LegacyAmino.Unmarshal(txJSONBytes, &stdTx) s.Require().NoError(err) return txJSONBytes, &stdTx } @@ -1040,7 +1041,7 @@ func (s *E2ETestSuite) TestTxDecodeAmino_GRPC() { s.Require().NotEmpty(res.GetAminoJson()) var decodedTx legacytx.StdTx - err = s.network.Validators[0].ClientCtx.LegacyAmino.UnmarshalJSON([]byte(res.GetAminoJson()), &decodedTx) + err = s.network.GetValidators()[0].GetClientCtx().LegacyAmino.UnmarshalJSON([]byte(res.GetAminoJson()), &decodedTx) s.Require().NoError(err) s.Require().Equal(stdTx.GetMsgs(), decodedTx.GetMsgs()) } @@ -1049,7 +1050,7 @@ func (s *E2ETestSuite) TestTxDecodeAmino_GRPC() { } func (s *E2ETestSuite) TestTxDecodeAmino_GRPCGateway() { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] encodedTx, stdTx := s.readTestAminoTxBinary() invalidTxBytes := append(encodedTx, byte(0o00)) @@ -1067,20 +1068,20 @@ func (s *E2ETestSuite) TestTxDecodeAmino_GRPCGateway() { for _, tc := range testCases { s.Run(tc.name, func() { - req, err := val.ClientCtx.Codec.MarshalJSON(tc.req) + req, err := val.GetClientCtx().Codec.MarshalJSON(tc.req) s.Require().NoError(err) - res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/decode/amino", val.APIAddress), "application/json", req) + res, err := testutil.PostRequest(fmt.Sprintf("%s/cosmos/tx/v1beta1/decode/amino", val.GetAPIAddress()), "application/json", req) s.Require().NoError(err) if tc.expErr { s.Require().Contains(string(res), tc.expErrMsg) } else { var result tx.TxDecodeAminoResponse - err := val.ClientCtx.Codec.UnmarshalJSON(res, &result) + err := val.GetClientCtx().Codec.UnmarshalJSON(res, &result) s.Require().NoError(err) var decodedTx legacytx.StdTx - err = val.ClientCtx.LegacyAmino.UnmarshalJSON([]byte(result.AminoJson), &decodedTx) + err = val.GetClientCtx().LegacyAmino.UnmarshalJSON([]byte(result.AminoJson), &decodedTx) s.Require().NoError(err) s.Require().Equal(stdTx.GetMsgs(), decodedTx.GetMsgs()) } @@ -1093,17 +1094,17 @@ func TestE2ETestSuite(t *testing.T) { } func (s *E2ETestSuite) mkTxBuilder() client.TxBuilder { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] s.Require().NoError(s.network.WaitForNextBlock()) // prepare txBuilder with msg - txBuilder := val.ClientCtx.TxConfig.NewTxBuilder() + txBuilder := val.GetClientCtx().TxConfig.NewTxBuilder() feeAmount := sdk.Coins{sdk.NewInt64Coin(s.cfg.BondDenom, 10)} gasLimit := testdata.NewTestGasLimit() s.Require().NoError( txBuilder.SetMsgs(&banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val.GetAddress().String(), Amount: sdk.Coins{sdk.NewInt64Coin(s.cfg.BondDenom, 10)}, }), ) @@ -1112,17 +1113,17 @@ func (s *E2ETestSuite) mkTxBuilder() client.TxBuilder { txBuilder.SetMemo("foobar") signers, err := txBuilder.GetTx().GetSigners() s.Require().NoError(err) - s.Require().Equal([][]byte{val.Address}, signers) + s.Require().Equal([][]byte{val.GetAddress()}, signers) // setup txFactory txFactory := clienttx.Factory{}. - WithChainID(val.ClientCtx.ChainID). - WithKeybase(val.ClientCtx.Keyring). - WithTxConfig(val.ClientCtx.TxConfig). + WithChainID(val.GetClientCtx().ChainID). + WithKeybase(val.GetClientCtx().Keyring). + WithTxConfig(val.GetClientCtx().TxConfig). WithSignMode(signing.SignMode_SIGN_MODE_DIRECT) // Sign Tx. - err = authclient.SignTx(txFactory, val.ClientCtx, val.Moniker, txBuilder, false, true) + err = authclient.SignTx(txFactory, val.GetClientCtx(), val.GetMoniker(), txBuilder, false, true) s.Require().NoError(err) return txBuilder diff --git a/tests/integration/server/grpc/server_test.go b/tests/integration/server/grpc/server_test.go index 19cf44cc48..925805dbad 100644 --- a/tests/integration/server/grpc/server_test.go +++ b/tests/integration/server/grpc/server_test.go @@ -33,7 +33,7 @@ type IntegrationTestSuite struct { suite.Suite cfg network.Config - network *network.Network + network network.NetworkI conn *grpc.ClientConn } @@ -51,9 +51,9 @@ func (s *IntegrationTestSuite) SetupSuite() { _, err = s.network.WaitForHeight(2) s.Require().NoError(err) - val0 := s.network.Validators[0] + val0 := s.network.GetValidators()[0] s.conn, err = grpc.Dial( - val0.AppConfig.GRPC.Address, + val0.GetAppConfig().GRPC.Address, grpc.WithInsecure(), //nolint:staticcheck // ignore SA1019, we don't need to use a secure connection for tests grpc.WithDefaultCallOptions(grpc.ForceCodec(codec.NewProtoCodec(s.cfg.InterfaceRegistry).GRPCCodec())), ) @@ -75,20 +75,20 @@ func (s *IntegrationTestSuite) TestGRPCServer_TestService() { } func (s *IntegrationTestSuite) TestGRPCServer_BankBalance() { - val0 := s.network.Validators[0] + val0 := s.network.GetValidators()[0] // gRPC query to bank service should work - denom := fmt.Sprintf("%stoken", val0.Moniker) + denom := fmt.Sprintf("%stoken", val0.GetMoniker()) bankClient := banktypes.NewQueryClient(s.conn) var header metadata.MD bankRes, err := bankClient.Balance( context.Background(), - &banktypes.QueryBalanceRequest{Address: val0.Address.String(), Denom: denom}, + &banktypes.QueryBalanceRequest{Address: val0.GetAddress().String(), Denom: denom}, grpc.Header(&header), // Also fetch grpc header ) s.Require().NoError(err) s.Require().Equal( - sdk.NewCoin(denom, s.network.Config.AccountTokens), + sdk.NewCoin(denom, s.cfg.AccountTokens), *bankRes.GetBalance(), ) blockHeight := header.Get(grpctypes.GRPCBlockHeightHeader) @@ -97,7 +97,7 @@ func (s *IntegrationTestSuite) TestGRPCServer_BankBalance() { // Request metadata should work _, err = bankClient.Balance( metadata.AppendToOutgoingContext(context.Background(), grpctypes.GRPCBlockHeightHeader, "1"), // Add metadata to request - &banktypes.QueryBalanceRequest{Address: val0.Address.String(), Denom: denom}, + &banktypes.QueryBalanceRequest{Address: val0.GetAddress().String(), Denom: denom}, grpc.Header(&header), ) s.Require().NoError(err) @@ -164,11 +164,11 @@ func (s *IntegrationTestSuite) TestGRPCServer_GetTxsEvent() { } func (s *IntegrationTestSuite) TestGRPCServer_BroadcastTx() { - val0 := s.network.Validators[0] + val0 := s.network.GetValidators()[0] txBuilder := s.mkTxBuilder() - txBytes, err := val0.ClientCtx.TxConfig.TxEncoder()(txBuilder.GetTx()) + txBytes, err := val0.GetClientCtx().TxConfig.TxEncoder()(txBuilder.GetTx()) s.Require().NoError(err) // Broadcast the tx via gRPC. @@ -220,7 +220,7 @@ func (s *IntegrationTestSuite) TestGRPCUnpacker() { ir := s.cfg.InterfaceRegistry queryClient := stakingtypes.NewQueryClient(s.conn) validator, err := queryClient.Validator(context.Background(), - &stakingtypes.QueryValidatorRequest{ValidatorAddr: s.network.Validators[0].ValAddress.String()}) + &stakingtypes.QueryValidatorRequest{ValidatorAddr: s.network.GetValidators()[0].GetValAddress().String()}) require.NoError(s.T(), err) // no unpacked interfaces yet, so ConsAddr will be nil @@ -238,17 +238,17 @@ func (s *IntegrationTestSuite) TestGRPCUnpacker() { // mkTxBuilder creates a TxBuilder containing a signed tx from validator 0. func (s *IntegrationTestSuite) mkTxBuilder() client.TxBuilder { - val := s.network.Validators[0] + val := s.network.GetValidators()[0] s.Require().NoError(s.network.WaitForNextBlock()) // prepare txBuilder with msg - txBuilder := val.ClientCtx.TxConfig.NewTxBuilder() + txBuilder := val.GetClientCtx().TxConfig.NewTxBuilder() feeAmount := sdk.Coins{sdk.NewInt64Coin(s.cfg.BondDenom, 10)} gasLimit := testdata.NewTestGasLimit() s.Require().NoError( txBuilder.SetMsgs(&banktypes.MsgSend{ - FromAddress: val.Address.String(), - ToAddress: val.Address.String(), + FromAddress: val.GetAddress().String(), + ToAddress: val.GetAddress().String(), Amount: sdk.Coins{sdk.NewInt64Coin(s.cfg.BondDenom, 10)}, }), ) @@ -258,13 +258,13 @@ func (s *IntegrationTestSuite) mkTxBuilder() client.TxBuilder { // setup txFactory txFactory := clienttx.Factory{}. - WithChainID(val.ClientCtx.ChainID). - WithKeybase(val.ClientCtx.Keyring). - WithTxConfig(val.ClientCtx.TxConfig). + WithChainID(val.GetClientCtx().ChainID). + WithKeybase(val.GetClientCtx().Keyring). + WithTxConfig(val.GetClientCtx().TxConfig). WithSignMode(signing.SignMode_SIGN_MODE_DIRECT) // Sign Tx. - err := authclient.SignTx(txFactory, val.ClientCtx, val.Moniker, txBuilder, false, true) + err := authclient.SignTx(txFactory, val.GetClientCtx(), val.GetMoniker(), txBuilder, false, true) s.Require().NoError(err) return txBuilder diff --git a/testutil/cli/tx.go b/testutil/cli/tx.go index 93d3d8a45c..1adf81bd0e 100644 --- a/testutil/cli/tx.go +++ b/testutil/cli/tx.go @@ -13,7 +13,7 @@ import ( // CheckTxCode verifies that the transaction result returns a specific code // Takes a network, wait for two blocks and fetch the transaction from its hash -func CheckTxCode(network *network.Network, clientCtx client.Context, txHash string, expectedCode uint32) error { +func CheckTxCode(network network.NetworkI, clientCtx client.Context, txHash string, expectedCode uint32) error { // wait for 2 blocks for i := 0; i < 2; i++ { if err := network.WaitForNextBlock(); err != nil { @@ -41,7 +41,7 @@ func CheckTxCode(network *network.Network, clientCtx client.Context, txHash stri // GetTxResponse returns queries the transaction response of a transaction from its hash // Takes a network, wait for two blocks and fetch the transaction from its hash -func GetTxResponse(network *network.Network, clientCtx client.Context, txHash string) (sdk.TxResponse, error) { +func GetTxResponse(network network.NetworkI, clientCtx client.Context, txHash string) (sdk.TxResponse, error) { // wait for 2 blocks for i := 0; i < 2; i++ { if err := network.WaitForNextBlock(); err != nil { diff --git a/testutil/network/interface.go b/testutil/network/interface.go new file mode 100644 index 0000000000..5503e1571f --- /dev/null +++ b/testutil/network/interface.go @@ -0,0 +1,44 @@ +package network + +import ( + "time" + + "github.com/cosmos/cosmos-sdk/client" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" + "github.com/cosmos/cosmos-sdk/server" + srvconfig "github.com/cosmos/cosmos-sdk/server/config" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// NetworkI is an interface for a network of validators. +// It is used to abstract over the different network types (in-process, docker, etc.). +// if used there is a requirement to expose query and tx client for the nodes +type NetworkI interface { + // GetValidators returns the validators in the network + GetValidators() []ValidatorI + // WaitForNextBlock waits for the network to reach the next block + WaitForNextBlock() error + // WaitForHeight waits for the network to reach the given height + WaitForHeight(height int64) (int64, error) + // WaitForHeightWithTimeout waits for the network to reach the given height or times out + WaitForHeightWithTimeout(int64, time.Duration) (int64, error) + // RetryForBlocks retries the given function until it returns no error or the given number of blocks has passed + RetryForBlocks(retryFunc func() error, blocks int) error + // LatestHeight returns the latest height of the network + LatestHeight() (int64, error) + + Cleanup() +} + +// ValidatorI expose a validator's context and configuration +type ValidatorI interface { + GetCtx() *server.Context + GetAppConfig() *srvconfig.Config + GetAddress() sdk.AccAddress + GetValAddress() sdk.ValAddress + GetClientCtx() client.Context + GetAPIAddress() string + GetRPCAddress() string + GetPubKey() cryptotypes.PubKey + GetMoniker() string +} diff --git a/testutil/network/network.go b/testutil/network/network.go index 96621b7845..86d0ff0f69 100644 --- a/testutil/network/network.go +++ b/testutil/network/network.go @@ -6,7 +6,6 @@ import ( "encoding/json" "errors" "fmt" - "net/http" "net/url" "os" "os/signal" @@ -17,12 +16,8 @@ import ( "testing" "time" - "github.com/cometbft/cometbft/node" - cmtclient "github.com/cometbft/cometbft/rpc/client" dbm "github.com/cosmos/cosmos-db" "github.com/spf13/cobra" - "golang.org/x/sync/errgroup" - "google.golang.org/grpc" "cosmossdk.io/core/address" "cosmossdk.io/depinject" @@ -51,7 +46,6 @@ import ( cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/cosmos/cosmos-sdk/runtime" "github.com/cosmos/cosmos-sdk/server" - "github.com/cosmos/cosmos-sdk/server/api" srvconfig "github.com/cosmos/cosmos-sdk/server/config" servertypes "github.com/cosmos/cosmos-sdk/server/types" "github.com/cosmos/cosmos-sdk/testutil" @@ -274,39 +268,6 @@ type ( Config Config } - // Validator defines an in-process CometBFT validator node. Through this object, - // a client can make RPC and API calls and interact with any client command - // or handler. - Validator struct { - AppConfig *srvconfig.Config - ClientCtx client.Context - Ctx *server.Context - Dir string - NodeID string - PubKey cryptotypes.PubKey - Moniker string - APIAddress string - RPCAddress string - P2PAddress string - Address sdk.AccAddress - ValAddress sdk.ValAddress - RPCClient cmtclient.Client - - app servertypes.Application - tmNode *node.Node - api *api.Server - grpc *grpc.Server - grpcWeb *http.Server - errGroup *errgroup.Group - cancelFn context.CancelFunc - } - - // ValidatorI expose a validator's context and configuration - ValidatorI interface { - GetCtx() *server.Context - GetAppConfig() *srvconfig.Config - } - // Logger is a network logger interface that exposes testnet-level Log() methods for an in-process testing network // This is not to be confused with logging that may happen at an individual node or validator level Logger interface { @@ -316,19 +277,10 @@ type ( ) var ( - _ Logger = (*testing.T)(nil) - _ Logger = (*CLILogger)(nil) - _ ValidatorI = Validator{} + _ Logger = (*testing.T)(nil) + _ Logger = (*CLILogger)(nil) ) -func (v Validator) GetCtx() *server.Context { - return v.Ctx -} - -func (v Validator) GetAppConfig() *srvconfig.Config { - return v.AppConfig -} - // CLILogger wraps a cobra.Command and provides command logging methods. type CLILogger struct { cmd *cobra.Command @@ -350,7 +302,7 @@ func NewCLILogger(cmd *cobra.Command) CLILogger { } // New creates a new Network for integration tests or in-process testnets run via the CLI -func New(l Logger, baseDir string, cfg Config) (*Network, error) { +func New(l Logger, baseDir string, cfg Config) (NetworkI, error) { // only one caller/test can create and use a network at a time l.Log("acquiring test network lock") lock.Lock() @@ -612,17 +564,17 @@ func New(l Logger, baseDir string, cfg Config) (*Network, error) { network.Validators[i] = &Validator{ AppConfig: appCfg, - ClientCtx: clientCtx, - Ctx: ctx, - Dir: filepath.Join(network.BaseDir, nodeDirName), - NodeID: nodeID, - PubKey: pubKey, - Moniker: nodeDirName, - RPCAddress: cmtCfg.RPC.ListenAddress, - P2PAddress: cmtCfg.P2P.ListenAddress, - APIAddress: apiAddr, - Address: addr, - ValAddress: sdk.ValAddress(addr), + clientCtx: clientCtx, + ctx: ctx, + dir: filepath.Join(network.BaseDir, nodeDirName), + nodeID: nodeID, + pubKey: pubKey, + moniker: nodeDirName, + rPCAddress: cmtCfg.RPC.ListenAddress, + p2PAddress: cmtCfg.P2P.ListenAddress, + aPIAddress: apiAddr, + address: addr, + valAddress: sdk.ValAddress(addr), } } @@ -696,7 +648,7 @@ func (n *Network) LatestHeight() (int64, error) { var latestHeight int64 val := n.Validators[0] - queryClient := cmtservice.NewServiceClient(val.ClientCtx) + queryClient := cmtservice.NewServiceClient(val.clientCtx) for { select { @@ -730,6 +682,14 @@ func (n *Network) WaitForHeight(h int64) (int64, error) { return n.WaitForHeightWithTimeout(h, 10*time.Second) } +func (n *Network) GetValidators() []ValidatorI { + var vals []ValidatorI + for _, val := range n.Validators { + vals = append(vals, val) + } + return vals +} + // WaitForHeightWithTimeout is the same as WaitForHeight except the caller can // provide a custom timeout. func (n *Network) WaitForHeightWithTimeout(h int64, t time.Duration) (int64, error) { @@ -745,7 +705,7 @@ func (n *Network) WaitForHeightWithTimeout(h int64, t time.Duration) (int64, err var latestHeight int64 val := n.Validators[0] - queryClient := cmtservice.NewServiceClient(val.ClientCtx) + queryClient := cmtservice.NewServiceClient(val.clientCtx) for { select { diff --git a/testutil/network/util.go b/testutil/network/util.go index 75a0b8eb24..e78f82ce82 100644 --- a/testutil/network/util.go +++ b/testutil/network/util.go @@ -31,8 +31,8 @@ import ( ) func startInProcess(cfg Config, val *Validator) error { - logger := val.Ctx.Logger - cmtCfg := val.Ctx.Config + logger := val.ctx.Logger + cmtCfg := val.ctx.Config cmtCfg.Instrumentation.Prometheus = false if err := val.AppConfig.ValidateBasic(); err != nil { @@ -44,7 +44,7 @@ func startInProcess(cfg Config, val *Validator) error { return err } - app := cfg.AppConstructor(*val) + app := cfg.AppConstructor(val) val.app = app appGenesisProvider := func() (*cmttypes.GenesisDoc, error) { @@ -65,7 +65,7 @@ func startInProcess(cfg Config, val *Validator) error { appGenesisProvider, cmtcfg.DefaultDBProvider, node.DefaultMetricsProvider(cmtCfg.Instrumentation), - servercmtlog.CometLoggerWrapper{Logger: logger.With("module", val.Moniker)}, + servercmtlog.CometLoggerWrapper{Logger: logger.With("module", val.moniker)}, ) if err != nil { return err @@ -76,18 +76,18 @@ func startInProcess(cfg Config, val *Validator) error { } val.tmNode = tmNode - if val.RPCAddress != "" { - val.RPCClient = local.New(tmNode) + if val.rPCAddress != "" { + val.rPCClient = local.New(tmNode) } // We'll need a RPC client if the validator exposes a gRPC or REST endpoint. - if val.APIAddress != "" || val.AppConfig.GRPC.Enable { - val.ClientCtx = val.ClientCtx. - WithClient(val.RPCClient) + if val.aPIAddress != "" || val.AppConfig.GRPC.Enable { + val.clientCtx = val.clientCtx. + WithClient(val.rPCClient) - app.RegisterTxService(val.ClientCtx) - app.RegisterTendermintService(val.ClientCtx) - app.RegisterNodeService(val.ClientCtx, *val.AppConfig) + app.RegisterTxService(val.clientCtx) + app.RegisterTendermintService(val.clientCtx) + app.RegisterNodeService(val.clientCtx, *val.AppConfig) } ctx := context.Background() @@ -97,7 +97,7 @@ func startInProcess(cfg Config, val *Validator) error { grpcCfg := val.AppConfig.GRPC if grpcCfg.Enable { - grpcSrv, err := servergrpc.NewGRPCServer(val.ClientCtx, app, grpcCfg) + grpcSrv, err := servergrpc.NewGRPCServer(val.clientCtx, app, grpcCfg) if err != nil { return err } @@ -111,8 +111,8 @@ func startInProcess(cfg Config, val *Validator) error { val.grpc = grpcSrv } - if val.APIAddress != "" { - apiSrv := api.New(val.ClientCtx, logger.With(log.ModuleKey, "api-server"), val.grpc) + if val.aPIAddress != "" { + apiSrv := api.New(val.clientCtx, logger.With(log.ModuleKey, "api-server"), val.grpc) app.RegisterAPIRoutes(apiSrv, val.AppConfig.API) val.errGroup.Go(func() error { @@ -132,15 +132,15 @@ func collectGenFiles(cfg Config, vals []*Validator, outputDir string) error { } for i := 0; i < cfg.NumValidators; i++ { - cmtCfg := vals[i].Ctx.Config + cmtCfg := vals[i].ctx.Config - nodeDir := filepath.Join(outputDir, vals[i].Moniker, "simd") + nodeDir := filepath.Join(outputDir, vals[i].moniker, "simd") gentxsDir := filepath.Join(outputDir, "gentxs") - cmtCfg.Moniker = vals[i].Moniker + cmtCfg.Moniker = vals[i].moniker cmtCfg.SetRoot(nodeDir) - initCfg := genutiltypes.NewInitConfig(cfg.ChainID, gentxsDir, vals[i].NodeID, vals[i].PubKey) + initCfg := genutiltypes.NewInitConfig(cfg.ChainID, gentxsDir, vals[i].nodeID, vals[i].pubKey) genFile := cmtCfg.GenesisFile() appGenesis, err := genutiltypes.AppGenesisFromFile(genFile) diff --git a/testutil/network/validator.go b/testutil/network/validator.go new file mode 100644 index 0000000000..261ecde385 --- /dev/null +++ b/testutil/network/validator.go @@ -0,0 +1,84 @@ +package network + +import ( + "context" + "net/http" + + "github.com/cometbft/cometbft/node" + cmtclient "github.com/cometbft/cometbft/rpc/client" + "golang.org/x/sync/errgroup" + "google.golang.org/grpc" + + "github.com/cosmos/cosmos-sdk/client" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" + "github.com/cosmos/cosmos-sdk/server" + "github.com/cosmos/cosmos-sdk/server/api" + srvconfig "github.com/cosmos/cosmos-sdk/server/config" + servertypes "github.com/cosmos/cosmos-sdk/server/types" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// Validator defines an in-process CometBFT validator node. Through this object, +// a client can make RPC and API calls and interact with any client command +// or handler. +type Validator struct { + AppConfig *srvconfig.Config + clientCtx client.Context + ctx *server.Context + dir string + nodeID string + pubKey cryptotypes.PubKey + moniker string + aPIAddress string + rPCAddress string + p2PAddress string + address sdk.AccAddress + valAddress sdk.ValAddress + rPCClient cmtclient.Client + + app servertypes.Application + tmNode *node.Node + api *api.Server + grpc *grpc.Server + grpcWeb *http.Server + errGroup *errgroup.Group + cancelFn context.CancelFunc +} + +var _ ValidatorI = &Validator{} + +func (v *Validator) GetCtx() *server.Context { + return v.ctx +} + +func (v *Validator) GetClientCtx() client.Context { + return v.clientCtx +} + +func (v *Validator) GetAppConfig() *srvconfig.Config { + return v.AppConfig +} + +func (v *Validator) GetAddress() sdk.AccAddress { + return v.address +} + +func (v *Validator) GetValAddress() sdk.ValAddress { + return v.valAddress +} + +func (v *Validator) GetAPIAddress() string { + return v.aPIAddress +} + +func (v *Validator) GetRPCAddress() string { + return v.rPCAddress +} + +func (v *Validator) GetPubKey() cryptotypes.PubKey { + return v.pubKey +} + +func (v *Validator) GetMoniker() string { + return v.moniker +} diff --git a/x/auth/types/account_retriever_test.go b/x/auth/types/account_retriever_test.go index b90a3d21a0..4e257e716f 100644 --- a/x/auth/types/account_retriever_test.go +++ b/x/auth/types/account_retriever_test.go @@ -23,24 +23,24 @@ func TestAccountRetriever(t *testing.T) { _, err = network.WaitForHeight(3) require.NoError(t, err) - val := network.Validators[0] - clientCtx := val.ClientCtx + val := network.GetValidators()[0] + clientCtx := val.GetClientCtx() ar := types.AccountRetriever{} clientCtx = clientCtx.WithHeight(2) - acc, err := ar.GetAccount(clientCtx, val.Address) + acc, err := ar.GetAccount(clientCtx, val.GetAddress()) require.NoError(t, err) require.NotNil(t, acc) - acc, height, err := ar.GetAccountWithHeight(clientCtx, val.Address) + acc, height, err := ar.GetAccountWithHeight(clientCtx, val.GetAddress()) require.NoError(t, err) require.NotNil(t, acc) require.Equal(t, height, int64(2)) - require.NoError(t, ar.EnsureExists(clientCtx, val.Address)) + require.NoError(t, ar.EnsureExists(clientCtx, val.GetAddress())) - accNum, accSeq, err := ar.GetAccountNumberSequence(clientCtx, val.Address) + accNum, accSeq, err := ar.GetAccountNumberSequence(clientCtx, val.GetAddress()) require.NoError(t, err) require.Equal(t, accNum, uint64(0)) require.Equal(t, accSeq, uint64(1))