-
Notifications
You must be signed in to change notification settings - Fork 0
/
genesis.go
30 lines (23 loc) · 887 Bytes
/
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
package pre_staking
import (
sdk "github.com/ci123chain/ci123chain/pkg/abci/types"
"github.com/ci123chain/ci123chain/pkg/pre_staking/keeper"
"github.com/ci123chain/ci123chain/pkg/pre_staking/types"
)
func InitGenesis(ctx sdk.Context, k keeper.PreStakingKeeper, data GenesisState) {
if data.StakingToken != "" {
k.SetTokenManager(ctx, sdk.HexToAddress(data.StakingToken))
}
if data.Owner != "" {
k.SetTokenManagerOwner(ctx, sdk.HexToAddress(data.Owner))
}
for _, v := range data.Records.StakingRecord {
k.SetStakingVault(ctx, v.Validator, v.Delegator, v.EndTime, v.StorageTime, v.Amount)
}
}
func ExportGenesis(ctx sdk.Context, k keeper.PreStakingKeeper) types.GenesisState {
var records types.DelegationRecord
sr := k.GetAllStakingVault(ctx)
records.StakingRecord = sr
return types.NewGenesisState(records, k.GetTokenManager(ctx), k.GetTokenManagerOwner(ctx))
}