github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/apps/29-fee/keeper/genesis_test.go (about) 1 package keeper_test 2 3 import ( 4 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/29-fee/types" 5 channeltypes "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/04-channel/types" 6 ibctesting "github.com/fibonacci-chain/fbc/libs/ibc-go/testing" 7 ) 8 9 func (suite *KeeperTestSuite) TestInitGenesis() { 10 packetID := channeltypes.NewPacketId(ibctesting.MockFeePort, ibctesting.FirstChannelID, 1) 11 12 genesisState := types.GenesisState{ 13 IdentifiedFees: []types.IdentifiedPacketFees{ 14 { 15 PacketId: packetID, 16 PacketFees: []types.PacketFee{ 17 { 18 Fee: types.NewFee(defaultRecvFee, defaultAckFee, defaultTimeoutFee), 19 RefundAddress: suite.chainA.SenderAccount().GetAddress().String(), 20 Relayers: nil, 21 }, 22 }, 23 }, 24 }, 25 FeeEnabledChannels: []types.FeeEnabledChannel{ 26 { 27 PortId: ibctesting.MockFeePort, 28 ChannelId: ibctesting.FirstChannelID, 29 }, 30 }, 31 RegisteredPayees: []types.RegisteredPayee{ 32 { 33 Relayer: suite.chainA.SenderAccount().GetAddress().String(), 34 Payee: suite.chainB.SenderAccount().GetAddress().String(), 35 ChannelId: ibctesting.FirstChannelID, 36 }, 37 }, 38 RegisteredCounterpartyPayees: []types.RegisteredCounterpartyPayee{ 39 { 40 Relayer: suite.chainA.SenderAccount().GetAddress().String(), 41 CounterpartyPayee: suite.chainB.SenderAccount().GetAddress().String(), 42 ChannelId: ibctesting.FirstChannelID, 43 }, 44 }, 45 } 46 47 suite.chainA.GetSimApp().IBCFeeKeeper.InitGenesis(suite.chainA.GetContext(), genesisState) 48 49 // check fee 50 feesInEscrow, found := suite.chainA.GetSimApp().IBCFeeKeeper.GetFeesInEscrow(suite.chainA.GetContext(), packetID) 51 suite.Require().True(found) 52 suite.Require().Equal(genesisState.IdentifiedFees[0].PacketFees, feesInEscrow.PacketFees) 53 54 // check fee is enabled 55 isEnabled := suite.chainA.GetSimApp().IBCFeeKeeper.IsFeeEnabled(suite.chainA.GetContext(), ibctesting.MockFeePort, ibctesting.FirstChannelID) 56 suite.Require().True(isEnabled) 57 58 // check payee addresses 59 payeeAddr, found := suite.chainA.GetSimApp().IBCFeeKeeper.GetPayeeAddress(suite.chainA.GetContext(), suite.chainA.SenderAccount().GetAddress().String(), ibctesting.FirstChannelID) 60 suite.Require().True(found) 61 suite.Require().Equal(genesisState.RegisteredPayees[0].Payee, payeeAddr) 62 63 // check relayers 64 counterpartyPayeeAddr, found := suite.chainA.GetSimApp().IBCFeeKeeper.GetCounterpartyPayeeAddress(suite.chainA.GetContext(), suite.chainA.SenderAccount().GetAddress().String(), ibctesting.FirstChannelID) 65 suite.Require().True(found) 66 suite.Require().Equal(genesisState.RegisteredCounterpartyPayees[0].CounterpartyPayee, counterpartyPayeeAddr) 67 } 68 69 func (suite *KeeperTestSuite) TestExportGenesis() { 70 // set fee enabled 71 suite.chainA.GetSimApp().IBCFeeKeeper.SetFeeEnabled(suite.chainA.GetContext(), ibctesting.MockFeePort, ibctesting.FirstChannelID) 72 73 // setup & escrow the packet fee 74 refundAcc := suite.chainA.SenderAccount().GetAddress() 75 packetID := channeltypes.NewPacketId(ibctesting.MockFeePort, ibctesting.FirstChannelID, 1) 76 fee := types.NewFee(defaultRecvFee, defaultAckFee, defaultTimeoutFee) 77 78 packetFee := types.NewPacketFee(fee, refundAcc.String(), []string{}) 79 suite.chainA.GetSimApp().IBCFeeKeeper.SetFeesInEscrow(suite.chainA.GetContext(), packetID, types.NewPacketFees([]types.PacketFee{packetFee})) 80 81 // set payee address 82 suite.chainA.GetSimApp().IBCFeeKeeper.SetPayeeAddress( 83 suite.chainA.GetContext(), 84 suite.chainA.SenderAccount().GetAddress().String(), 85 suite.chainB.SenderAccount().GetAddress().String(), 86 ibctesting.FirstChannelID, 87 ) 88 89 // set counterparty payee address 90 suite.chainA.GetSimApp().IBCFeeKeeper.SetCounterpartyPayeeAddress( 91 suite.chainA.GetContext(), 92 suite.chainA.SenderAccount().GetAddress().String(), 93 suite.chainB.SenderAccount().GetAddress().String(), 94 ibctesting.FirstChannelID, 95 ) 96 97 // set forward relayer address 98 suite.chainA.GetSimApp().IBCFeeKeeper.SetRelayerAddressForAsyncAck(suite.chainA.GetContext(), packetID, suite.chainA.SenderAccount().GetAddress().String()) 99 100 // export genesis 101 genesisState := suite.chainA.GetSimApp().IBCFeeKeeper.ExportGenesis(suite.chainA.GetContext()) 102 103 // check fee enabled 104 suite.Require().Equal(ibctesting.FirstChannelID, genesisState.FeeEnabledChannels[0].ChannelId) 105 suite.Require().Equal(ibctesting.MockFeePort, genesisState.FeeEnabledChannels[0].PortId) 106 107 // check fee 108 suite.Require().Equal(packetID, genesisState.IdentifiedFees[0].PacketId) 109 suite.Require().Equal(fee, genesisState.IdentifiedFees[0].PacketFees[0].Fee) 110 suite.Require().Equal(refundAcc.String(), genesisState.IdentifiedFees[0].PacketFees[0].RefundAddress) 111 suite.Require().Equal([]string(nil), genesisState.IdentifiedFees[0].PacketFees[0].Relayers) 112 113 // check forward relayer addresses 114 suite.Require().Equal(suite.chainA.SenderAccount().GetAddress().String(), genesisState.ForwardRelayers[0].Address) 115 suite.Require().Equal(packetID, genesisState.ForwardRelayers[0].PacketId) 116 117 // check payee addresses 118 suite.Require().Equal(suite.chainA.SenderAccount().GetAddress().String(), genesisState.RegisteredPayees[0].Relayer) 119 suite.Require().Equal(suite.chainB.SenderAccount().GetAddress().String(), genesisState.RegisteredPayees[0].Payee) 120 suite.Require().Equal(ibctesting.FirstChannelID, genesisState.RegisteredPayees[0].ChannelId) 121 122 // check registered counterparty payee addresses 123 suite.Require().Equal(suite.chainA.SenderAccount().GetAddress().String(), genesisState.RegisteredCounterpartyPayees[0].Relayer) 124 suite.Require().Equal(suite.chainB.SenderAccount().GetAddress().String(), genesisState.RegisteredCounterpartyPayees[0].CounterpartyPayee) 125 suite.Require().Equal(ibctesting.FirstChannelID, genesisState.RegisteredCounterpartyPayees[0].ChannelId) 126 }