/
genesis.go
56 lines (44 loc) · 1.24 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
package keeper
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/provenance-io/provenance/x/trigger/types"
)
// ExportGenesis returns a GenesisState for a given context.
func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState {
triggerID := k.getTriggerID(ctx)
queueStartIndex := k.getQueueStartIndex(ctx)
triggers, err := k.GetAllTriggers(ctx)
if err != nil {
panic(err)
}
queue, err := k.GetAllQueueItems(ctx)
if err != nil {
panic(err)
}
gasLimits, err := k.GetAllGasLimits(ctx)
if err != nil {
panic(err)
}
return types.NewGenesisState(triggerID, queueStartIndex, triggers, gasLimits, queue)
}
// InitGenesis new trigger genesis
func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) {
if err := data.Validate(); err != nil {
panic(err)
}
k.setTriggerID(ctx, data.TriggerId)
k.setQueueStartIndex(ctx, data.QueueStart)
if len(data.QueuedTriggers) == 0 {
k.setQueueLength(ctx, 0)
}
for _, gasLimit := range data.GasLimits {
k.SetGasLimit(ctx, gasLimit.TriggerId, gasLimit.Amount)
}
for _, queuedTrigger := range data.QueuedTriggers {
k.Enqueue(ctx, queuedTrigger)
}
for _, trigger := range data.Triggers {
k.SetTrigger(ctx, trigger)
k.SetEventListener(ctx, trigger)
}
}