-
Notifications
You must be signed in to change notification settings - Fork 0
/
genesis.go
36 lines (28 loc) · 1.02 KB
/
genesis.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package savings
import (
"fmt"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/furya-official/mage/x/savings/keeper"
"github.com/furya-official/mage/x/savings/types"
)
// InitGenesis initializes genesis state
func InitGenesis(ctx sdk.Context, k keeper.Keeper, ak types.AccountKeeper, gs types.GenesisState) {
if err := gs.Validate(); err != nil {
panic(fmt.Sprintf("failed to validate %s genesis state: %s", types.ModuleName, err))
}
k.SetParams(ctx, gs.Params)
for _, deposit := range gs.Deposits {
k.SetDeposit(ctx, deposit)
}
// check if the module account exists
SavingsModuleAccount := ak.GetModuleAccount(ctx, types.ModuleAccountName)
if SavingsModuleAccount == nil {
panic(fmt.Sprintf("%s module account has not been set", SavingsModuleAccount))
}
}
// ExportGenesis returns a GenesisState for a given context and keeper
func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState {
params := k.GetParams(ctx)
deposits := k.GetAllDeposits(ctx)
return types.NewGenesisState(params, deposits)
}