From 0b963f6c500a6c840727a7bbcda4d4edff6e1c3e Mon Sep 17 00:00:00 2001 From: Youngtaek Yoon Date: Wed, 7 Feb 2024 09:14:35 +0000 Subject: [PATCH] Query tx in blocks --- tests/e2e/foundation/suite.go | 39 +++++++++++++++++++++-------------- tests/e2e/foundation/tx.go | 38 +++++++++++++++++++++++++++------- 2 files changed, 53 insertions(+), 24 deletions(-) diff --git a/tests/e2e/foundation/suite.go b/tests/e2e/foundation/suite.go index 9d65a7d9bb..108b98db09 100644 --- a/tests/e2e/foundation/suite.go +++ b/tests/e2e/foundation/suite.go @@ -1,11 +1,13 @@ package foundation import ( + "encoding/hex" "encoding/json" "fmt" "time" "github.com/stretchr/testify/suite" + "github.com/cosmos/gogoproto/proto" "cosmossdk.io/core/address" "cosmossdk.io/math" @@ -135,23 +137,13 @@ func (s *E2ETestSuite) SetupSuite() { s.createAccount("leavingmember", leavingMemberMnemonic) s.createAccount("permanentmember", permanentMemberMnemonic) - s.submitProposal(&foundation.MsgWithdrawFromTreasury{ + s.proposalID = s.submitProposal(&foundation.MsgWithdrawFromTreasury{ Authority: s.bytesToString(s.authority), To: s.bytesToString(s.stranger), Amount: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(123))), }, false) - s.proposalID = 1 s.vote(s.proposalID, []sdk.AccAddress{s.leavingMember, s.permanentMember}) - // submit another two proposals without votes - for range make([]struct{}, 2) { - s.submitProposal(&foundation.MsgWithdrawFromTreasury{ - Authority: s.bytesToString(s.authority), - To: s.bytesToString(s.stranger), - Amount: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(123))), - }, false) - } - s.setupHeight, err = s.network.LatestHeight() s.Require().NoError(err) } @@ -168,7 +160,7 @@ func (s *E2ETestSuite) bytesToString(addr sdk.AccAddress) string { } // submit a proposal -func (s *E2ETestSuite) submitProposal(msg sdk.Msg, try bool) { +func (s *E2ETestSuite) submitProposal(msg sdk.Msg, try bool) uint64 { val := s.network.Validators[0] proposers := []string{s.bytesToString(s.permanentMember)} @@ -190,7 +182,18 @@ func (s *E2ETestSuite) submitProposal(msg sdk.Msg, try bool) { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out.String()) s.Require().Zero(res.Code, out.String()) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) + + dataBytes, err := hex.DecodeString(res.Data) + s.Require().NoError(err) + var data sdk.TxMsgData + s.Require().NoError(proto.Unmarshal(dataBytes, &data)) + var msgResp foundation.MsgSubmitProposalResponse + s.Require().NoError(proto.Unmarshal(data.MsgResponses[0].Value, &msgResp), data.MsgResponses[0]) + + return msgResp.ProposalId } func (s *E2ETestSuite) vote(proposalID uint64, voters []sdk.AccAddress) { @@ -209,9 +212,11 @@ func (s *E2ETestSuite) vote(proposalID uint64, voters []sdk.AccAddress) { var res sdk.TxResponse s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out.String()) s.Require().Zero(res.Code, out.String()) - } - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) + } } func (s *E2ETestSuite) msgToString(msg sdk.Msg) string { @@ -260,5 +265,7 @@ func (s *E2ETestSuite) createAccount(uid, mnemonic string) { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out.String()) s.Require().Zero(res.Code, out.String()) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) } diff --git a/tests/e2e/foundation/tx.go b/tests/e2e/foundation/tx.go index 4a90845de8..616f7b39be 100644 --- a/tests/e2e/foundation/tx.go +++ b/tests/e2e/foundation/tx.go @@ -61,7 +61,9 @@ func (s *E2ETestSuite) TestNewTxCmdFundTreasury() { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out) s.Require().Zero(res.Code, out) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) }) } } @@ -276,7 +278,9 @@ func (s *E2ETestSuite) TestNewTxCmdSubmitProposal() { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out) s.Require().Zero(res.Code, out) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) }) } } @@ -290,7 +294,12 @@ func (s *E2ETestSuite) TestNewTxCmdWithdrawProposal() { fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)))), } - proposalID := 2 + proposalID := s.submitProposal(&foundation.MsgWithdrawFromTreasury{ + Authority: s.bytesToString(s.authority), + To: s.bytesToString(s.stranger), + Amount: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(123))), + }, false) + testCases := map[string]struct { args []string valid bool @@ -328,7 +337,9 @@ func (s *E2ETestSuite) TestNewTxCmdWithdrawProposal() { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out) s.Require().Zero(res.Code, out) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) }) } } @@ -342,7 +353,12 @@ func (s *E2ETestSuite) TestNewTxCmdVote() { fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, math.NewInt(10)))), } - proposalID := 3 + proposalID := s.submitProposal(&foundation.MsgWithdrawFromTreasury{ + Authority: s.bytesToString(s.authority), + To: s.bytesToString(s.stranger), + Amount: sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, math.NewInt(123))), + }, false) + testCases := map[string]struct { args []string valid bool @@ -384,7 +400,9 @@ func (s *E2ETestSuite) TestNewTxCmdVote() { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out) s.Require().Zero(res.Code, out) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) }) } } @@ -435,7 +453,9 @@ func (s *E2ETestSuite) TestNewTxCmdExec() { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out) s.Require().Zero(res.Code, out) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) }) } } @@ -547,7 +567,9 @@ func (s *E2ETestSuite) TestNewTxCmdLeaveFoundation() { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &res), out) s.Require().Zero(res.Code, out) - s.Require().NoError(s.network.WaitForNextBlock()) + res, err = clitestutil.GetTxResponse(s.network, val.ClientCtx, res.TxHash) + s.Require().NoError(err) + s.Require().Zero(res.Code, res.RawLog) }) } }