github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/core/04-channel/genesis.go (about) 1 package channel 2 3 import ( 4 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 5 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/04-channel/keeper" 6 "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/04-channel/types" 7 ) 8 9 // InitGenesis initializes the ibc channel submodule's state from a provided genesis 10 // state. 11 func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) { 12 for _, channel := range gs.Channels { 13 ch := types.NewChannel(channel.State, channel.Ordering, channel.Counterparty, channel.ConnectionHops, channel.Version) 14 k.SetChannel(ctx, channel.PortId, channel.ChannelId, ch) 15 } 16 for _, ack := range gs.Acknowledgements { 17 k.SetPacketAcknowledgement(ctx, ack.PortId, ack.ChannelId, ack.Sequence, ack.Data) 18 } 19 for _, commitment := range gs.Commitments { 20 k.SetPacketCommitment(ctx, commitment.PortId, commitment.ChannelId, commitment.Sequence, commitment.Data) 21 } 22 for _, receipt := range gs.Receipts { 23 k.SetPacketReceipt(ctx, receipt.PortId, receipt.ChannelId, receipt.Sequence) 24 } 25 for _, ss := range gs.SendSequences { 26 k.SetNextSequenceSend(ctx, ss.PortId, ss.ChannelId, ss.Sequence) 27 } 28 for _, rs := range gs.RecvSequences { 29 k.SetNextSequenceRecv(ctx, rs.PortId, rs.ChannelId, rs.Sequence) 30 } 31 for _, as := range gs.AckSequences { 32 k.SetNextSequenceAck(ctx, as.PortId, as.ChannelId, as.Sequence) 33 } 34 k.SetNextChannelSequence(ctx, gs.NextChannelSequence) 35 } 36 37 // ExportGenesis returns the ibc channel submodule's exported genesis. 38 func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { 39 return types.GenesisState{ 40 Channels: k.GetAllChannels(ctx), 41 Acknowledgements: k.GetAllPacketAcks(ctx), 42 Commitments: k.GetAllPacketCommitments(ctx), 43 Receipts: k.GetAllPacketReceipts(ctx), 44 SendSequences: k.GetAllPacketSendSeqs(ctx), 45 RecvSequences: k.GetAllPacketRecvSeqs(ctx), 46 AckSequences: k.GetAllPacketAckSeqs(ctx), 47 NextChannelSequence: k.GetNextChannelSequence(ctx), 48 } 49 }