package keeper import ( "time" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/slashing/types" ) // SignedBlocksWindow - sliding window for downtime slashing func (k Keeper) SignedBlocksWindow(ctx sdk.Context) (res int64) { k.paramspace.Get(ctx, types.KeySignedBlocksWindow, &res) return } // MinSignedPerWindow - minimum blocks signed per window func (k Keeper) MinSignedPerWindow(ctx sdk.Context) int64 { var minSignedPerWindow sdk.Dec k.paramspace.Get(ctx, types.KeyMinSignedPerWindow, &minSignedPerWindow) signedBlocksWindow := k.SignedBlocksWindow(ctx) // NOTE: RoundInt64 will never panic as minSignedPerWindow is // less than 1. return minSignedPerWindow.MulInt64(signedBlocksWindow).RoundInt64() } // DowntimeJailDuration - Downtime unbond duration func (k Keeper) DowntimeJailDuration(ctx sdk.Context) (res time.Duration) { k.paramspace.Get(ctx, types.KeyDowntimeJailDuration, &res) return } // SlashFractionDoubleSign - fraction of power slashed in case of double sign func (k Keeper) SlashFractionDoubleSign(ctx sdk.Context) (res sdk.Dec) { k.paramspace.Get(ctx, types.KeySlashFractionDoubleSign, &res) return } // SlashFractionDowntime - fraction of power slashed for downtime func (k Keeper) SlashFractionDowntime(ctx sdk.Context) (res sdk.Dec) { k.paramspace.Get(ctx, types.KeySlashFractionDowntime, &res) return } // GetParams returns the total set of slashing parameters. func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { k.paramspace.GetParamSet(ctx, ¶ms) return params } // SetParams sets the slashing parameters to the param space. func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { k.paramspace.SetParamSet(ctx, ¶ms) }