cosmos-sdk/x/mint/keeper.go

95 lines
2.2 KiB
Go
Raw Normal View History

2018-10-19 11:36:00 -07:00
package mint
import (
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/params"
)
const (
// ModuleName is the name of the module
ModuleName = "minting"
// default paramspace for params keeper
DefaultParamspace = "mint"
// StoreKey is the default store key for mint
StoreKey = "mint"
// QuerierRoute is the querier route for the minting store.
QuerierRoute = StoreKey
)
2019-01-11 12:08:01 -08:00
// keeper of the staking store
2018-10-19 11:36:00 -07:00
type Keeper struct {
storeKey sdk.StoreKey
cdc *codec.Codec
paramSpace params.Subspace
2019-01-11 12:08:01 -08:00
sk StakingKeeper
2018-10-19 11:36:00 -07:00
fck FeeCollectionKeeper
}
func NewKeeper(cdc *codec.Codec, key sdk.StoreKey,
2019-01-11 12:08:01 -08:00
paramSpace params.Subspace, sk StakingKeeper, fck FeeCollectionKeeper) Keeper {
2018-10-19 11:36:00 -07:00
keeper := Keeper{
storeKey: key,
cdc: cdc,
2019-02-04 18:13:04 -08:00
paramSpace: paramSpace.WithKeyTable(ParamKeyTable()),
2018-10-19 11:36:00 -07:00
sk: sk,
fck: fck,
}
return keeper
}
//____________________________________________________________________
// Keys
var (
minterKey = []byte{0x00} // the one key to use for the keeper store
// params store for inflation params
ParamStoreKeyParams = []byte("params")
)
2019-01-11 12:08:01 -08:00
// ParamTable for staking module
2019-02-04 18:13:04 -08:00
func ParamKeyTable() params.KeyTable {
return params.NewKeyTable(
2018-10-19 11:36:00 -07:00
ParamStoreKeyParams, Params{},
)
}
//______________________________________________________________________
// get the minter
func (k Keeper) GetMinter(ctx sdk.Context) (minter Minter) {
store := ctx.KVStore(k.storeKey)
b := store.Get(minterKey)
if b == nil {
panic("Stored fee pool should not have been nil")
}
k.cdc.MustUnmarshalBinaryLengthPrefixed(b, &minter)
2018-10-19 11:36:00 -07:00
return
}
// set the minter
func (k Keeper) SetMinter(ctx sdk.Context, minter Minter) {
store := ctx.KVStore(k.storeKey)
b := k.cdc.MustMarshalBinaryLengthPrefixed(minter)
2018-10-19 11:36:00 -07:00
store.Set(minterKey, b)
}
//______________________________________________________________________
// get inflation params from the global param store
func (k Keeper) GetParams(ctx sdk.Context) Params {
var params Params
k.paramSpace.Get(ctx, ParamStoreKeyParams, &params)
return params
}
// set inflation params from the global param store
func (k Keeper) SetParams(ctx sdk.Context, params Params) {
k.paramSpace.Set(ctx, ParamStoreKeyParams, &params)
}