-
Notifications
You must be signed in to change notification settings - Fork 133
/
modules.go
124 lines (107 loc) · 3.76 KB
/
modules.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
112
113
114
115
116
117
118
119
120
121
122
123
124
package app
import (
"encoding/json"
"strings"
sdkmath "cosmossdk.io/math"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/bank"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
"github.com/cosmos/cosmos-sdk/x/crisis"
crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types"
"github.com/cosmos/cosmos-sdk/x/gov"
govv1types "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
"github.com/cosmos/cosmos-sdk/x/mint"
minttypes "github.com/cosmos/cosmos-sdk/x/mint/types"
"github.com/cosmos/cosmos-sdk/x/staking"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
)
// BankModule defines a custom wrapper around the x/bank module's AppModuleBasic
// implementation to provide custom default genesis state.
type BankModule struct {
bank.AppModuleBasic
}
// DefaultGenesis returns custom Paloma x/bank module genesis state.
func (BankModule) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage {
palomaMetadata := banktypes.Metadata{
Description: "The native staking token of the Paloma network.",
Base: BondDenom,
Name: DisplayDenom,
Display: DisplayDenom,
Symbol: strings.ToUpper(DisplayDenom),
DenomUnits: []*banktypes.DenomUnit{
{
Denom: BondDenom,
Exponent: 0,
Aliases: []string{
"micrograin",
},
},
{
Denom: MilliDenom,
Exponent: 3,
Aliases: []string{
"milligrain",
},
},
{
Denom: DisplayDenom,
Exponent: 6,
Aliases: []string{},
},
},
}
genState := banktypes.DefaultGenesisState()
genState.DenomMetadata = append(genState.DenomMetadata, palomaMetadata)
return cdc.MustMarshalJSON(genState)
}
// StakingModule defines a custom wrapper around the x/staking module's
// AppModuleBasic implementation to provide custom default genesis state.
type StakingModule struct {
staking.AppModuleBasic
}
// DefaultGenesis returns custom Paloma x/staking module genesis state.
func (StakingModule) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage {
params := stakingtypes.DefaultParams()
params.BondDenom = BondDenom
params.MaxValidators = 175
return cdc.MustMarshalJSON(&stakingtypes.GenesisState{
Params: params,
})
}
// CrisisModule defines a custom wrapper around the x/crisis module's
// AppModuleBasic implementation to provide custom default genesis state.
type CrisisModule struct {
crisis.AppModuleBasic
}
// DefaultGenesis returns custom Paloma x/crisis module genesis state.
func (CrisisModule) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage {
return cdc.MustMarshalJSON(&crisistypes.GenesisState{
ConstantFee: sdk.NewCoin(BondDenom, sdkmath.NewInt(1000)),
})
}
// MintModule defines a custom wrapper around the x/mint module's
// AppModuleBasic implementation to provide custom default genesis state.
type MintModule struct {
mint.AppModuleBasic
}
// DefaultGenesis returns custom Paloma x/mint module genesis state.
func (MintModule) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage {
genState := minttypes.DefaultGenesisState()
genState.Params.MintDenom = BondDenom
return cdc.MustMarshalJSON(genState)
}
// GovModule defines a custom wrapper around the x/gov module's
// AppModuleBasic implementation to provide custom default genesis state.
type GovModule struct {
gov.AppModuleBasic
}
// DefaultGenesis returns custom Paloma x/gov module genesis state.
func (GovModule) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage {
minDeposit := sdk.NewCoins(sdk.NewCoin(BondDenom, govv1types.DefaultMinDepositTokens))
minExpedited := sdk.NewCoins(sdk.NewCoin(BondDenom, govv1types.DefaultMinExpeditedDepositTokens))
genState := govv1types.DefaultGenesisState()
genState.Params.MinDeposit = minDeposit
genState.Params.ExpeditedMinDeposit = minExpedited
return cdc.MustMarshalJSON(genState)
}