From 794801bd41c83a29c539afa234b89402b9600aa1 Mon Sep 17 00:00:00 2001 From: stackman27 Date: Tue, 7 Feb 2023 16:47:30 -0800 Subject: [PATCH] rebased --- modules/apps/transfer/keeper/relay_test.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/modules/apps/transfer/keeper/relay_test.go b/modules/apps/transfer/keeper/relay_test.go index 0f4fe45b904a..b0cb6fb15053 100644 --- a/modules/apps/transfer/keeper/relay_test.go +++ b/modules/apps/transfer/keeper/relay_test.go @@ -276,11 +276,12 @@ func (suite *KeeperTestSuite) TestOnRecvPacket() { // trace. func (suite *KeeperTestSuite) TestOnAcknowledgementPacket() { var ( - successAck = channeltypes.NewResultAcknowledgement([]byte{byte(1)}) - failedAck = channeltypes.NewErrorAcknowledgement(fmt.Errorf("failed packet transfer")) - trace types.DenomTrace - amount math.Int - path *ibctesting.Path + successAck = channeltypes.NewResultAcknowledgement([]byte{byte(1)}) + failedAck = channeltypes.NewErrorAcknowledgement(fmt.Errorf("failed packet transfer")) + trace types.DenomTrace + amount math.Int + expectedEscrowAmt sdk.Int + path *ibctesting.Path ) testCases := []struct { @@ -292,13 +293,17 @@ func (suite *KeeperTestSuite) TestOnAcknowledgementPacket() { }{ {"success ack causes no-op", successAck, func() { trace = types.ParseDenomTrace(types.GetPrefixedDenom(path.EndpointB.ChannelConfig.PortID, path.EndpointB.ChannelID, sdk.DefaultBondDenom)) + expectedEscrowAmt = sdk.ZeroInt() }, true, true}, {"successful refund from source chain", failedAck, func() { escrow := types.GetEscrowAddress(path.EndpointA.ChannelConfig.PortID, path.EndpointA.ChannelID) trace = types.ParseDenomTrace(sdk.DefaultBondDenom) coin := sdk.NewCoin(sdk.DefaultBondDenom, amount) + expectedEscrowAmt = sdk.ZeroInt() suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrow, sdk.NewCoins(coin))) + // store the source token thats about to get ibc'd out + suite.chainA.GetSimApp().TransferKeeper.SetIBCOutDenomAmount(suite.chainA.GetContext(), coin.Denom, coin.Amount) }, false, true}, { "unsuccessful refund from source", failedAck, @@ -314,6 +319,8 @@ func (suite *KeeperTestSuite) TestOnAcknowledgementPacket() { coin := sdk.NewCoin(trace.IBCDenom(), amount) suite.Require().NoError(banktestutil.FundAccount(suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetContext(), escrow, sdk.NewCoins(coin))) + // store the source token thats about to get ibc'd out + suite.chainA.GetSimApp().TransferKeeper.SetIBCOutDenomAmount(suite.chainA.GetContext(), coin.Denom, coin.Amount) }, false, true, }, } @@ -340,6 +347,9 @@ func (suite *KeeperTestSuite) TestOnAcknowledgementPacket() { postCoin := suite.chainA.GetSimApp().BankKeeper.GetBalance(suite.chainA.GetContext(), suite.chainA.SenderAccount.GetAddress(), trace.IBCDenom()) deltaAmount := postCoin.Amount.Sub(preCoin.Amount) + existingToken := suite.chainA.GetSimApp().TransferKeeper.GetIBCOutDenomAmount(suite.chainA.GetContext(), sdk.DefaultBondDenom) + suite.Require().Equal(expectedEscrowAmt, existingToken) + if tc.success { suite.Require().Equal(int64(0), deltaAmount.Int64(), "successful ack changed balance") } else {