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 }