keeper

package
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllInvariants

func AllInvariants(k Keeper) sdk.Invariant

AllInvariants runs all invariants of the liquidstaking module.

func LiquidDelegationInvariant

func LiquidDelegationInvariant(k Keeper) sdk.Invariant

LiquidDelegationInvariant checks all delegation of proxy account involved liquid validators.

func NetAmountInvariant

func NetAmountInvariant(k Keeper) sdk.Invariant

NetAmountInvariant checks that the amount of btoken supply with NetAmount.

func NewMsgServerImpl

func NewMsgServerImpl(keeper Keeper) types.MsgServer

NewMsgServerImpl returns an implementation of the liquidstaking MsgServer interface for the provided Keeper.

func RandomActiveLiquidValidator

func RandomActiveLiquidValidator(r *rand.Rand, ctx sdk.Context, k Keeper, sk types.StakingKeeper) (val stakingtypes.Validator, ok bool)

RandomActiveLiquidValidator returns a random validator given access to the keeper and ctx

func RandomValidator

func RandomValidator(r *rand.Rand, keeper types.StakingKeeper, ctx sdk.Context) (val stakingtypes.Validator, ok bool)

RandomValidator returns a random validator given access to the keeper and ctx

func RegisterInvariants

func RegisterInvariants(ir sdk.InvariantRegistry, k Keeper)

RegisterInvariants registers all liquidstaking invariants.

func TotalLiquidTokensInvariant

func TotalLiquidTokensInvariant(k Keeper) sdk.Invariant

TotalLiquidTokensInvariant checks equal total liquid tokens of proxy account with total liquid tokens of liquid validators.

Types

type Keeper

type Keeper struct {
	// contains filtered or unexported fields
}

Keeper of the liquidstaking store

func NewKeeper

func NewKeeper(cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace,
	accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper, stakingKeeper types.StakingKeeper,
	distrKeeper types.DistrKeeper, slashingKeeper types.SlashingKeeper,
) Keeper

NewKeeper returns a liquidstaking keeper. It handles: - creating new ModuleAccounts for each pool ReserveAccount - sending to and from ModuleAccounts - minting, burning PoolCoins

func (Keeper) CheckDelegationStates

func (k Keeper) CheckDelegationStates(ctx sdk.Context, proxyAcc sdk.AccAddress) (sdk.Dec, sdk.Dec, math.Int)

CheckDelegationStates returns total remaining rewards, delshares, liquid tokens of delegations by proxy account

func (Keeper) ExportGenesis

func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState

ExportGenesis returns the liquidstaking module's genesis state.

func (Keeper) GetActiveLiquidValidators

func (k Keeper) GetActiveLiquidValidators(ctx sdk.Context, whitelistedValsMap types.WhitelistedValsMap) (vals types.ActiveLiquidValidators)

GetActiveLiquidValidators get the set of active liquid validators.

func (Keeper) GetAllLiquidValidatorStates

func (k Keeper) GetAllLiquidValidatorStates(ctx sdk.Context) (liquidValidatorStates []types.LiquidValidatorState)

func (Keeper) GetAllLiquidValidators

func (k Keeper) GetAllLiquidValidators(ctx sdk.Context) (vals types.LiquidValidators)

GetAllLiquidValidators get the set of all liquid validators with no limits, used during genesis dump

func (Keeper) GetCodec

func (k Keeper) GetCodec() codec.BinaryCodec

GetCodec return codec.Codec object used by the keeper

func (Keeper) GetLiquidValidator

func (k Keeper) GetLiquidValidator(ctx sdk.Context, addr sdk.ValAddress) (val types.LiquidValidator, found bool)

GetLiquidValidator get a single liquid validator

func (Keeper) GetLiquidValidatorState

func (k Keeper) GetLiquidValidatorState(ctx sdk.Context, addr sdk.ValAddress) (liquidValidatorState types.LiquidValidatorState, found bool)

func (Keeper) GetNetAmountState

func (k Keeper) GetNetAmountState(ctx sdk.Context) (nas types.NetAmountState)

GetNetAmountState calculates the sum of bondedDenom balance, total delegation tokens(slash applied LiquidTokens), total remaining reward of types.LiquidStakingProxyAcc During liquid unstaking, btoken immediately burns and the unbonding queue belongs to the requester, so the liquid staker's unbonding values are excluded on netAmount It is used only for calculation and query and is not stored in kv.

func (Keeper) GetParams

func (k Keeper) GetParams(ctx sdk.Context) (params types.Params)

GetParams gets the parameters for the liquidstaking module.

func (Keeper) GetProxyAccBalance

func (k Keeper) GetProxyAccBalance(ctx sdk.Context, proxyAcc sdk.AccAddress) (balance sdk.Coin)

func (Keeper) GetWeightMap

func (k Keeper) GetWeightMap(ctx sdk.Context, liquidVals types.LiquidValidators, whitelistedValsMap types.WhitelistedValsMap) (map[string]math.Int, math.Int)

func (Keeper) InitGenesis

func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState)

InitGenesis initializes the liquidstaking module's state from a given genesis state.

func (Keeper) IsActiveLiquidValidator

func (k Keeper) IsActiveLiquidValidator(ctx sdk.Context, lv types.LiquidValidator, whitelistedValsMap types.WhitelistedValsMap) bool

func (Keeper) IsTombstoned

func (k Keeper) IsTombstoned(ctx sdk.Context, val stakingtypes.Validator) bool

func (Keeper) LiquidBondDenom

func (k Keeper) LiquidBondDenom(ctx sdk.Context) (res string)

func (Keeper) LiquidDelegate

func (k Keeper) LiquidDelegate(ctx sdk.Context, proxyAcc sdk.AccAddress, activeVals types.ActiveLiquidValidators, stakingAmt math.Int, whitelistedValsMap types.WhitelistedValsMap) (newShares sdk.Dec, err error)

LiquidDelegate delegates staking amount to active validators by proxy account.

func (Keeper) LiquidStake

func (k Keeper) LiquidStake(
	ctx sdk.Context, proxyAcc, liquidStaker sdk.AccAddress, stakingCoin sdk.Coin) (newShares sdk.Dec, bTokenMintAmount math.Int, err error)

LiquidStake mints bToken worth of staking coin value according to NetAmount and performs LiquidDelegate.

func (Keeper) LiquidUnbond

func (k Keeper) LiquidUnbond(
	ctx sdk.Context, proxyAcc, liquidStaker sdk.AccAddress, valAddr sdk.ValAddress, shares sdk.Dec, checkMaxEntries bool,
) (time.Time, math.Int, stakingtypes.UnbondingDelegation, error)

LiquidUnbond unbond delegation shares to active validators by proxy account.

func (Keeper) LiquidUnstake

func (k Keeper) LiquidUnstake(
	ctx sdk.Context, proxyAcc, liquidStaker sdk.AccAddress, unstakingBtoken sdk.Coin,
) (time.Time, math.Int, []stakingtypes.UnbondingDelegation, math.Int, error)

LiquidUnstake burns unstakingBtoken and performs LiquidUnbond to active liquid validators with del shares worth of shares according to NetAmount with each validators current weight.

func (Keeper) Logger

func (k Keeper) Logger(ctx sdk.Context) log.Logger

Logger returns a module-specific logger.

func (Keeper) Rebalance

func (k Keeper) Rebalance(ctx sdk.Context, proxyAcc sdk.AccAddress, liquidVals types.LiquidValidators, whitelistedValsMap types.WhitelistedValsMap, rebalancingTrigger sdk.Dec) (redelegations []types.Redelegation)

Rebalance argument liquidVals containing ValidatorStatusActive which is containing just added on whitelist(liquidToken 0) and ValidatorStatusInactive to delist

func (Keeper) RemoveLiquidValidator

func (k Keeper) RemoveLiquidValidator(ctx sdk.Context, val types.LiquidValidator)

RemoveLiquidValidator remove a liquid validator on kv store

func (Keeper) SetLiquidValidator

func (k Keeper) SetLiquidValidator(ctx sdk.Context, val types.LiquidValidator)

SetLiquidValidator set the main record holding liquid validator details

func (Keeper) SetParams

func (k Keeper) SetParams(ctx sdk.Context, params types.Params)

SetParams sets the parameters for the liquidstaking module.

func (Keeper) TryRedelegation

func (k Keeper) TryRedelegation(ctx sdk.Context, re types.Redelegation) (completionTime time.Time, err error)

TryRedelegation attempts redelegation, which is applied only when successful through cached context because there is a constraint that fails if already receiving redelegation.

func (Keeper) UpdateLiquidValidatorSet

func (k Keeper) UpdateLiquidValidatorSet(ctx sdk.Context) []types.Redelegation

func (Keeper) WithdrawLiquidRewards

func (k Keeper) WithdrawLiquidRewards(ctx sdk.Context, proxyAcc sdk.AccAddress) math.Int

func (Keeper) WithdrawRewardsAndReStake

func (k Keeper) WithdrawRewardsAndReStake(ctx sdk.Context, whitelistedValsMap types.WhitelistedValsMap)

WithdrawRewardsAndReStake withdraw rewards and re-staking when over threshold

type Querier

type Querier struct {
	Keeper
}

Querier is used as Keeper will have duplicate methods if used directly, and gRPC names take precedence over keeper.

func (Querier) LiquidValidators

LiquidValidators queries all liquid validators.

func (Querier) Params

Params queries the parameters of the liquidstaking module.

func (Querier) States

States queries states of liquid staking module.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL