keeper

package
v7.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	HourDuration, _    = time.ParseDuration("1h")
	DayDuration, _     = time.ParseDuration("24h")
	WeekDuration, _    = time.ParseDuration("168h")
	TwoWeekDuration, _ = time.ParseDuration("336h")
	BaselineDurations  = []time.Duration{DayDuration, WeekDuration, TwoWeekDuration}
)

Functions

func MergeLockupsForSimilarDurations

func MergeLockupsForSimilarDurations(
	ctx sdk.Context,
	k Keeper,
	ak types.AccountKeeper,
	baselineDurations []time.Duration,
	durationDiff time.Duration,
)

MergeLockupsForSimilarDurations iterates through every account. For each account, it combines all lockups it has at a similar duration (to be defined in a bit). It will delete every existing lockup for that account, and make at most, a single new lockup per "base duration", denom pair. If a lockup is far from any base duration, we don't change anything about it. We define a lockup length as a "Similar duration to base duration D", if: D <= lockup length <= D + durationDiff.

func NewMsgServerImpl

func NewMsgServerImpl(keeper *Keeper) types.MsgServer

NewMsgServerImpl returns an instance of MsgServer

func NewQuerier

func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier

NewQuerier returns an instance of querier

func RegisterInvariants

func RegisterInvariants(ir sdk.InvariantRegistry, keeper Keeper)

RegisterInvariants registers all governance invariants

func SyntheticLockupInvariant

func SyntheticLockupInvariant(keeper Keeper) sdk.Invariant

Types

type AdminKeeper

type AdminKeeper struct {
	Keeper
}

AdminKeeper defines a god priviledge keeper functions to remove tokens from locks and create new locks For the governance system of token pools, we want a "ragequit" feature So governance changes will take 1 week to go into effect During that time, people can choose to "ragequit" which means they would leave the original pool and form a new pool with the old parameters but if they still had 2 months of lockup left, their liquidity still needs to be 2 month lockup-ed, just in the new pool And we need to replace their pool1 LP tokens with pool2 LP tokens with the same lock duration and end time

func (AdminKeeper) BreakLock

func (ak AdminKeeper) BreakLock(ctx sdk.Context, lockID uint64) error

BreakLock unlock a lockID without considering time with admin priviledge

func (AdminKeeper) Relock

func (ak AdminKeeper) Relock(ctx sdk.Context, lockID uint64, newCoins sdk.Coins) error

Relock unlock previous lockID and create a new lock with newCoins with same duration and endtime

type Keeper

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

Keeper provides a way to manage module storage

func NewKeeper

func NewKeeper(cdc codec.Codec, storeKey sdk.StoreKey, ak types.AccountKeeper, bk types.BankKeeper, dk types.DistrKeeper) *Keeper

NewKeeper returns an instance of Keeper

func (Keeper) AccountLockIterator

func (k Keeper) AccountLockIterator(ctx sdk.Context, isUnlocking bool, addr sdk.AccAddress) sdk.Iterator

AccountLockIterator returns the iterator used for getting all locks by account

func (Keeper) AccountLockIteratorAfterTime

func (k Keeper) AccountLockIteratorAfterTime(ctx sdk.Context, addr sdk.AccAddress, time time.Time) sdk.Iterator

AccountLockIteratorAfterTime returns the iterator to get locked coins by account

func (Keeper) AccountLockIteratorAfterTimeDenom

func (k Keeper) AccountLockIteratorAfterTimeDenom(ctx sdk.Context, addr sdk.AccAddress, denom string, time time.Time) sdk.Iterator

AccountLockIteratorAfterTimeDenom returns the iterator to get locked coins by account and denom

func (Keeper) AccountLockIteratorBeforeTime

func (k Keeper) AccountLockIteratorBeforeTime(ctx sdk.Context, addr sdk.AccAddress, time time.Time) sdk.Iterator

AccountLockIteratorBeforeTime returns the iterator to get unlockable coins by account

func (Keeper) AccountLockIteratorBeforeTimeDenom

func (k Keeper) AccountLockIteratorBeforeTimeDenom(ctx sdk.Context, addr sdk.AccAddress, denom string, time time.Time) sdk.Iterator

AccountLockIteratorBeforeTimeDenom returns the iterator to get unlockable coins by account and denom

func (Keeper) AccountLockIteratorDenom

func (k Keeper) AccountLockIteratorDenom(ctx sdk.Context, isUnlocking bool, addr sdk.AccAddress, denom string) sdk.Iterator

AccountLockIteratorDenom returns the iterator used for getting all locks by account and denom

func (Keeper) AccountLockIteratorDurationDenom

func (k Keeper) AccountLockIteratorDurationDenom(ctx sdk.Context, isUnlocking bool, addr sdk.AccAddress, denom string, duration time.Duration) sdk.Iterator

AccountLockIteratorDurationDenom returns iterator used for getting all locks by account and denom with specific duration

func (Keeper) AccountLockIteratorLongerDuration

func (k Keeper) AccountLockIteratorLongerDuration(ctx sdk.Context, isUnlocking bool, addr sdk.AccAddress, duration time.Duration) sdk.Iterator

AccountLockIteratorLongerDuration returns iterator used for getting all locks by account longer than duration

func (Keeper) AccountLockIteratorLongerDurationDenom

func (k Keeper) AccountLockIteratorLongerDurationDenom(ctx sdk.Context, isUnlocking bool, addr sdk.AccAddress, denom string, duration time.Duration) sdk.Iterator

AccountLockIteratorLongerDurationDenom returns iterator used for getting all locks by account and denom longer than duration

func (Keeper) AccountLockIteratorShorterThanDuration

func (k Keeper) AccountLockIteratorShorterThanDuration(ctx sdk.Context, isUnlocking bool, addr sdk.AccAddress, duration time.Duration) sdk.Iterator

AccountLockIteratorShorterThanDuration returns iterator used for getting all locks by account longer than duration

func (Keeper) AccountLockedCoins

AccountLockedCoins Returns a locked coins that can't be withdrawn

func (Keeper) AccountLockedLongerDuration

AccountLockedLongerDuration Returns account locked with duration longer than specified

func (Keeper) AccountLockedLongerDurationDenom

AccountLockedLongerDurationDenom Returns account locked with duration longer than specified with specific denom

func (Keeper) AccountLockedLongerDurationNotUnlockingOnly

AccountLockedLongerDurationNotUnlockingOnly Returns account locked records with longer duration excluding tokens started unlocking

func (Keeper) AccountLockedPastTime

AccountLockedPastTime Returns the total locks of an account whose unlock time is beyond timestamp

func (Keeper) AccountLockedPastTimeDenom

AccountLockedPastTimeDenom is equal to GetAccountLockedPastTime but denom specific

func (Keeper) AccountLockedPastTimeNotUnlockingOnly

AccountLockedPastTimeNotUnlockingOnly Returns locked records of an account with unlock time beyond timestamp excluding tokens started unlocking

func (Keeper) AccountUnlockableCoins

AccountUnlockableCoins returns unlockable coins which are not withdrawn yet

func (Keeper) AccountUnlockedBeforeTime

AccountUnlockedBeforeTime Returns the total unlocks of an account whose unlock time is before timestamp

func (Keeper) AccountUnlockingCoins

AccountUnlockingCoins returns whole unlocking coins

func (Keeper) AddTokensToLockByID

func (k Keeper) AddTokensToLockByID(ctx sdk.Context, lockID uint64, coins sdk.Coins) (*types.PeriodLock, error)

AddTokensToLock locks more tokens into a lockup This also saves the lock to the store.

func (Keeper) BeginForceUnlock

func (k Keeper) BeginForceUnlock(ctx sdk.Context, lockID uint64, coins sdk.Coins) error

func (Keeper) BeginUnlock

func (k Keeper) BeginUnlock(ctx sdk.Context, lock types.PeriodLock, coins sdk.Coins) error

BeginUnlock is a utility to start unlocking coins from NotUnlocking queue

func (Keeper) BeginUnlockAllNotUnlockings

func (k Keeper) BeginUnlockAllNotUnlockings(ctx sdk.Context, account sdk.AccAddress) ([]types.PeriodLock, error)

BeginUnlockAllNotUnlockings begins unlock for all not unlocking coins

func (Keeper) ClearAccumulationStores

func (k Keeper) ClearAccumulationStores(ctx sdk.Context)

func (Keeper) ClearAllAccumulationStores

func (k Keeper) ClearAllAccumulationStores(ctx sdk.Context)

func (Keeper) ClearAllLockRefKeys

func (k Keeper) ClearAllLockRefKeys(ctx sdk.Context)

func (Keeper) CreateSyntheticLockup

func (k Keeper) CreateSyntheticLockup(ctx sdk.Context, lockID uint64, synthDenom string, unlockDuration time.Duration, isUnlocking bool) error

CreateSyntheticLockup create synthetic lockup with lock id and synthdenom

func (Keeper) DeleteAllMaturedSyntheticLocks

func (k Keeper) DeleteAllMaturedSyntheticLocks(ctx sdk.Context)

func (Keeper) DeleteSyntheticLockup

func (k Keeper) DeleteSyntheticLockup(ctx sdk.Context, lockID uint64, synthdenom string) error

DeleteSyntheticLockup delete synthetic lockup with lock id and synthdenom

func (Keeper) ForceUnlock

func (k Keeper) ForceUnlock(ctx sdk.Context, lock types.PeriodLock) error

ForceUnlock ignores unlock duration and immediately unlock and refund. CONTRACT: should be used only at the chain upgrade script TODO: Revisit for Superfluid Staking

func (Keeper) GetAccountLockedCoins

func (k Keeper) GetAccountLockedCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins

GetAccountLockedCoins Returns a locked coins that can't be withdrawn

func (Keeper) GetAccountLockedDurationNotUnlockingOnly

func (k Keeper) GetAccountLockedDurationNotUnlockingOnly(ctx sdk.Context, addr sdk.AccAddress, denom string, duration time.Duration) []types.PeriodLock

GetAccountLockedDurationNotUnlockingOnly Returns account locked with specific duration within not unlockings

func (Keeper) GetAccountLockedLongerDuration

func (k Keeper) GetAccountLockedLongerDuration(ctx sdk.Context, addr sdk.AccAddress, duration time.Duration) []types.PeriodLock

GetAccountLockedLongerDuration Returns account locked with duration longer than specified

func (Keeper) GetAccountLockedLongerDurationDenom

func (k Keeper) GetAccountLockedLongerDurationDenom(ctx sdk.Context, addr sdk.AccAddress, denom string, duration time.Duration) []types.PeriodLock

GetAccountLockedLongerDurationDenom Returns account locked with duration longer than specified with specific denom

func (Keeper) GetAccountLockedLongerDurationDenomNotUnlockingOnly

func (k Keeper) GetAccountLockedLongerDurationDenomNotUnlockingOnly(ctx sdk.Context, addr sdk.AccAddress, denom string, duration time.Duration) []types.PeriodLock

GetAccountLockedLongerDurationDenom Returns account locked with duration longer than specified with specific denom

func (Keeper) GetAccountLockedLongerDurationNotUnlockingOnly

func (k Keeper) GetAccountLockedLongerDurationNotUnlockingOnly(ctx sdk.Context, addr sdk.AccAddress, duration time.Duration) []types.PeriodLock

GetAccountLockedLongerDurationNotUnlockingOnly Returns account locked with duration longer than specified

func (Keeper) GetAccountLockedPastTime

func (k Keeper) GetAccountLockedPastTime(ctx sdk.Context, addr sdk.AccAddress, timestamp time.Time) []types.PeriodLock

GetAccountLockedPastTime Returns the total locks of an account whose unlock time is beyond timestamp

func (Keeper) GetAccountLockedPastTimeDenom

func (k Keeper) GetAccountLockedPastTimeDenom(ctx sdk.Context, addr sdk.AccAddress, denom string, timestamp time.Time) []types.PeriodLock

GetAccountLockedPastTimeDenom is equal to GetAccountLockedPastTime but denom specific

func (Keeper) GetAccountLockedPastTimeNotUnlockingOnly

func (k Keeper) GetAccountLockedPastTimeNotUnlockingOnly(ctx sdk.Context, addr sdk.AccAddress, timestamp time.Time) []types.PeriodLock

GetAccountLockedPastTimeNotUnlockingOnly Returns the total locks of an account whose unlock time is beyond timestamp

func (Keeper) GetAccountPeriodLocks

func (k Keeper) GetAccountPeriodLocks(ctx sdk.Context, addr sdk.AccAddress) []types.PeriodLock

GetAccountPeriodLocks Returns the period locks associated to an account

func (Keeper) GetAccountUnlockableCoins

func (k Keeper) GetAccountUnlockableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins

GetAccountUnlockableCoins Returns whole unlockable coins which are not withdrawn yet

func (Keeper) GetAccountUnlockedBeforeTime

func (k Keeper) GetAccountUnlockedBeforeTime(ctx sdk.Context, addr sdk.AccAddress, timestamp time.Time) []types.PeriodLock

GetAccountUnlockedBeforeTime Returns the total unlocks of an account whose unlock time is before timestamp

func (Keeper) GetAccountUnlockingCoins

func (k Keeper) GetAccountUnlockingCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins

GetAccountUnlockingCoins Returns whole unlocking coins

func (Keeper) GetAllSyntheticLockups

func (k Keeper) GetAllSyntheticLockups(ctx sdk.Context) []types.SyntheticLock

func (Keeper) GetAllSyntheticLockupsByAddr

func (k Keeper) GetAllSyntheticLockupsByAddr(ctx sdk.Context, owner sdk.AccAddress) []types.SyntheticLock

func (Keeper) GetAllSyntheticLockupsByLockup

func (k Keeper) GetAllSyntheticLockupsByLockup(ctx sdk.Context, lockID uint64) []types.SyntheticLock

func (Keeper) GetLastLockID

func (k Keeper) GetLastLockID(ctx sdk.Context) uint64

GetLastLockID returns ID used last time

func (Keeper) GetLockByID

func (k Keeper) GetLockByID(ctx sdk.Context, lockID uint64) (*types.PeriodLock, error)

GetLockByID Returns lock from lockID

func (Keeper) GetLockedDenom

func (k Keeper) GetLockedDenom(ctx sdk.Context, denom string, duration time.Duration) sdk.Int

GetLockedDenom Returns the total amount of denom that are locked

func (Keeper) GetLocksDenom

func (k Keeper) GetLocksDenom(ctx sdk.Context, denom string) []types.PeriodLock

func (Keeper) GetLocksLongerThanDurationDenom

func (k Keeper) GetLocksLongerThanDurationDenom(ctx sdk.Context, denom string, duration time.Duration) []types.PeriodLock

GetLocksLongerThanDurationDenom Returns the locks whose unlock duration is longer than duration

func (Keeper) GetLocksPastTimeDenom

func (k Keeper) GetLocksPastTimeDenom(ctx sdk.Context, denom string, timestamp time.Time) []types.PeriodLock

GetLocksPastTimeDenom Returns the locks whose unlock time is beyond timestamp

func (Keeper) GetModuleBalance

func (k Keeper) GetModuleBalance(ctx sdk.Context) sdk.Coins

GetModuleBalance Returns full balance of the module

func (Keeper) GetModuleLockedCoins

func (k Keeper) GetModuleLockedCoins(ctx sdk.Context) sdk.Coins

GetModuleLockedCoins Returns locked balance of the module

func (Keeper) GetPeriodLocks

func (k Keeper) GetPeriodLocks(ctx sdk.Context) ([]types.PeriodLock, error)

GetPeriodLocks Returns the period locks on pool

func (Keeper) GetPeriodLocksAccumulation

func (k Keeper) GetPeriodLocksAccumulation(ctx sdk.Context, query types.QueryCondition) sdk.Int

GetPeriodLocksByDuration returns the total amount of query.Denom tokens locked for longer than query.Duration

func (Keeper) GetSyntheticLockup

func (k Keeper) GetSyntheticLockup(ctx sdk.Context, lockID uint64, synthdenom string) (*types.SyntheticLock, error)

func (Keeper) GetUnderlyingLock

func (k Keeper) GetUnderlyingLock(ctx sdk.Context, synthlock types.SyntheticLock) types.PeriodLock

func (Keeper) HasAnySyntheticLockups

func (k Keeper) HasAnySyntheticLockups(ctx sdk.Context, lockID uint64) bool

func (Keeper) Lock

func (k Keeper) Lock(ctx sdk.Context, lock types.PeriodLock) error

Lock is a utility to lock coins into module account

func (Keeper) LockIterator

func (k Keeper) LockIterator(ctx sdk.Context, isUnlocking bool) sdk.Iterator

LockIterator returns the iterator used for getting all locks

func (Keeper) LockIteratorAfterTime

func (k Keeper) LockIteratorAfterTime(ctx sdk.Context, time time.Time) sdk.Iterator

LockIteratorAfterTime returns the iterator to get locked coins

func (Keeper) LockIteratorAfterTimeDenom

func (k Keeper) LockIteratorAfterTimeDenom(ctx sdk.Context, denom string, time time.Time) sdk.Iterator

LockIteratorAfterTimeDenom returns the iterator to get locked coins by denom

func (Keeper) LockIteratorBeforeTime

func (k Keeper) LockIteratorBeforeTime(ctx sdk.Context, time time.Time) sdk.Iterator

LockIteratorBeforeTime returns the iterator to get unlockable coins

func (Keeper) LockIteratorBeforeTimeDenom

func (k Keeper) LockIteratorBeforeTimeDenom(ctx sdk.Context, denom string, time time.Time) sdk.Iterator

LockIteratorBeforeTimeDenom returns the iterator to get unlockable coins by denom

func (Keeper) LockIteratorDenom

func (k Keeper) LockIteratorDenom(ctx sdk.Context, isUnlocking bool, denom string) sdk.Iterator

LockIteratorDenom returns the iterator used for getting all locks by denom

func (Keeper) LockIteratorLongerThanDurationDenom

func (k Keeper) LockIteratorLongerThanDurationDenom(ctx sdk.Context, isUnlocking bool, denom string, duration time.Duration) sdk.Iterator

LockIteratorLongerThanDurationDenom returns the iterator to get locked locks by denom

func (Keeper) LockTokens

func (k Keeper) LockTokens(ctx sdk.Context, owner sdk.AccAddress, coins sdk.Coins, duration time.Duration) (types.PeriodLock, error)

LockTokens lock tokens from an account for specified duration

func (Keeper) LockedByID

func (k Keeper) LockedByID(goCtx context.Context, req *types.LockedRequest) (*types.LockedResponse, error)

LockedByID Returns lock by lock ID

func (Keeper) LockedDenom

func (Keeper) Logger

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

Logger returns a logger instance

func (Keeper) ModuleBalance

ModuleBalance Return full balance of the module

func (Keeper) ModuleLockedAmount

ModuleLockedAmount Returns locked balance of the module

func (Keeper) ResetAllLocks

func (k Keeper) ResetAllLocks(ctx sdk.Context, locks []types.PeriodLock) error

ResetAllLocks takes a set of locks, and initializes state to be storing them all correctly. This utilizes batch optimizations to improve efficiency, as this becomes a bottleneck at chain initialization & upgrades.

func (Keeper) ResetAllSyntheticLocks

func (k Keeper) ResetAllSyntheticLocks(ctx sdk.Context, syntheticLocks []types.SyntheticLock) error

func (*Keeper) SetHooks

func (k *Keeper) SetHooks(lh types.LockupHooks) *Keeper

Set the lockup hooks

func (Keeper) SetLastLockID

func (k Keeper) SetLastLockID(ctx sdk.Context, ID uint64)

SetLastLockID save ID used by last lock

func (Keeper) SlashTokensFromLockByID

func (k Keeper) SlashTokensFromLockByID(ctx sdk.Context, lockID uint64, coins sdk.Coins) (*types.PeriodLock, error)

SlashTokensFromLockByID send slashed tokens to community pool - called by superfluid module only

func (Keeper) SyntheticLockupsByLockupID

SyntheticLockupsByLockupID returns synthetic lockups by native lockup id

func (Keeper) Unlock

func (k Keeper) Unlock(ctx sdk.Context, lock types.PeriodLock) error

Unlock is a utility to unlock coins from module account

func (Keeper) WithdrawAllMaturedLocks

func (k Keeper) WithdrawAllMaturedLocks(ctx sdk.Context)

WithdrawAllMaturedLocks withdraws every lock thats in the process of unlocking, and has finished unlocking by the current block time.

Jump to

Keyboard shortcuts

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