/
genesis.go
58 lines (48 loc) · 1.39 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
58
package keeper
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/osmosis-labs/osmosis/v22/x/incentives/types"
)
// InitGenesis initializes the incentives module's state from a provided genesis state.
func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) {
k.SetParams(ctx, genState.Params)
k.SetLockableDurations(ctx, genState.LockableDurations)
for _, gauge := range genState.Gauges {
gauge := gauge
// set gauge refs for all non-byGroup gauges
err := k.SetGaugeWithRefKey(ctx, &gauge)
if err != nil {
panic(err)
}
}
for _, groupGauges := range genState.GroupGauges {
groupGauges := groupGauges
err := k.setGauge(ctx, &groupGauges)
if err != nil {
panic(err)
}
}
k.SetLastGaugeID(ctx, genState.LastGaugeId)
for _, group := range genState.Groups {
k.SetGroup(ctx, group)
}
}
// ExportGenesis returns the x/incentives module's exported genesis.
func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState {
groupGauges, err := k.GetAllGroupsGauges(ctx)
if err != nil {
panic(err)
}
groups, err := k.GetAllGroups(ctx)
if err != nil {
panic(err)
}
return &types.GenesisState{
Params: k.GetParams(ctx),
LockableDurations: k.GetLockableDurations(ctx),
Gauges: k.GetNotFinishedGauges(ctx),
LastGaugeId: k.GetLastGaugeID(ctx),
GroupGauges: groupGauges,
Groups: groups,
}
}