From 346057f57e32fee5137ba50e6663aeaff1c50be9 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 11:13:44 +0100 Subject: [PATCH 1/8] test: adding TestMsgPayPacketFeeSingleSender --- e2e/fee_middleware_test.go | 70 ++++++++++++++++++++++++++++++++++++++ e2e/testvalues/values.go | 4 +++ 2 files changed, 74 insertions(+) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index f8c05822999..0f5f915a9c0 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -15,6 +15,8 @@ import ( "e2e/testvalues" feetypes "github.com/cosmos/ibc-go/v4/modules/apps/29-fee/types" + transfertypes "github.com/cosmos/ibc-go/v4/modules/apps/transfer/types" + clienttypes "github.com/cosmos/ibc-go/v4/modules/core/02-client/types" channeltypes "github.com/cosmos/ibc-go/v4/modules/core/04-channel/types" ) @@ -198,6 +200,74 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeAsyncSingleSender() { }) } +func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeSingleSender() { + t := s.T() + ctx := context.TODO() + + relayer, channelA := s.SetupChainsRelayerAndChannel(ctx, feeMiddlewareChannelOptions()) + _ = relayer + + chainA, chainB := s.GetChains() + + transferAmount := testvalues.DefaultTransferAmount(chainA.Config().Denom) + + chainAWallet := s.CreateUserOnChainA(ctx, testvalues.StartingTokenAmount) + chainBWallet := s.CreateUserOnChainB(ctx, testvalues.StartingTokenAmount) + + t.Run("relayer wallets recovered", func(t *testing.T) { + err := s.RecoverRelayerWallets(ctx, relayer) + s.Require().NoError(err) + }) + + chainARelayerWallet, chainBRelayerWallet, err := s.GetRelayerWallets(relayer) + t.Run("relayer wallets fetched", func(t *testing.T) { + s.Require().NoError(err) + }) + + s.Require().NoError(test.WaitForBlocks(ctx, 1, chainA, chainB), "failed to wait for blocks") + + _, chainBRelayerUser := s.GetRelayerUsers(ctx) + + t.Run("register counter party payee", func(t *testing.T) { + resp, err := s.RegisterCounterPartyPayee(ctx, chainB, chainBRelayerUser, channelA.Counterparty.PortID, channelA.Counterparty.ChannelID, chainBRelayerWallet.Address, chainARelayerWallet.Address) + s.Require().NoError(err) + s.AssertValidTxResponse(resp) + }) + + t.Run("verify counter party payee", func(t *testing.T) { + address, err := s.QueryCounterPartyPayee(ctx, chainB, chainBRelayerWallet.Address, channelA.Counterparty.ChannelID) + s.Require().NoError(err) + s.Require().Equal(chainARelayerWallet.Address, address) + }) + + t.Run("no incentivized packets", func(t *testing.T) { + packets, err := s.QueryIncentivizedPacketsForChannel(ctx, chainA, channelA.PortID, channelA.ChannelID) + s.Require().NoError(err) + s.Require().Empty(packets) + }) + + testFee := testvalues.DefaultFee(chainA.Config().Denom) + payPacketFeeMsg := feetypes.NewMsgPayPacketFee(testFee, channelA.PortID, channelA.ChannelID, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), nil) + transferMsg := transfertypes.NewMsgTransfer(channelA.PortID, channelA.ChannelID, transferAmount, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), chainBWallet.Bech32Address(chainB.Config().Bech32Prefix), clienttypes.NewHeight(1, 1000), 0) + resp, err := s.BroadcastMessages(ctx, chainA, chainAWallet, payPacketFeeMsg, transferMsg) + + t.Run("transfer successful", func(t *testing.T) { + s.AssertValidTxResponse(resp) + s.Require().NoError(err) + }) + + t.Run("there should be incentivized packets", func(t *testing.T) { + packets, err := s.QueryIncentivizedPacketsForChannel(ctx, chainA, channelA.PortID, channelA.ChannelID) + s.Require().NoError(err) + s.Require().Len(packets, 1) + actualFee := packets[0].PacketFees[0].Fee + + s.Require().True(actualFee.RecvFee.IsEqual(testFee.RecvFee)) + s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee)) + s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee)) + }) +} + // feeMiddlewareChannelOptions configures both of the chains to have fee middleware enabled. func feeMiddlewareChannelOptions() func(options *ibc.CreateChannelOptions) { return func(opts *ibc.CreateChannelOptions) { diff --git a/e2e/testvalues/values.go b/e2e/testvalues/values.go index b91cfae1b84..7b0822c9f1c 100644 --- a/e2e/testvalues/values.go +++ b/e2e/testvalues/values.go @@ -18,3 +18,7 @@ func DefaultFee(denom string) feetypes.Fee { TimeoutFee: sdk.NewCoins(sdk.NewCoin(denom, sdk.NewInt(10))), } } + +func DefaultTransferAmount(denom string) sdk.Coin { + return sdk.Coin{Denom: denom, Amount: sdk.NewInt(IBCTransferAmount)} +} From 2145a41701f67ae7e7e128b44a727d799bc23853 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 11:28:39 +0100 Subject: [PATCH 2/8] wip: updating test --- e2e/fee_middleware_test.go | 43 ++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index 0f5f915a9c0..268603f2652 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -200,7 +200,7 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeAsyncSingleSender() { }) } -func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeSingleSender() { +func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { t := s.T() ctx := context.TODO() @@ -209,6 +209,12 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeSingleSender() { chainA, chainB := s.GetChains() + var ( + chainADenom = chainA.Config().Denom + testFee = testvalues.DefaultFee(chainADenom) + multiMsgTxResponse sdk.TxResponse + ) + transferAmount := testvalues.DefaultTransferAmount(chainA.Config().Denom) chainAWallet := s.CreateUserOnChainA(ctx, testvalues.StartingTokenAmount) @@ -229,9 +235,9 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeSingleSender() { _, chainBRelayerUser := s.GetRelayerUsers(ctx) t.Run("register counter party payee", func(t *testing.T) { - resp, err := s.RegisterCounterPartyPayee(ctx, chainB, chainBRelayerUser, channelA.Counterparty.PortID, channelA.Counterparty.ChannelID, chainBRelayerWallet.Address, chainARelayerWallet.Address) + multiMsgTxResponse, err = s.RegisterCounterPartyPayee(ctx, chainB, chainBRelayerUser, channelA.Counterparty.PortID, channelA.Counterparty.ChannelID, chainBRelayerWallet.Address, chainARelayerWallet.Address) s.Require().NoError(err) - s.AssertValidTxResponse(resp) + s.AssertValidTxResponse(multiMsgTxResponse) }) t.Run("verify counter party payee", func(t *testing.T) { @@ -246,7 +252,6 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeSingleSender() { s.Require().Empty(packets) }) - testFee := testvalues.DefaultFee(chainA.Config().Denom) payPacketFeeMsg := feetypes.NewMsgPayPacketFee(testFee, channelA.PortID, channelA.ChannelID, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), nil) transferMsg := transfertypes.NewMsgTransfer(channelA.PortID, channelA.ChannelID, transferAmount, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), chainBWallet.Bech32Address(chainB.Config().Bech32Prefix), clienttypes.NewHeight(1, 1000), 0) resp, err := s.BroadcastMessages(ctx, chainA, chainAWallet, payPacketFeeMsg, transferMsg) @@ -266,6 +271,36 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeSingleSender() { s.Require().True(actualFee.AckFee.IsEqual(testFee.AckFee)) s.Require().True(actualFee.TimeoutFee.IsEqual(testFee.TimeoutFee)) }) + + t.Run("balance should be lowered by sum of recv ack and timeout", func(t *testing.T) { + // The balance should be lowered by the sum of the recv, ack and timeout fees. + actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet) + s.Require().NoError(err) + + gasFees := chainA.GetGasFeesInNativeDenom(multiMsgTxResponse.GasWanted) + expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount - gasFees - testFee.Total().AmountOf(chainADenom).Int64() + s.Require().Equal(expected, actualBalance) + }) + + t.Run("start relayer", func(t *testing.T) { + s.StartRelayer(relayer) + }) + + t.Run("packets are relayed", func(t *testing.T) { + packets, err := s.QueryIncentivizedPacketsForChannel(ctx, chainA, channelA.PortID, channelA.ChannelID) + s.Require().NoError(err) + s.Require().Empty(packets) + }) + + t.Run("timeout fee is refunded", func(t *testing.T) { + actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet) + s.Require().NoError(err) + + gasFees := chainA.GetGasFeesInNativeDenom(multiMsgTxResponse.GasWanted) + // once the relayer has relayed the packets, the timeout fee should be refunded. + expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount - gasFees - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64() + s.Require().Equal(expected, actualBalance) + }) } // feeMiddlewareChannelOptions configures both of the chains to have fee middleware enabled. From 151f686ae111a8ebfa8b974ec8cd51072012efa4 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 11:44:17 +0100 Subject: [PATCH 3/8] test: adding timeout in nanoseconds --- e2e/fee_middleware_test.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index 268603f2652..3c6d112e75a 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -3,6 +3,7 @@ package e2e import ( "context" "testing" + "time" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/strangelove-ventures/ibctest/broadcast" @@ -253,7 +254,8 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { }) payPacketFeeMsg := feetypes.NewMsgPayPacketFee(testFee, channelA.PortID, channelA.ChannelID, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), nil) - transferMsg := transfertypes.NewMsgTransfer(channelA.PortID, channelA.ChannelID, transferAmount, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), chainBWallet.Bech32Address(chainB.Config().Bech32Prefix), clienttypes.NewHeight(1, 1000), 0) + oneHourFromNow := uint64(time.Now().Add(time.Hour * 1).Nanosecond()) + transferMsg := transfertypes.NewMsgTransfer(channelA.PortID, channelA.ChannelID, transferAmount, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), chainBWallet.Bech32Address(chainB.Config().Bech32Prefix), clienttypes.ZeroHeight(), oneHourFromNow) resp, err := s.BroadcastMessages(ctx, chainA, chainAWallet, payPacketFeeMsg, transferMsg) t.Run("transfer successful", func(t *testing.T) { From da7642e9362ebf5e83a6fcd2299bcdc6e7217cc0 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 11:53:46 +0100 Subject: [PATCH 4/8] test: reverting to height timeout --- e2e/fee_middleware_test.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index 3c6d112e75a..268603f2652 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -3,7 +3,6 @@ package e2e import ( "context" "testing" - "time" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/strangelove-ventures/ibctest/broadcast" @@ -254,8 +253,7 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { }) payPacketFeeMsg := feetypes.NewMsgPayPacketFee(testFee, channelA.PortID, channelA.ChannelID, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), nil) - oneHourFromNow := uint64(time.Now().Add(time.Hour * 1).Nanosecond()) - transferMsg := transfertypes.NewMsgTransfer(channelA.PortID, channelA.ChannelID, transferAmount, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), chainBWallet.Bech32Address(chainB.Config().Bech32Prefix), clienttypes.ZeroHeight(), oneHourFromNow) + transferMsg := transfertypes.NewMsgTransfer(channelA.PortID, channelA.ChannelID, transferAmount, chainAWallet.Bech32Address(chainA.Config().Bech32Prefix), chainBWallet.Bech32Address(chainB.Config().Bech32Prefix), clienttypes.NewHeight(1, 1000), 0) resp, err := s.BroadcastMessages(ctx, chainA, chainAWallet, payPacketFeeMsg, transferMsg) t.Run("transfer successful", func(t *testing.T) { From 6329988fe140b86e31226593b3487af6f68313f2 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 13:44:54 +0100 Subject: [PATCH 5/8] test: asserting amount of relayer a wallet --- e2e/fee_middleware_test.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index 268603f2652..0403bcdd297 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -3,6 +3,7 @@ package e2e import ( "context" "testing" + "time" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/strangelove-ventures/ibctest/broadcast" @@ -232,7 +233,11 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { s.Require().NoError(test.WaitForBlocks(ctx, 1, chainA, chainB), "failed to wait for blocks") - _, chainBRelayerUser := s.GetRelayerUsers(ctx) + chainARelayerUser, chainBRelayerUser := s.GetRelayerUsers(ctx) + + relayerAStartingBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) + s.Require().NoError(err) + t.Logf("relayer A user starting with balance: %d", relayerAStartingBalance) t.Run("register counter party payee", func(t *testing.T) { multiMsgTxResponse, err = s.RegisterCounterPartyPayee(ctx, chainB, chainBRelayerUser, channelA.Counterparty.PortID, channelA.Counterparty.ChannelID, chainBRelayerWallet.Address, chainARelayerWallet.Address) @@ -284,6 +289,7 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { t.Run("start relayer", func(t *testing.T) { s.StartRelayer(relayer) + time.Sleep(10 * time.Second) }) t.Run("packets are relayed", func(t *testing.T) { @@ -301,6 +307,20 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount - gasFees - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64() s.Require().Equal(expected, actualBalance) }) + + t.Run("relayerA is paid ack fee", func(t *testing.T) { + actualBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) + s.Require().NoError(err) + expected := relayerAStartingBalance + testFee.AckFee.AmountOf(chainADenom).Int64() + s.Require().Equal(expected, actualBalance) + }) + + t.Run("relayerB is paid recv fee", func(t *testing.T) { + //actualBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) + //s.Require().NoError(err) + //expected := relayerAStartingBalance + testFee.AckFee.AmountOf(chainADenom).Int64() + //s.Require().Equal(expected, actualBalance) + }) } // feeMiddlewareChannelOptions configures both of the chains to have fee middleware enabled. From 3fab20b3f56f7a0196ed3ac03c44a198edcd4ed0 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 14:06:33 +0100 Subject: [PATCH 6/8] adding TODO to verify relayerA wallet amount --- e2e/fee_middleware_test.go | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index 0403bcdd297..5fded36380c 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -3,7 +3,6 @@ package e2e import ( "context" "testing" - "time" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/strangelove-ventures/ibctest/broadcast" @@ -206,7 +205,6 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { ctx := context.TODO() relayer, channelA := s.SetupChainsRelayerAndChannel(ctx, feeMiddlewareChannelOptions()) - _ = relayer chainA, chainB := s.GetChains() @@ -289,7 +287,6 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { t.Run("start relayer", func(t *testing.T) { s.StartRelayer(relayer) - time.Sleep(10 * time.Second) }) t.Run("packets are relayed", func(t *testing.T) { @@ -308,19 +305,14 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { s.Require().Equal(expected, actualBalance) }) - t.Run("relayerA is paid ack fee", func(t *testing.T) { - actualBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) - s.Require().NoError(err) - expected := relayerAStartingBalance + testFee.AckFee.AmountOf(chainADenom).Int64() - s.Require().Equal(expected, actualBalance) - }) - - t.Run("relayerB is paid recv fee", func(t *testing.T) { - //actualBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) - //s.Require().NoError(err) - //expected := relayerAStartingBalance + testFee.AckFee.AmountOf(chainADenom).Int64() - //s.Require().Equal(expected, actualBalance) - }) + // TODO: we cannot correctly assert the balance of the relayer user on chain A yet as gas fees have been + // paid and we do not know how much has been spent. + //t.Run("relayerA is paid ack and recv fee", func(t *testing.T) { + // actualBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) + // s.Require().NoError(err) + // expected := relayerAStartingBalance + testFee.AckFee.AmountOf(chainADenom).Int64() + testFee.RecvFee.AmountOf(chainADenom).Int64() + // s.Require().Equal(expected, actualBalance) + //}) } // feeMiddlewareChannelOptions configures both of the chains to have fee middleware enabled. From bd51da55cea5c0489173a350ae9dfeeea560925c Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 15:59:51 +0100 Subject: [PATCH 7/8] test: setting gas fees to zero on both chains --- e2e/fee_middleware_test.go | 14 ++++++-------- e2e/testconfig/testconfig.go | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index 5fded36380c..2bddecdca31 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -305,14 +305,12 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { s.Require().Equal(expected, actualBalance) }) - // TODO: we cannot correctly assert the balance of the relayer user on chain A yet as gas fees have been - // paid and we do not know how much has been spent. - //t.Run("relayerA is paid ack and recv fee", func(t *testing.T) { - // actualBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) - // s.Require().NoError(err) - // expected := relayerAStartingBalance + testFee.AckFee.AmountOf(chainADenom).Int64() + testFee.RecvFee.AmountOf(chainADenom).Int64() - // s.Require().Equal(expected, actualBalance) - //}) + t.Run("relayerA is paid ack and recv fee", func(t *testing.T) { + actualBalance, err := s.GetChainANativeBalance(ctx, chainARelayerUser) + s.Require().NoError(err) + expected := relayerAStartingBalance + testFee.AckFee.AmountOf(chainADenom).Int64() + testFee.RecvFee.AmountOf(chainADenom).Int64() + s.Require().Equal(expected, actualBalance) + }) } // feeMiddlewareChannelOptions configures both of the chains to have fee middleware enabled. diff --git a/e2e/testconfig/testconfig.go b/e2e/testconfig/testconfig.go index 50d49edce53..46be84e1e58 100644 --- a/e2e/testconfig/testconfig.go +++ b/e2e/testconfig/testconfig.go @@ -85,7 +85,7 @@ func newDefaultSimappConfig(tc TestConfig, name, chainID, denom string) ibc.Chai Bin: "simd", Bech32Prefix: "cosmos", Denom: denom, - GasPrices: fmt.Sprintf("0.01%s", denom), + GasPrices: fmt.Sprintf("0.00%s", denom), GasAdjustment: 1.3, TrustingPeriod: "508h", NoHostMount: false, From 759232b1b1636e26e529bec6fd51c3c48cb6f465 Mon Sep 17 00:00:00 2001 From: Cian Hatton Date: Thu, 21 Jul 2022 16:07:51 +0100 Subject: [PATCH 8/8] test: removing all checks for gas --- e2e/fee_middleware_test.go | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/e2e/fee_middleware_test.go b/e2e/fee_middleware_test.go index 2bddecdca31..4cc4ea14332 100644 --- a/e2e/fee_middleware_test.go +++ b/e2e/fee_middleware_test.go @@ -137,7 +137,7 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeAsyncSingleSender() { actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet) s.Require().NoError(err) - expected := testvalues.StartingTokenAmount - walletAmount.Amount - chainA.GetGasFeesInNativeDenom(chainATx.GasSpent) + expected := testvalues.StartingTokenAmount - walletAmount.Amount s.Require().Equal(expected, actualBalance) }) @@ -173,8 +173,7 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeAsyncSingleSender() { actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet) s.Require().NoError(err) - gasFees := chainA.GetGasFeesInNativeDenom(chainATx.GasSpent) + chainA.GetGasFeesInNativeDenom(payPacketFeeTxResp.GasWanted) - expected := testvalues.StartingTokenAmount - walletAmount.Amount - gasFees - testFee.Total().AmountOf(chainADenom).Int64() + expected := testvalues.StartingTokenAmount - walletAmount.Amount - testFee.Total().AmountOf(chainADenom).Int64() s.Require().Equal(expected, actualBalance) }) }) @@ -193,9 +192,8 @@ func (s *FeeMiddlewareTestSuite) TestMsgPayPacketFeeAsyncSingleSender() { actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet) s.Require().NoError(err) - gasFees := chainA.GetGasFeesInNativeDenom(chainATx.GasSpent) + chainA.GetGasFeesInNativeDenom(payPacketFeeTxResp.GasWanted) // once the relayer has relayed the packets, the timeout fee should be refunded. - expected := testvalues.StartingTokenAmount - walletAmount.Amount - gasFees - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64() + expected := testvalues.StartingTokenAmount - walletAmount.Amount - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64() s.Require().Equal(expected, actualBalance) }) } @@ -280,8 +278,7 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet) s.Require().NoError(err) - gasFees := chainA.GetGasFeesInNativeDenom(multiMsgTxResponse.GasWanted) - expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount - gasFees - testFee.Total().AmountOf(chainADenom).Int64() + expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount - testFee.Total().AmountOf(chainADenom).Int64() s.Require().Equal(expected, actualBalance) }) @@ -299,9 +296,8 @@ func (s *FeeMiddlewareTestSuite) TestMultiMsg_MsgPayPacketFeeSingleSender() { actualBalance, err := s.GetChainANativeBalance(ctx, chainAWallet) s.Require().NoError(err) - gasFees := chainA.GetGasFeesInNativeDenom(multiMsgTxResponse.GasWanted) // once the relayer has relayed the packets, the timeout fee should be refunded. - expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount - gasFees - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64() + expected := testvalues.StartingTokenAmount - testvalues.IBCTransferAmount - testFee.AckFee.AmountOf(chainADenom).Int64() - testFee.RecvFee.AmountOf(chainADenom).Int64() s.Require().Equal(expected, actualBalance) })