package testutil import ( "github.com/cosmos/cosmos-sdk/codec" "github.com/kava-labs/kava/app" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) // StakingGenesisBuilder is a tool for creating a staking genesis state. // Helper methods add values onto a default genesis state. // All methods are immutable and return updated copies of the builder. type StakingGenesisBuilder struct { stakingtypes.GenesisState } var _ GenesisBuilder = (*StakingGenesisBuilder)(nil) func NewStakingGenesisBuilder() StakingGenesisBuilder { gen := stakingtypes.DefaultGenesisState() gen.Params.BondDenom = "ukava" return StakingGenesisBuilder{ GenesisState: *gen, } } func (builder StakingGenesisBuilder) Build() stakingtypes.GenesisState { return builder.GenesisState } func (builder StakingGenesisBuilder) BuildMarshalled(cdc codec.JSONCodec) app.GenesisState { built := builder.Build() return app.GenesisState{ stakingtypes.ModuleName: cdc.MustMarshalJSON(&built), } }