keeper

package
v0.4.3 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2024 License: Apache-2.0 Imports: 23 Imported by: 24

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewMsgServerImpl

func NewMsgServerImpl(keeper Keeper) types.MsgServer

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

func NewQueryServerImpl

func NewQueryServerImpl(keeper Keeper) types.QueryServer

Types

type Hooks

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

func (Hooks) AfterDelegationModified

func (h Hooks) AfterDelegationModified(ctx context.Context, _ sdk.AccAddress, _ sdk.ValAddress) error

func (Hooks) AfterUnbondingInitiated

func (h Hooks) AfterUnbondingInitiated(_ context.Context, _ uint64) error

func (Hooks) AfterValidatorBeginUnbonding

func (h Hooks) AfterValidatorBeginUnbonding(ctx context.Context, _ sdk.ConsAddress, _ sdk.ValAddress) error

func (Hooks) AfterValidatorBonded

func (h Hooks) AfterValidatorBonded(ctx context.Context, _ sdk.ConsAddress, _ sdk.ValAddress) error

func (Hooks) AfterValidatorCreated

func (h Hooks) AfterValidatorCreated(_ context.Context, _ sdk.ValAddress) error

func (Hooks) AfterValidatorRemoved

func (h Hooks) AfterValidatorRemoved(ctx context.Context, _ sdk.ConsAddress, valAddr sdk.ValAddress) (err error)

func (Hooks) AfterValidatorSlashed

func (h Hooks) AfterValidatorSlashed(_ context.Context, _ sdk.ConsAddress, _ sdk.ValAddress, _ math.LegacyDec)

func (Hooks) BeforeDelegationCreated

func (h Hooks) BeforeDelegationCreated(_ context.Context, _ sdk.AccAddress, _ sdk.ValAddress) error

func (Hooks) BeforeDelegationRemoved

func (h Hooks) BeforeDelegationRemoved(_ context.Context, _ sdk.AccAddress, _ sdk.ValAddress) error

func (Hooks) BeforeDelegationSharesModified

func (h Hooks) BeforeDelegationSharesModified(_ context.Context, _ sdk.AccAddress, _ sdk.ValAddress) error

func (Hooks) BeforeValidatorModified

func (h Hooks) BeforeValidatorModified(_ context.Context, _ sdk.ValAddress) error

func (Hooks) BeforeValidatorSlashed

func (h Hooks) BeforeValidatorSlashed(ctx context.Context, valAddr sdk.ValAddress, fraction math.LegacyDec) error

type Keeper

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

func NewKeeper

func NewKeeper(
	cdc codec.BinaryCodec,
	storeService store.KVStoreService,
	accountKeeper types.AccountKeeper,
	bankKeeper types.BankKeeper,
	stakingKeeper types.StakingKeeper,
	distributionKeeper types.DistributionKeeper,
	feeCollectorName string,
	authorityAddr string,
) Keeper

func (Keeper) AddAssetsToRewardPool

func (k Keeper) AddAssetsToRewardPool(ctx context.Context, from sdk.AccAddress, val types.AllianceValidator, coins sdk.Coins) error

AddAssetsToRewardPool increments a reward history array. A reward history stores the average reward per token/reward_weight. To calculate the number of rewards claimable, take reward_history * alliance_token_amount * reward_weight

func (Keeper) CalculateDelegationRewards

func (k Keeper) CalculateDelegationRewards(ctx context.Context, delegation types.Delegation, val types.AllianceValidator, asset types.AllianceAsset) (sdk.Coins, types.RewardHistories, error)

CalculateDelegationRewards calculates the rewards that can be claimed for a delegation It takes past reward_rate changes into account by using the RewardRateChangeSnapshot entry

func (Keeper) ClaimDelegationRewards

func (k Keeper) ClaimDelegationRewards(
	ctx context.Context,
	delAddr sdk.AccAddress,
	val types.AllianceValidator,
	denom string,
) (sdk.Coins, error)

ClaimDelegationRewards claims delegation rewards and transfers to the delegator account This method updates the delegation so you will need to re-query an updated version from the database

func (Keeper) ClaimValidatorRewards

func (k Keeper) ClaimValidatorRewards(ctx context.Context, val types.AllianceValidator) (sdk.Coins, error)

ClaimValidatorRewards claims the validator rewards (minus commission) from the distribution module This should be called everytime validator delegation changes (e.g. [un/re]delegation) to update the reward claim history

func (Keeper) ClearDustDelegation

func (k Keeper) ClearDustDelegation(ctx context.Context, delAddr sdk.AccAddress, validator types.AllianceValidator, asset types.AllianceAsset) error

func (Keeper) CompleteRedelegations

func (k Keeper) CompleteRedelegations(ctx sdk.Context) (deleted int)

CompleteRedelegations Go through the re-delegations queue and remove all that have passed the completion time

func (Keeper) CompleteUnbondings added in v0.2.2

func (k Keeper) CompleteUnbondings(ctx context.Context) error

CompleteUnbondings Go through all queued undelegations and send the tokens to the delAddrs

func (Keeper) ConsumeAssetRebalanceEvent

func (k Keeper) ConsumeAssetRebalanceEvent(ctx context.Context) bool

func (Keeper) CreateAlliance

func (k Keeper) CreateAlliance(ctx context.Context, req *types.MsgCreateAllianceProposal) error

func (Keeper) DeductAssetsHook

func (k Keeper) DeductAssetsHook(ctx sdk.Context, assets []*types.AllianceAsset) (sdk.Coins, error)

DeductAssetsHook is called periodically to deduct from an alliance asset (calculated by take_rate). The interval in which assets are deducted is set in module params

func (Keeper) DeductAssetsWithTakeRate

func (k Keeper) DeductAssetsWithTakeRate(ctx sdk.Context, lastClaim time.Time, assets []*types.AllianceAsset) (sdk.Coins, error)

DeductAssetsWithTakeRate Deducts an alliance asset using the take_rate The deducted asset is distributed to the fee_collector module account to be redistributed to stakers

func (Keeper) Delegate

func (k Keeper) Delegate(ctx context.Context, delAddr sdk.AccAddress, validator types.AllianceValidator, coin sdk.Coin) (*math.LegacyDec, error)

Delegate is the entry point for delegators to delegate alliance assets to validators Voting power is not immediately accured to the delegators in this method and a flag is set to rebalance voting power at the end of the block. This improves performance since rebalancing only needs to happen once regardless of how many delegations are made in a single block

func (Keeper) DeleteAlliance

func (k Keeper) DeleteAlliance(ctx context.Context, req *types.MsgDeleteAllianceProposal) error

func (Keeper) DeleteAsset

func (k Keeper) DeleteAsset(ctx context.Context, asset types.AllianceAsset) error

func (Keeper) DeleteRedelegation

func (k Keeper) DeleteRedelegation(ctx context.Context, redel types.Redelegation, completion time.Time) error

func (Keeper) DeleteValidatorInfo added in v0.3.1

func (k Keeper) DeleteValidatorInfo(ctx context.Context, valAddr sdk.ValAddress) error

func (Keeper) ExportGenesis

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

func (Keeper) GetAllAllianceValidatorInfo

func (k Keeper) GetAllAllianceValidatorInfo(ctx context.Context) (infos []types.AllianceValidatorInfo, err error)

func (Keeper) GetAllAssets

func (k Keeper) GetAllAssets(ctx context.Context) (assets []*types.AllianceAsset)

func (Keeper) GetAllianceBondedAmount

func (k Keeper) GetAllianceBondedAmount(ctx context.Context, delegator sdk.AccAddress) (math.Int, error)

GetAllianceBondedAmount returns the total amount of bonded native tokens that are not in the unbonding pool

func (Keeper) GetAllianceValidator

func (k Keeper) GetAllianceValidator(ctx context.Context, valAddr sdk.ValAddress) (types.AllianceValidator, error)

func (Keeper) GetAllianceValidatorInfo

func (k Keeper) GetAllianceValidatorInfo(ctx context.Context, valAddr sdk.ValAddress) (types.AllianceValidatorInfo, bool)

func (Keeper) GetAssetByDenom

func (k Keeper) GetAssetByDenom(ctx context.Context, denom string) (asset types.AllianceAsset, found bool)

func (Keeper) GetAuthority added in v0.3.0

func (k Keeper) GetAuthority() string

func (Keeper) GetDelegation

func (k Keeper) GetDelegation(
	ctx context.Context,
	delAddr sdk.AccAddress,
	valAddr sdk.ValAddress,
	denom string,
) (d types.Delegation, found bool)

func (Keeper) GetParams added in v0.3.0

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

func (Keeper) GetUnbondings added in v0.2.2

func (k Keeper) GetUnbondings(
	ctx sdk.Context,
	denom string,
	delAddr sdk.AccAddress,
	valAddr sdk.ValAddress,
) (unbondingDelegations []types.UnbondingDelegation, err error)

This method retun all unbonding delegations for a given denom, validator address and delegator address. It is the most optimal way to query that data because it uses the indexes that are already in place for the unbonding queue and ommits unnecessary checks or data parsings.

func (Keeper) GetUnbondingsByDelegator added in v0.3.5

func (k Keeper) GetUnbondingsByDelegator(
	ctx context.Context,
	delAddr sdk.AccAddress,
) (unbondingDelegations []types.UnbondingDelegation, err error)

This method retun all in-progress unbondings for a given delegator address

func (Keeper) GetUnbondingsByDenomAndDelegator added in v0.2.2

func (k Keeper) GetUnbondingsByDenomAndDelegator(
	ctx context.Context,
	denom string,
	delAddr sdk.AccAddress,
) (unbondingDelegations []types.UnbondingDelegation, err error)

This method retun all unbonding delegations for a given denom and delegator address, it is less optimal than GetUnbondings because it has do some data parsing and additional checks, plus it returns a larger data set.

func (Keeper) HasRedelegation

func (k Keeper) HasRedelegation(ctx context.Context, delAddr sdk.AccAddress, dstVal sdk.ValAddress, denom string) bool

func (Keeper) InitGenesis

func (k Keeper) InitGenesis(ctx sdk.Context, g *types.GenesisState) []abci.ValidatorUpdate

func (Keeper) InitializeAllianceAssets

func (k Keeper) InitializeAllianceAssets(ctx context.Context, assets []*types.AllianceAsset) (err error)

InitializeAllianceAssets this hooks adds a reward change snapshot when time > asset.RewardStartTime A reward change snapshot of 0 weight is added to signify that the asset did not accrue any rewards during the warm up period so we can calculate the correct rewards when claiming

func (Keeper) IterateAllWeightChangeSnapshot

func (k Keeper) IterateAllWeightChangeSnapshot(ctx sdk.Context, cb func(denom string, valAddr sdk.ValAddress, lastClaimHeight uint64, snapshot types.RewardWeightChangeSnapshot) (stop bool))

func (Keeper) IterateAllianceValidatorInfo

func (k Keeper) IterateAllianceValidatorInfo(ctx context.Context, cb func(valAddr sdk.ValAddress, info types.AllianceValidatorInfo) (stop bool)) (err error)

func (Keeper) IterateDelegations

func (k Keeper) IterateDelegations(ctx context.Context, cb func(d types.Delegation) (stop bool)) (err error)

func (Keeper) IterateRedelegations

func (k Keeper) IterateRedelegations(ctx context.Context, cb func(redelegation types.Redelegation, completionTime time.Time) (stop bool))

func (Keeper) IterateRedelegationsByDelegator

func (k Keeper) IterateRedelegationsByDelegator(ctx context.Context, delAddr sdk.AccAddress) storetypes.Iterator

func (Keeper) IterateRedelegationsBySrcValidator

func (k Keeper) IterateRedelegationsBySrcValidator(ctx context.Context, srcValAddr sdk.ValAddress) storetypes.Iterator

func (Keeper) IterateUndelegations

func (k Keeper) IterateUndelegations(ctx context.Context, cb func(undelegation types.QueuedUndelegation, completionTime time.Time) (stop bool))

func (Keeper) IterateUndelegationsByCompletionTime

func (k Keeper) IterateUndelegationsByCompletionTime(ctx context.Context, completionTime time.Time) storetypes.Iterator

func (Keeper) IterateUndelegationsBySrcValidator

func (k Keeper) IterateUndelegationsBySrcValidator(ctx context.Context, valAddr sdk.ValAddress) storetypes.Iterator

func (Keeper) IterateWeightChangeSnapshot

func (k Keeper) IterateWeightChangeSnapshot(ctx context.Context, denom string, valAddr sdk.ValAddress, lastClaimHeight uint64) (cstore.Iterator, error)

func (Keeper) LastRewardClaimTime

func (k Keeper) LastRewardClaimTime(ctx sdk.Context) (res time.Time)

func (Keeper) Logger

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

func (Keeper) QueueAssetRebalanceEvent

func (k Keeper) QueueAssetRebalanceEvent(ctx context.Context) error

func (Keeper) RebalanceBondTokenWeights

func (k Keeper) RebalanceBondTokenWeights(ctx context.Context, assets []*types.AllianceAsset) (err error)

RebalanceBondTokenWeights uses asset reward weights to calculate the expected amount of staking token that has to be minted / burned to maintain the right ratio It iterates all validators and calculates the expected staked amount based on delegations and delegates/undelegates the difference.

func (Keeper) RebalanceHook

func (k Keeper) RebalanceHook(ctx context.Context, assets []*types.AllianceAsset) error

func (Keeper) Redelegate

func (k Keeper) Redelegate(ctx context.Context, delAddr sdk.AccAddress, srcVal types.AllianceValidator, dstVal types.AllianceValidator, coin sdk.Coin) (*time.Time, error)

Redelegate from one validator to another

func (Keeper) ResetAssetAndValidators

func (k Keeper) ResetAssetAndValidators(ctx context.Context, asset types.AllianceAsset) error

ResetAssetAndValidators When an asset has no more tokens being delegated, go through all validators and set validator shares to zero

func (Keeper) RewardClaimInterval

func (k Keeper) RewardClaimInterval(ctx sdk.Context) (res time.Duration)

func (Keeper) RewardDelayTime

func (k Keeper) RewardDelayTime(ctx sdk.Context) (res time.Duration)

func (Keeper) RewardWeightChangeHook

func (k Keeper) RewardWeightChangeHook(ctx sdk.Context, assets []*types.AllianceAsset) error

func (Keeper) SetAsset

func (k Keeper) SetAsset(ctx context.Context, asset types.AllianceAsset) error

SetAsset Does not check if the asset already exists and overwrites it

func (Keeper) SetDelegation

func (k Keeper) SetDelegation(ctx context.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress, denom string, del types.Delegation) error

func (Keeper) SetLastRewardClaimTime

func (k Keeper) SetLastRewardClaimTime(ctx sdk.Context, lastTime time.Time) error

func (Keeper) SetParams

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

func (Keeper) SetRewardWeightChangeSnapshot

func (k Keeper) SetRewardWeightChangeSnapshot(ctx context.Context, asset types.AllianceAsset, val types.AllianceValidator) error

func (Keeper) SetValidator

func (k Keeper) SetValidator(ctx context.Context, val types.AllianceValidator) error

func (Keeper) SetValidatorInfo

func (k Keeper) SetValidatorInfo(ctx context.Context, valAddr sdk.ValAddress, val types.AllianceValidatorInfo) error

func (Keeper) SlashValidator

func (k Keeper) SlashValidator(ctx context.Context, valAddr sdk.ValAddress, fraction math.LegacyDec) error

SlashValidator works by reducing the amount of validator shares for all alliance assets by a `fraction` This effectively reallocates tokens from slashed validators to good validators On top of slashing currently bonded delegations, we also slash re-delegations and un-delegations that are still in the progress of unbonding

func (Keeper) StakingHooks

func (k Keeper) StakingHooks() Hooks

func (Keeper) StoreService added in v0.4.0

func (k Keeper) StoreService() store.KVStoreService

func (Keeper) Undelegate

func (k Keeper) Undelegate(ctx context.Context, delAddr sdk.AccAddress, validator types.AllianceValidator, coin sdk.Coin) (*time.Time, error)

Undelegate from a validator Staked tokens are only distributed to the delegator after the unbonding period

func (Keeper) UpdateAlliance

func (k Keeper) UpdateAlliance(ctx context.Context, req *types.MsgUpdateAllianceProposal) error

func (Keeper) UpdateAllianceAsset

func (k Keeper) UpdateAllianceAsset(ctx context.Context, newAsset types.AllianceAsset) error

UpdateAllianceAsset updates the alliance asset with new params Also saves a snapshot whenever rewards weight changes to make sure delegation reward calculation has reference to historical reward rates

func (Keeper) ValidateDelegatedAmount

func (k Keeper) ValidateDelegatedAmount(delegation types.Delegation, coin sdk.Coin, val types.AllianceValidator, asset types.AllianceAsset) (shares math.LegacyDec, err error)

ValidateDelegatedAmount returns the amount of shares for a given coin that is staked Returns the number of shares that represents the amount of staked tokens that was requested

type MsgServer

type MsgServer struct {
	Keeper
}

func (MsgServer) CreateAlliance added in v0.3.0

func (MsgServer) Delegate

func (MsgServer) DeleteAlliance added in v0.3.0

func (MsgServer) Redelegate

func (MsgServer) Undelegate

func (MsgServer) UpdateAlliance added in v0.3.0

func (MsgServer) UpdateParams added in v0.3.0

type QueryServer

type QueryServer struct {
	Keeper
}

func (QueryServer) Alliance

func (QueryServer) AllianceRedelegations added in v0.2.2

func (QueryServer) AllianceUnbondings added in v0.2.2

func (QueryServer) Params

type RewardsKeeper

type RewardsKeeper interface{}

Jump to

Keyboard shortcuts

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