-
Notifications
You must be signed in to change notification settings - Fork 0
/
genesis.go
43 lines (33 loc) · 1.1 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
package crisis
import (
"encoding/json"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
"github.com/konstellation/kn-sdk/types"
)
const (
ModuleName = crisistypes.ModuleName
)
// GenesisUpdater implements an genesis updater for the crisis module.
type GenesisUpdater struct{}
// Name returns the crisis module's name.
func (GenesisUpdater) Name() string {
return ModuleName
}
// UpdateGenesis returns genesis state after changes as raw bytes for the crisis module.
func (gu GenesisUpdater) UpdateGenesis(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) {
var genesisState crisistypes.GenesisState
err := cdc.UnmarshalJSON(appState[ModuleName], &genesisState)
if err != nil {
panic(err)
}
updateGenesisParams(&genesisState)
appState[ModuleName] = cdc.MustMarshalJSON(&genesisState)
}
func updateGenesisParams(genesisState *crisistypes.GenesisState) {
genesisState.ConstantFee = sdk.Coin{
Denom: types.DefaultBondDenom,
Amount: sdk.TokensFromConsensusPower(types.DefaultConsensusPower),
}
}