/
genesis.go
111 lines (101 loc) · 2.59 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package keeper
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/umee-network/umee/v5/x/incentive"
)
// InitGenesis initializes the x/incentive module state from a provided genesis state.
func (k Keeper) InitGenesis(ctx sdk.Context, gs incentive.GenesisState) {
if err := gs.Validate(); err != nil {
panic(err)
}
if err := k.setParams(ctx, gs.Params); err != nil {
panic(err)
}
if err := k.setNextProgramID(ctx, gs.NextProgramId); err != nil {
panic(err)
}
if err := k.setLastRewardsTime(ctx, gs.LastRewardsTime); err != nil {
panic(err)
}
for _, ip := range gs.UpcomingPrograms {
if err := k.setIncentiveProgram(ctx, ip, incentive.ProgramStatusUpcoming); err != nil {
panic(err)
}
}
for _, ip := range gs.OngoingPrograms {
if err := k.setIncentiveProgram(ctx, ip, incentive.ProgramStatusOngoing); err != nil {
panic(err)
}
}
for _, ip := range gs.CompletedPrograms {
if err := k.setIncentiveProgram(ctx, ip, incentive.ProgramStatusCompleted); err != nil {
panic(err)
}
}
for _, b := range gs.Bonds {
if err := b.Validate(); err != nil {
panic(err)
}
if err := k.setBonded(ctx, sdk.MustAccAddressFromBech32(b.Account), b.UToken); err != nil {
panic(err)
}
}
for _, au := range gs.AccountUnbondings {
if err := k.setUnbondings(ctx, au); err != nil {
panic(err)
}
}
for _, ra := range gs.RewardAccumulators {
if err := k.setRewardAccumulator(ctx, ra); err != nil {
panic(err)
}
}
for _, rt := range gs.RewardTrackers {
if err := k.setRewardTracker(ctx, rt); err != nil {
panic(err)
}
}
}
// ExportGenesis returns the x/incentive module's exported genesis state.
func (k Keeper) ExportGenesis(ctx sdk.Context) *incentive.GenesisState {
completedPrograms, err := k.getAllIncentivePrograms(ctx, incentive.ProgramStatusCompleted)
if err != nil {
panic(err)
}
ongoingPrograms, err := k.getAllIncentivePrograms(ctx, incentive.ProgramStatusOngoing)
if err != nil {
panic(err)
}
upcomingPrograms, err := k.getAllIncentivePrograms(ctx, incentive.ProgramStatusUpcoming)
if err != nil {
panic(err)
}
bonds, err := k.getAllBonds(ctx)
if err != nil {
panic(err)
}
trackers, err := k.getAllRewardTrackers(ctx)
if err != nil {
panic(err)
}
accumulators, err := k.getAllRewardAccumulators(ctx)
if err != nil {
panic(err)
}
unbondings, err := k.getAllAccountUnbondings(ctx)
if err != nil {
panic(err)
}
return incentive.NewGenesisState(
k.GetParams(ctx),
completedPrograms,
ongoingPrograms,
upcomingPrograms,
k.getNextProgramID(ctx),
k.GetLastRewardsTime(ctx),
bonds,
trackers,
accumulators,
unbondings,
)
}