/
genesis.go
91 lines (75 loc) · 2.99 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
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
package simulation
// DONTCOVER
import (
"math/rand"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/types/simulation"
"github.com/cosmosquad-labs/squad/x/farming/types"
)
// Simulation parameter constants.
const (
PrivatePlanCreationFee = "private_plan_creation_fee"
NextEpochDays = "next_epoch_days"
FarmingFeeCollector = "farming_fee_collector"
CurrentEpochDays = "current_epoch_days"
MaxNumPrivatePlans = "max_num_private_plans"
)
// GenPrivatePlanCreationFee return randomized private plan creation fee.
func GenPrivatePlanCreationFee(r *rand.Rand) sdk.Coins {
return sdk.NewCoins(sdk.NewInt64Coin(sdk.DefaultBondDenom, int64(simulation.RandIntBetween(r, 0, 100_000_000))))
}
// GenNextEpochDays return default next epoch days.
func GenNextEpochDays(r *rand.Rand) uint32 {
return uint32(simulation.RandIntBetween(r, int(types.DefaultNextEpochDays), 2))
}
// GenCurrentEpochDays returns current epoch days.
func GenCurrentEpochDays(r *rand.Rand) uint32 {
return uint32(simulation.RandIntBetween(r, int(types.DefaultCurrentEpochDays), 2))
}
// GenFarmingFeeCollector returns default farming fee collector.
func GenFarmingFeeCollector(r *rand.Rand) string {
return types.DefaultFarmingFeeCollector.String()
}
// GenMaxNumPrivatePlans returns a randomized value for MaxNumPrivatePlans param.
func GenMaxNumPrivatePlans(r *rand.Rand) uint32 {
return uint32(simulation.RandIntBetween(r, 1, 10000))
}
// RandomizedGenState generates a random GenesisState for farming.
func RandomizedGenState(simState *module.SimulationState) {
var privatePlanCreationFee sdk.Coins
simState.AppParams.GetOrGenerate(
simState.Cdc, PrivatePlanCreationFee, &privatePlanCreationFee, simState.Rand,
func(r *rand.Rand) { privatePlanCreationFee = GenPrivatePlanCreationFee(r) },
)
var nextEpochDays uint32
simState.AppParams.GetOrGenerate(
simState.Cdc, NextEpochDays, &nextEpochDays, simState.Rand,
func(r *rand.Rand) { nextEpochDays = GenNextEpochDays(r) },
)
var feeCollector string
simState.AppParams.GetOrGenerate(
simState.Cdc, FarmingFeeCollector, &feeCollector, simState.Rand,
func(r *rand.Rand) { feeCollector = GenFarmingFeeCollector(r) },
)
var currentEpochDays uint32
simState.AppParams.GetOrGenerate(
simState.Cdc, CurrentEpochDays, ¤tEpochDays, simState.Rand,
func(r *rand.Rand) { currentEpochDays = GenCurrentEpochDays(r) },
)
var maxNumPrivatePlans uint32
simState.AppParams.GetOrGenerate(
simState.Cdc, MaxNumPrivatePlans, &maxNumPrivatePlans, simState.Rand,
func(r *rand.Rand) { maxNumPrivatePlans = GenMaxNumPrivatePlans(r) },
)
farmingGenesis := types.GenesisState{
Params: types.Params{
PrivatePlanCreationFee: privatePlanCreationFee,
NextEpochDays: nextEpochDays,
FarmingFeeCollector: feeCollector,
MaxNumPrivatePlans: maxNumPrivatePlans,
},
CurrentEpochDays: currentEpochDays,
}
simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&farmingGenesis)
}