cosmos-sdk/x/mint/internal/keeper/keeper.go

91 lines
2.5 KiB
Go

package keeper
import (
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/mint/internal/types"
"github.com/cosmos/cosmos-sdk/x/params"
)
// keeper of the staking store
type Keeper struct {
storeKey sdk.StoreKey
cdc *codec.Codec
paramSpace params.Subspace
sk types.StakingKeeper
fck types.FeeCollectionKeeper
}
func NewKeeper(
cdc *codec.Codec, key sdk.StoreKey, paramSpace params.Subspace,
sk types.StakingKeeper, fck types.FeeCollectionKeeper,
) Keeper {
keeper := Keeper{
storeKey: key,
cdc: cdc,
paramSpace: paramSpace.WithKeyTable(types.ParamKeyTable()),
sk: sk,
fck: fck,
}
return keeper
}
//______________________________________________________________________
// get the minter
func (k Keeper) GetMinter(ctx sdk.Context) (minter types.Minter) {
store := ctx.KVStore(k.storeKey)
b := store.Get(types.MinterKey)
if b == nil {
panic("stored minter should not have been nil")
}
k.cdc.MustUnmarshalBinaryLengthPrefixed(b, &minter)
return
}
// set the minter
func (k Keeper) SetMinter(ctx sdk.Context, minter types.Minter) {
store := ctx.KVStore(k.storeKey)
b := k.cdc.MustMarshalBinaryLengthPrefixed(minter)
store.Set(types.MinterKey, b)
}
// TotalTokens implements an alias call to the underlying staking keeper's
// TotalTokens to be used in BeginBlocker.
func (k Keeper) TotalTokens(ctx sdk.Context) sdk.Int {
return k.sk.TotalTokens(ctx)
}
// BondedRatio implements an alias call to the underlying staking keeper's
// BondedRatio to be used in BeginBlocker.
func (k Keeper) BondedRatio(ctx sdk.Context) sdk.Dec {
return k.sk.BondedRatio(ctx)
}
// InflateSupply implements an alias call to the underlying staking keeper's
// InflateSupply to be used in BeginBlocker.
func (k Keeper) InflateSupply(ctx sdk.Context, newTokens sdk.Int) {
k.sk.InflateSupply(ctx, newTokens)
}
// AddCollectedFees implements an alias call to the underlying staking keeper's
// AddCollectedFees to be used in BeginBlocker.
func (k Keeper) AddCollectedFees(ctx sdk.Context, fees sdk.Coins) sdk.Coins {
return k.fck.AddCollectedFees(ctx, fees)
}
//______________________________________________________________________
// GetParams returns the total set of minting parameters.
func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) {
k.paramSpace.GetParamSet(ctx, &params)
return params
}
// SetParams sets the total set of minting parameters.
func (k Keeper) SetParams(ctx sdk.Context, params types.Params) {
k.paramSpace.SetParamSet(ctx, &params)
}