go-cyber/x/liquidity/keeper/genesis.go

package keeper

import (
	sdk "github.com/cosmos/cosmos-sdk/types"

	"github.com/cybercongress/go-cyber/v7/x/liquidity/types"
)

// InitGenesis initializes the liquidity module's state from a given genesis state.
func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) {
	if err := k.ValidateGenesis(ctx, genState); err != nil {
		panic(err)
	}

	k.SetParams(ctx, genState.Params)

	for _, record := range genState.PoolRecords {
		k.SetPoolRecord(ctx, record)
	}
}

// ExportGenesis returns the liquidity module's genesis state.
func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState {
	params := k.GetParams(ctx)

	var poolRecords []types.PoolRecord

	pools := k.GetAllPools(ctx)

	for _, pool := range pools {
		record, found := k.GetPoolRecord(ctx, pool)
		if found {
			poolRecords = append(poolRecords, record)
		}
	}

	if len(poolRecords) == 0 {
		poolRecords = []types.PoolRecord{}
	}

	return types.NewGenesisState(params, poolRecords)
}

// ValidateGenesis validates the liquidity module's genesis state.
func (k Keeper) ValidateGenesis(ctx sdk.Context, genState types.GenesisState) error {
	if err := genState.Params.Validate(); err != nil {
		return err
	}

	cc, _ := ctx.CacheContext()
	k.SetParams(cc, genState.Params)

	for _, record := range genState.PoolRecords {
		record = k.SetPoolRecord(cc, record)
		if err := k.ValidatePoolRecord(cc, record); err != nil {
			return err
		}
	}

	return nil
}

Synonyms

go-cyber/app/genesis.go
space-pussy/app/genesis.go
go-cyber/x/liquidity/genesis.go
go-cyber/x/clock/genesis.go
go-cyber/x/resources/types/genesis.go
space-pussy/x/graph/keeper/genesis.go
space-pussy/x/dmn/keeper/genesis.go
space-pussy/x/cyberbank/keeper/genesis.go
go-cyber/x/dmn/keeper/genesis.go
go-cyber/x/liquidity/types/genesis.go
go-cyber/x/grid/keeper/genesis.go
space-pussy/x/resources/keeper/genesis.go
go-cyber/x/bandwidth/keeper/genesis.go
space-pussy/x/bandwidth/keeper/genesis.go
space-pussy/x/rank/keeper/genesis.go
go-cyber/x/bandwidth/types/genesis.go
go-cyber/x/resources/keeper/genesis.go
space-pussy/x/rank/types/genesis.go
go-cyber/x/grid/types/genesis.go
go-cyber/x/cyberbank/keeper/genesis.go
go-cyber/x/tokenfactory/keeper/genesis.go
space-pussy/x/dmn/types/genesis.go
space-pussy/x/resources/types/genesis.go
go-cyber/x/tokenfactory/types/genesis.go
go-cyber/x/dmn/types/genesis.go
space-pussy/x/bandwidth/types/genesis.go
go-cyber/x/rank/types/genesis.go
go-cyber/x/rank/keeper/genesis.go
go-cyber/x/graph/keeper/genesis.go
space-pussy/x/grid/keeper/genesis.go
space-pussy/x/grid/types/genesis.go

Neighbours