-
Notifications
You must be signed in to change notification settings - Fork 194
/
genesis.go
57 lines (47 loc) · 1.85 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package keeper
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/Stride-Labs/stride/v22/x/stakedym/types"
)
// Initializes the genesis state in the store
func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) {
// Validate that all required fields are specified
if err := genState.Validate(); err != nil {
panic(err)
}
// Create fee module account (calling GetModuleAccount will set it for the first time)
k.accountKeeper.GetModuleAccount(ctx, types.FeeAddress)
// Set the main host zone config
k.SetHostZone(ctx, genState.HostZone)
// Set all the records to their respective stores
for _, delegationRecord := range genState.DelegationRecords {
k.SetDelegationRecord(ctx, delegationRecord)
}
for _, unbondingRecord := range genState.UnbondingRecords {
k.SetUnbondingRecord(ctx, unbondingRecord)
}
for _, redemptionRecord := range genState.RedemptionRecords {
k.SetRedemptionRecord(ctx, redemptionRecord)
}
for _, slashRecord := range genState.SlashRecords {
k.SetSlashRecord(ctx, slashRecord)
}
for _, transfer := range genState.TransferInProgressRecordIds {
k.SetTransferInProgressRecordId(ctx, transfer.ChannelId, transfer.Sequence, transfer.RecordId)
}
}
// Exports the current state
func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState {
genesis := types.DefaultGenesis()
hostZone, err := k.GetHostZone(ctx)
if err != nil {
panic(err)
}
genesis.HostZone = hostZone
genesis.DelegationRecords = append(k.GetAllActiveDelegationRecords(ctx), k.GetAllArchivedDelegationRecords(ctx)...)
genesis.UnbondingRecords = append(k.GetAllActiveUnbondingRecords(ctx), k.GetAllArchivedUnbondingRecords(ctx)...)
genesis.RedemptionRecords = k.GetAllRedemptionRecords(ctx)
genesis.SlashRecords = k.GetAllSlashRecords(ctx)
genesis.TransferInProgressRecordIds = k.GetAllTransferInProgressId(ctx)
return genesis
}