-
Notifications
You must be signed in to change notification settings - Fork 119
/
params.go
136 lines (113 loc) · 4.63 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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
package keeper
import (
"context"
"time"
sdk "github.com/cosmos/cosmos-sdk/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
"github.com/cosmos/interchain-security/v5/x/ccv/consumer/types"
ccvtypes "github.com/cosmos/interchain-security/v5/x/ccv/types"
)
// GetParams returns the params for the consumer ccv module
// NOTE: it is different from the GetParams method which is required to implement StakingKeeper interface
func (k Keeper) GetConsumerParams(ctx sdk.Context) ccvtypes.ConsumerParams {
store := ctx.KVStore(k.storeKey)
bz := store.Get(types.ParametersKey())
var params ccvtypes.ConsumerParams
k.cdc.MustUnmarshal(bz, ¶ms)
return params
}
// SetParams sets the paramset for the consumer module
func (k Keeper) SetParams(ctx sdk.Context, params ccvtypes.ConsumerParams) {
store := ctx.KVStore(k.storeKey)
bz := k.cdc.MustMarshal(¶ms)
store.Set(types.ParametersKey(), bz)
}
// GetParams implements StakingKeeper GetParams interface method
// it returns an a empty stakingtypes.Params struct
// NOTE: this method must be implemented on the consumer keeper because the evidence module keeper
// in cosmos-sdk v0.50 requires this exact method with this exact signature to be available on the StakingKeepr
func (k Keeper) GetParams(context.Context) (stakingtypes.Params, error) {
return stakingtypes.Params{}, nil
}
// GetEnabled returns the enabled flag for the consumer module
func (k Keeper) GetEnabled(ctx sdk.Context) bool {
params := k.GetConsumerParams(ctx)
return params.Enabled
}
func (k Keeper) GetBlocksPerDistributionTransmission(ctx sdk.Context) int64 {
params := k.GetConsumerParams(ctx)
return params.BlocksPerDistributionTransmission
}
func (k Keeper) SetBlocksPerDistributionTransmission(ctx sdk.Context, bpdt int64) {
params := k.GetConsumerParams(ctx)
params.BlocksPerDistributionTransmission = bpdt
k.SetParams(ctx, params)
}
func (k Keeper) GetDistributionTransmissionChannel(ctx sdk.Context) string {
params := k.GetConsumerParams(ctx)
return params.DistributionTransmissionChannel
}
func (k Keeper) SetDistributionTransmissionChannel(ctx sdk.Context, channel string) {
params := k.GetConsumerParams(ctx)
params.DistributionTransmissionChannel = channel
k.SetParams(ctx, params)
}
func (k Keeper) GetProviderFeePoolAddrStr(ctx sdk.Context) string {
params := k.GetConsumerParams(ctx)
return params.ProviderFeePoolAddrStr
}
func (k Keeper) SetProviderFeePoolAddrStr(ctx sdk.Context, addr string) {
params := k.GetConsumerParams(ctx)
params.ProviderFeePoolAddrStr = addr
k.SetParams(ctx, params)
}
// GetCCVTimeoutPeriod returns the timeout period for sent ccv related ibc packets
func (k Keeper) GetCCVTimeoutPeriod(ctx sdk.Context) time.Duration {
params := k.GetConsumerParams(ctx)
return params.CcvTimeoutPeriod
}
// GetTransferTimeoutPeriod returns the timeout period for sent transfer related ibc packets
func (k Keeper) GetTransferTimeoutPeriod(ctx sdk.Context) time.Duration {
params := k.GetConsumerParams(ctx)
return params.TransferTimeoutPeriod
}
// GetConsumerRedistributionFrac returns the fraction of tokens allocated to the consumer redistribution
// address during distribution events. The fraction is a string representing a
// decimal number. For example "0.75" would represent 75%.
func (k Keeper) GetConsumerRedistributionFrac(ctx sdk.Context) string {
params := k.GetConsumerParams(ctx)
return params.ConsumerRedistributionFraction
}
// GetHistoricalEntries returns the number of historical info entries to persist in store
func (k Keeper) GetHistoricalEntries(ctx sdk.Context) int64 {
params := k.GetConsumerParams(ctx)
return params.HistoricalEntries
}
// Only used to set an unbonding period in diff tests
func (k Keeper) SetUnbondingPeriod(ctx sdk.Context, period time.Duration) {
params := k.GetConsumerParams(ctx)
params.UnbondingPeriod = period
k.SetParams(ctx, params)
}
func (k Keeper) GetUnbondingPeriod(ctx sdk.Context) time.Duration {
params := k.GetConsumerParams(ctx)
return params.UnbondingPeriod
}
// GetSoftOptOutThreshold returns the percentage of validators at the bottom of the set
// that can opt out of running the consumer chain
func (k Keeper) GetSoftOptOutThreshold(ctx sdk.Context) string {
params := k.GetConsumerParams(ctx)
return params.SoftOptOutThreshold
}
func (k Keeper) GetRewardDenoms(ctx sdk.Context) []string {
params := k.GetConsumerParams(ctx)
return params.RewardDenoms
}
func (k Keeper) GetProviderRewardDenoms(ctx sdk.Context) []string {
params := k.GetConsumerParams(ctx)
return params.ProviderRewardDenoms
}
func (k Keeper) GetRetryDelayPeriod(ctx sdk.Context) time.Duration {
params := k.GetConsumerParams(ctx)
return params.RetryDelayPeriod
}