github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/auth/genesis.go (about)

     1  package auth
     2  
     3  import (
     4  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     5  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/exported"
     6  )
     7  
     8  // InitGenesis - Init store state from genesis data
     9  //
    10  // CONTRACT: old coins from the FeeCollectionKeeper need to be transferred through
    11  // a genesis port script to the new fee collector account
    12  func InitGenesis(ctx sdk.Context, ak AccountKeeper, data GenesisState) {
    13  	ak.SetParams(ctx, data.Params)
    14  	data.Accounts = SanitizeGenesisAccounts(data.Accounts)
    15  
    16  	for _, a := range data.Accounts {
    17  		acc := ak.NewAccount(ctx, a)
    18  		ak.SetAccount(ctx, acc)
    19  	}
    20  }
    21  
    22  // ExportGenesis returns a GenesisState for a given context and keeper
    23  func ExportGenesis(ctx sdk.Context, ak AccountKeeper) GenesisState {
    24  	params := ak.GetParams(ctx)
    25  
    26  	var genAccounts exported.GenesisAccounts
    27  	ak.IterateAccounts(ctx, func(account exported.Account) bool {
    28  		genAccount := account.(exported.GenesisAccount)
    29  		genAccounts = append(genAccounts, genAccount)
    30  		return false
    31  	})
    32  
    33  	return NewGenesisState(params, genAccounts)
    34  }