package keeper

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

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

// InitGenesis initializes the tokenfactory module's state from a provided genesis
// state.
func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) {
	k.CreateModuleAccount(ctx)

	if genState.Params.DenomCreationFee == nil {
		genState.Params.DenomCreationFee = sdk.NewCoins()
	}
	if err := k.SetParams(ctx, genState.Params); err != nil {
		panic(err)
	}

	for _, genDenom := range genState.GetFactoryDenoms() {
		creator, _, err := types.DeconstructDenom(genDenom.GetDenom())
		if err != nil {
			panic(err)
		}
		err = k.createDenomAfterValidation(ctx, creator, genDenom.GetDenom())
		if err != nil {
			panic(err)
		}
		err = k.setAuthorityMetadata(ctx, genDenom.GetDenom(), genDenom.GetAuthorityMetadata())
		if err != nil {
			panic(err)
		}
	}
}

// ExportGenesis returns the tokenfactory module's exported genesis.
func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState {
	genDenoms := []types.GenesisDenom{}
	iterator := k.GetAllDenomsIterator(ctx)
	defer iterator.Close()
	for ; iterator.Valid(); iterator.Next() {
		denom := string(iterator.Value())

		authorityMetadata, err := k.GetAuthorityMetadata(ctx, denom)
		if err != nil {
			panic(err)
		}

		genDenoms = append(genDenoms, types.GenesisDenom{
			Denom:             denom,
			AuthorityMetadata: authorityMetadata,
		})
	}

	return &types.GenesisState{
		FactoryDenoms: genDenoms,
		Params:        k.GetParams(ctx),
	}
}

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
go-cyber/x/liquidity/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
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