github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/apps/29-fee/keeper/events_test.go (about) 1 package keeper_test 2 3 import ( 4 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 5 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/29-fee/types" 6 abcitypes "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 7 ) 8 9 func (suite *KeeperTestSuite) TestIncentivizePacketEvent() { 10 var ( 11 expRecvFees sdk.CoinAdapters 12 expAckFees sdk.CoinAdapters 13 expTimeoutFees sdk.CoinAdapters 14 ) 15 16 suite.coordinator.Setup(suite.path) 17 18 fee := types.NewFee(defaultRecvFee, defaultAckFee, defaultTimeoutFee) 19 msg := types.NewMsgPayPacketFee( 20 fee, 21 suite.path.EndpointA.ChannelConfig.PortID, 22 suite.path.EndpointA.ChannelID, 23 suite.chainA.SenderAccount().GetAddress().String(), 24 nil, 25 ) 26 27 expRecvFees = expRecvFees.Add(fee.RecvFee...) 28 expAckFees = expAckFees.Add(fee.AckFee...) 29 expTimeoutFees = expTimeoutFees.Add(fee.TimeoutFee...) 30 31 result, err := suite.chainA.SendMsgs(msg) 32 suite.Require().NoError(err) 33 34 var incentivizedPacketEvent abcitypes.Event 35 for _, event := range result.Events { 36 if event.Type == types.EventTypeIncentivizedPacket { 37 incentivizedPacketEvent = abcitypes.Event(event) 38 } 39 } 40 41 for _, attr := range incentivizedPacketEvent.Attributes { 42 switch string(attr.Key) { 43 case types.AttributeKeyRecvFee: 44 suite.Require().Equal(expRecvFees.String(), string(attr.Value)) 45 46 case types.AttributeKeyAckFee: 47 suite.Require().Equal(expAckFees.String(), string(attr.Value)) 48 49 case types.AttributeKeyTimeoutFee: 50 suite.Require().Equal(expTimeoutFees.String(), string(attr.Value)) 51 } 52 } 53 54 // send the same messages again a few times 55 for i := 0; i < 3; i++ { 56 expRecvFees = expRecvFees.Add(fee.RecvFee...) 57 expAckFees = expAckFees.Add(fee.AckFee...) 58 expTimeoutFees = expTimeoutFees.Add(fee.TimeoutFee...) 59 60 result, err = suite.chainA.SendMsgs(msg) 61 suite.Require().NoError(err) 62 } 63 64 for _, event := range result.Events { 65 if event.Type == types.EventTypeIncentivizedPacket { 66 incentivizedPacketEvent = abcitypes.Event(event) 67 } 68 } 69 70 for _, attr := range incentivizedPacketEvent.Attributes { 71 switch string(attr.Key) { 72 case types.AttributeKeyRecvFee: 73 suite.Require().Equal(expRecvFees.String(), string(attr.Value)) 74 75 case types.AttributeKeyAckFee: 76 suite.Require().Equal(expAckFees.String(), string(attr.Value)) 77 78 case types.AttributeKeyTimeoutFee: 79 suite.Require().Equal(expTimeoutFees.String(), string(attr.Value)) 80 } 81 } 82 }