/
params.go
106 lines (90 loc) · 2.96 KB
/
params.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
package keeper
import (
"time"
sdk "github.com/cosmos/cosmos-sdk/types"
fxtypes "github.com/functionx/fx-core/v4/types"
"github.com/functionx/fx-core/v4/x/gov/types"
)
// GetParams gets the gov module's parameters.
func (keeper Keeper) GetParams(ctx sdk.Context, msgType string) (params types.Params) {
store := ctx.KVStore(keeper.storeKey)
bz := store.Get(types.ParamsByMsgTypeKey(msgType))
if bz != nil {
keeper.cdc.MustUnmarshal(bz, ¶ms)
return params
}
depositParams := keeper.GetDepositParams(ctx)
votingParams := keeper.GetVotingParams(ctx)
tallyParams := keeper.GetTallyParams(ctx)
params = *types.NewParam(
msgType,
depositParams.GetMinDeposit(),
sdk.NewCoin(fxtypes.DefaultDenom, types.DefaultMinInitialDeposit),
votingParams.VotingPeriod,
tallyParams.Quorum,
depositParams.MaxDepositPeriod,
tallyParams.Threshold,
tallyParams.VetoThreshold,
)
return params
}
// SetParams sets the gov module's parameters.
func (keeper Keeper) SetParams(ctx sdk.Context, params *types.Params) error {
store := ctx.KVStore(keeper.storeKey)
bz, err := keeper.cdc.Marshal(params)
if err != nil {
return err
}
store.Set(types.ParamsByMsgTypeKey(params.MsgType), bz)
return nil
}
// SetAllParams sets batch the gov module's parameters.
func (keeper Keeper) SetAllParams(ctx sdk.Context, params []*types.Params) error {
for _, param := range params {
if err := keeper.SetParams(ctx, param); err != nil {
return err
}
}
return nil
}
// GetEGFParams gets the gov module's parameters.
func (keeper Keeper) GetEGFParams(ctx sdk.Context) (params types.EGFParams) {
store := ctx.KVStore(keeper.storeKey)
bz := store.Get(types.FxEGFParamsKey)
if bz == nil {
return params
}
keeper.cdc.MustUnmarshal(bz, ¶ms)
return params
}
// SetEGFParams sets the gov module's parameters.
func (keeper Keeper) SetEGFParams(ctx sdk.Context, params *types.EGFParams) error {
store := ctx.KVStore(keeper.storeKey)
bz, err := keeper.cdc.Marshal(params)
if err != nil {
return err
}
store.Set(types.FxEGFParamsKey, bz)
return nil
}
func (keeper Keeper) GetMinInitialDeposit(ctx sdk.Context, msgType string) sdk.Coin {
return keeper.GetParams(ctx, msgType).MinInitialDeposit
}
func (keeper Keeper) GetMinDeposit(ctx sdk.Context, msgType string) []sdk.Coin {
return keeper.GetParams(ctx, msgType).MinDeposit
}
func (keeper Keeper) GetMaxDepositPeriod(ctx sdk.Context, msgType string) *time.Duration {
return keeper.GetParams(ctx, msgType).MaxDepositPeriod
}
func (keeper Keeper) GetVotingPeriod(ctx sdk.Context, msgType string) *time.Duration {
return keeper.GetParams(ctx, msgType).VotingPeriod
}
func (keeper Keeper) GetQuorum(ctx sdk.Context, msgType string) string {
return keeper.GetParams(ctx, msgType).Quorum
}
func (keeper Keeper) GetThreshold(ctx sdk.Context, msgType string) string {
return keeper.GetParams(ctx, msgType).Threshold
}
func (keeper Keeper) GetVetoThreshold(ctx sdk.Context, msgType string) string {
return keeper.GetParams(ctx, msgType).VetoThreshold
}