github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/core/03-connection/genesis.go (about)

     1  package connection
     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/03-connection/keeper"
     6  	"github.com/fibonacci-chain/fbc/libs/ibc-go/modules/core/03-connection/types"
     7  )
     8  
     9  // InitGenesis initializes the ibc connection submodule's state from a provided genesis
    10  // state.
    11  func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) {
    12  	k.SetParams(ctx, gs.Params)
    13  	for _, connection := range gs.Connections {
    14  		conn := types.NewConnectionEnd(connection.State, connection.ClientId, connection.Counterparty, connection.Versions, connection.DelayPeriod)
    15  		k.SetConnection(ctx, connection.Id, conn)
    16  	}
    17  	for _, connPaths := range gs.ClientConnectionPaths {
    18  		k.SetClientConnectionPaths(ctx, connPaths.ClientId, connPaths.Paths)
    19  	}
    20  	k.SetNextConnectionSequence(ctx, gs.NextConnectionSequence)
    21  	k.SetParams(ctx, gs.Params)
    22  }
    23  
    24  // ExportGenesis returns the ibc connection submodule's exported genesis.
    25  func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState {
    26  	return types.GenesisState{
    27  		Connections:            k.GetAllConnections(ctx),
    28  		ClientConnectionPaths:  k.GetAllClientConnectionPaths(ctx),
    29  		NextConnectionSequence: k.GetNextConnectionSequence(ctx),
    30  		Params:                 k.GetParams(ctx),
    31  	}
    32  }