keeper

package
v0.35.1 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2024 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetStakeStorages

func GetStakeStorages(lavaChainID string) map[string]epochstoragetypes.StakeStorage

func NewMsgServerImpl

func NewMsgServerImpl(keeper Keeper) types.MsgServer

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

Types

type Hooks

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

Wrapper struct

func (Hooks) AfterDelegationModified

func (h Hooks) AfterDelegationModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) error

create new delegation period record add description

func (Hooks) AfterUnbondingInitiated

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

func (Hooks) AfterValidatorBeginUnbonding

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

func (Hooks) AfterValidatorBonded

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

func (Hooks) AfterValidatorCreated

func (h Hooks) AfterValidatorCreated(ctx sdk.Context, valAddr sdk.ValAddress) error

initialize validator distribution record

func (Hooks) AfterValidatorRemoved

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

AfterValidatorRemoved performs clean up after a validator is removed

func (Hooks) BeforeDelegationCreated

func (h Hooks) BeforeDelegationCreated(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) error

increment period

func (Hooks) BeforeDelegationRemoved

func (h Hooks) BeforeDelegationRemoved(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) error

func (Hooks) BeforeDelegationSharesModified

func (h Hooks) BeforeDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) error

withdraw delegation rewards (which also increments period)

func (Hooks) BeforeValidatorModified

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

func (Hooks) BeforeValidatorSlashed

func (h Hooks) BeforeValidatorSlashed(ctx sdk.Context, valAddr sdk.ValAddress, fraction sdk.Dec) error

BeforeValidatorSlashed hook unbonds funds from providers so the providers-validators delegations balance will preserve

type Keeper

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

func NewKeeper

func NewKeeper(
	cdc codec.BinaryCodec,
	storeKey,
	memKey storetypes.StoreKey,
	ps paramtypes.Subspace,
	bankKeeper types.BankKeeper,
	stakingKeeper types.StakingKeeper,
	accountKeeper types.AccountKeeper,
	epochstorageKeeper types.EpochstorageKeeper,
	specKeeper types.SpecKeeper,
	fixationStoreKeeper types.FixationStoreKeeper,
) *Keeper

func (Keeper) CalcDelegatorReward

func (k Keeper) CalcDelegatorReward(delegatorsReward math.Int, totalDelegations math.Int, delegation types.Delegation) math.Int

CalcDelegatorReward calculates a single delegator reward according to its delegation delegatorReward = delegatorsReward * (delegatorStake / totalDelegations) = (delegatorsReward * delegatorStake) / totalDelegations

func (Keeper) CalcEffectiveDelegationsAndStake

func (k Keeper) CalcEffectiveDelegationsAndStake(stakeEntry epochstoragetypes.StakeEntry, delegations []types.Delegation) (effectiveDelegations math.Int, effectiveStake math.Int)

CalcEffectiveDelegationsAndStake calculates the effective stake and effective delegations (for delegator rewards calculations) effectiveDelegations = min(totalDelegations, delegateLimit) effectiveStake = effectiveDelegations + providerStake

func (Keeper) CalcRewards

func (k Keeper) CalcRewards(stakeEntry epochstoragetypes.StakeEntry, totalReward math.Int, delegations []types.Delegation) (providerReward math.Int, delegatorsReward math.Int)

CalcRewards calculates the provider reward and the total reward for delegators providerReward = totalReward * ((effectiveDelegations*commission + providerStake) / effectiveStake) delegatorsReward = totalReward - providerReward

func (Keeper) ChangeDelegationTimestampForTesting

func (k Keeper) ChangeDelegationTimestampForTesting(ctx sdk.Context, index string, block uint64, timestamp int64) error

func (Keeper) ClaimRewards

func (k Keeper) ClaimRewards(ctx sdk.Context, delegator string, provider string) (sdk.Coin, error)

func (Keeper) DelegateFull

func (k Keeper) DelegateFull(ctx sdk.Context, delegator string, validator string, provider string, chainID string, amount sdk.Coin) error

DelegateFull uses staking module for to delegate with hooks

func (Keeper) DelegatorProviders

func (Keeper) DelegatorRewards

func (Keeper) ExportDelegations

func (k Keeper) ExportDelegations(ctx sdk.Context) fixationtypes.GenesisState

ExportDelegations exports dualstaking delegations data (for genesis)

func (Keeper) ExportDelegators

func (k Keeper) ExportDelegators(ctx sdk.Context) fixationtypes.GenesisState

ExportDelegators exports dualstaking delegators data (for genesis)

func (Keeper) GetAllDelegatorReward

func (k Keeper) GetAllDelegatorReward(ctx sdk.Context) (list []types.DelegatorReward)

GetAllDelegatorReward returns all DelegatorReward

func (Keeper) GetAllProviderDelegatorDelegations

func (k Keeper) GetAllProviderDelegatorDelegations(ctx sdk.Context, delegator, provider string, epoch uint64) []types.Delegation

func (Keeper) GetDelegation

func (k Keeper) GetDelegation(ctx sdk.Context, delegator, provider, chainID string, epoch uint64) (types.Delegation, bool)

func (Keeper) GetDelegatorProviders

func (k Keeper) GetDelegatorProviders(ctx sdk.Context, delegator string, epoch uint64) (providers []string, err error)

GetDelegatorProviders gets all the providers the delegator is delegated to

func (Keeper) GetDelegatorReward

func (k Keeper) GetDelegatorReward(
	ctx sdk.Context,
	index string,
) (val types.DelegatorReward, found bool)

GetDelegatorReward returns a DelegatorReward from its index

func (Keeper) GetDisableDualstakingHook

func (k Keeper) GetDisableDualstakingHook(ctx sdk.Context) bool

GetDisableDualstakingHook returns disableDualstakingHook

func (Keeper) GetParams

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

GetParams get all parameters as types.Params

func (Keeper) GetProviderDelegators

func (k Keeper) GetProviderDelegators(ctx sdk.Context, provider string, epoch uint64) ([]types.Delegation, error)

func (Keeper) Hooks

func (k Keeper) Hooks() *Hooks

Create new dualstaking hooks

func (Keeper) InitDelegations

func (k Keeper) InitDelegations(ctx sdk.Context, data fixationtypes.GenesisState)

InitDelegations imports dualstaking delegations data (from genesis)

func (Keeper) InitDelegators

func (k Keeper) InitDelegators(ctx sdk.Context, data fixationtypes.GenesisState)

InitDelegators imports dualstaking delegators data (from genesis)

func (Keeper) Logger

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

func (Keeper) Params

func (Keeper) PayContributors

func (k Keeper) PayContributors(ctx sdk.Context, senderModule string, contributorAddresses []sdk.AccAddress, contributorReward math.Int, specId string) error

func (Keeper) ProviderDelegators

func (Keeper) Redelegate

func (k Keeper) Redelegate(ctx sdk.Context, delegator, from, to, fromChainID, toChainID string, amount sdk.Coin) error

Redelegate lets a delegator transfer its delegation between providers, but without the funds being subject to unstakeHoldBlocks witholding period. (effective on next epoch)

func (Keeper) RemoveDelegatorReward

func (k Keeper) RemoveDelegatorReward(
	ctx sdk.Context,
	index string,
)

RemoveDelegatorReward removes a DelegatorReward from the store

func (Keeper) RewardProvidersAndDelegators

func (k Keeper) RewardProvidersAndDelegators(ctx sdk.Context, providerAddr sdk.AccAddress, chainID string, totalReward math.Int, senderModule string, calcOnlyProvider bool, calcOnlyDelegators bool, calcOnlyContributer bool) (providerReward math.Int, claimableRewards math.Int, err error)

RewardProvidersAndDelegators is the main function handling provider rewards with delegations it returns the provider reward amount and updates the delegatorReward map with the reward portion for each delegator

func (Keeper) SetDelegatorReward

func (k Keeper) SetDelegatorReward(ctx sdk.Context, delegatorReward types.DelegatorReward)

SetDelegatorReward set a specific DelegatorReward in the store from its index

func (Keeper) SetDisableDualstakingHook

func (k Keeper) SetDisableDualstakingHook(ctx sdk.Context, val bool)

SetDisableDualstakingHook set disableDualstakingHook in the store

func (Keeper) SetParams

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

SetParams set the params

func (Keeper) UnbondFull

func (k Keeper) UnbondFull(ctx sdk.Context, delegator string, validator string, provider string, chainID string, amount sdk.Coin, unstake bool) error

UnbondFul uses staking module for to unbond with hooks

func (Keeper) UnbondUniformProviders

func (k Keeper) UnbondUniformProviders(ctx sdk.Context, delegator string, amount sdk.Coin) error

func (Keeper) VerifyDelegatorBalance

func (k Keeper) VerifyDelegatorBalance(ctx sdk.Context, delAddr sdk.AccAddress) (math.Int, error)

returns the difference between validators delegations and provider delegation (validators-providers)

type Migrator

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

func NewMigrator

func NewMigrator(keeper Keeper) Migrator

func (Migrator) ConvertProviderStakeToSelfDelegation

func (m Migrator) ConvertProviderStakeToSelfDelegation(ctx sdk.Context) error

ConvertProviderStakeToSelfDelegation does: 1. zero out each provider stake and return their money 2. use that same money to make the providers self delegate

func (Migrator) HandleProviderDelegators

func (m Migrator) HandleProviderDelegators(ctx sdk.Context) error

HandleProviderDelegators does: 1. merge the deprecated bonded and not-bonded pool funds 2. return the providers' delegators money back from the merged pool 3. use the same money to delegate to both the original delegation's provider and highest staked validator

func (Migrator) HandleValidatorsDelegators

func (m Migrator) HandleValidatorsDelegators(ctx sdk.Context) error

HandleValidatorsDelegators does: 1. get each validator's delegators 2. delegate the amount of their delegation to the empty provider (using the AfterDelegationModified hook)

func (Migrator) MigrateVersion1To2

func (m Migrator) MigrateVersion1To2(ctx sdk.Context) error

MigrateVersion1To2 implements store migration: Create a self delegation for all providers, Make providers-validators delegations balance

func (Migrator) MigrateVersion2To3

func (m Migrator) MigrateVersion2To3(ctx sdk.Context) error

MigrateVersion2To3 implements store migration: Create a self delegation for all providers, Make providers-validators delegations balance

func (Migrator) MigrateVersion3To4

func (m Migrator) MigrateVersion3To4(ctx sdk.Context) error

MigrateVersion3To4 sets the DisableDualstakingHook flag to false

func (Migrator) VerifyDelegationsBalance

func (m Migrator) VerifyDelegationsBalance(ctx sdk.Context) error

VerifyDelegationsBalance gets all delegators (from both providers and validators) and verifies that each delegator has the same amount of delegations in both the provider and validator sides

Jump to

Keyboard shortcuts

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