keeper

package
v5.0.2 Latest Latest
Warning

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

Go to latest
Published: Nov 23, 2024 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetInOutTokens

func GetInOutTokens(tokenIn, tokenA, tokenB string) (_, tokenOut string)

func GetPoolMetadataIDBytes

func GetPoolMetadataIDBytes(id uint64) []byte

GetPoolMetadataIDBytes returns the byte representation of the ID

func NewLimitOrderExpiration

func NewLimitOrderExpiration(tranche *types.LimitOrderTranche) *types.LimitOrderExpiration

Creates a new LimitOrderExpiration struct based on a LimitOrderTranche

func NewLimitOrderTranche

func NewLimitOrderTranche(
	limitOrderTrancheKey *types.LimitOrderTrancheKey,
	goodTil *time.Time,
) (*types.LimitOrderTranche, error)

func NewMsgServerImpl

func NewMsgServerImpl(keeper Keeper) types.MsgServer

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

func NewTrancheKey

func NewTrancheKey(ctx sdk.Context) string

func NormalizeAllTickIndexes

func NormalizeAllTickIndexes(takerDenom, token0 string, tickIndexes []int64) []int64

func SortAmounts

func SortAmounts(tokenA, token0 string, amountsA, amountsB []math.Int) ([]math.Int, []math.Int)

Types

type Keeper

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

func NewKeeper

func NewKeeper(
	cdc codec.BinaryCodec,
	storeKey,
	memKey storetypes.StoreKey,
	tKey storetypes.StoreKey,
	bankKeeper types.BankKeeper,
	authority string,
) *Keeper

func (Keeper) AssertCanPlaceJIT

func (k Keeper) AssertCanPlaceJIT(ctx sdk.Context) error

func (Keeper) BurnShares

func (k Keeper) BurnShares(
	ctx sdk.Context,
	addr sdk.AccAddress,
	coins sdk.Coins,
) error

func (Keeper) CalcWithdrawableShares

func (k Keeper) CalcWithdrawableShares(ctx sdk.Context, trancheUser types.LimitOrderTrancheUser) (amount math.Int, err error)

func (Keeper) CalulateMultiHopSwap

func (k Keeper) CalulateMultiHopSwap(
	ctx sdk.Context,
	amountIn math.Int,
	routes []*types.MultiHopRoute,
	exitLimitPrice math_utils.PrecDec,
	pickBestRoute bool,
) (bestRoute MultiHopRouteOutput, initialInCoin sdk.Coin, err error)

CalulateMultiHopSwap handles the core logic for MultiHopSwap -- simulating swap operations across all routes (when applicable) and picking the best route to execute. It uses a cache and does not modify state.

func (Keeper) CancelLimitOrderCore

func (k Keeper) CancelLimitOrderCore(
	goCtx context.Context,
	trancheKey string,
	callerAddr sdk.AccAddress,
) (makerCoinOut, takerCoinOut sdk.Coin, err error)

CancelLimitOrderCore handles the logic for MsgCancelLimitOrder including bank operations and event emissions.

func (Keeper) DepositCore

func (k Keeper) DepositCore(
	goCtx context.Context,
	pairID *types.PairID,
	callerAddr sdk.AccAddress,
	receiverAddr sdk.AccAddress,
	amounts0 []math.Int,
	amounts1 []math.Int,
	tickIndices []int64,
	fees []uint64,
	options []*types.DepositOptions,
) (amounts0Deposit, amounts1Deposit []math.Int, sharesIssued sdk.Coins, failedDeposits []*types.FailedDeposit, err error)

DepositCore handles core logic for MsgDeposit including bank operations and event emissions

func (Keeper) EstimateMultiHopSwap

TODO: This doesn't run ValidateBasic() checks.

func (Keeper) EstimatePlaceLimitOrder

TODO: This doesn't run ValidateBasic() checks.

func (Keeper) ExecuteCancelLimitOrder

func (k Keeper) ExecuteCancelLimitOrder(
	ctx sdk.Context,
	trancheKey string,
	callerAddr sdk.AccAddress,
) (makerCoinOut, takerCoinOut sdk.Coin, error error)

ExecuteCancelLimitOrder handles the core logic for CancelLimitOrder -- removing remaining TokenIn from the LimitOrderTranche and returning it to the user, updating the number of canceled shares on the LimitOrderTrancheUser. IT DOES NOT PERFORM ANY BANKING OPERATIONS

func (Keeper) ExecuteDeposit

func (k Keeper) ExecuteDeposit(
	ctx sdk.Context,
	pairID *types.PairID,
	callerAddr sdk.AccAddress,
	receiverAddr sdk.AccAddress,
	amounts0 []math.Int,
	amounts1 []math.Int,
	tickIndices []int64,
	fees []uint64,
	options []*types.DepositOptions) (
	amounts0Deposited, amounts1Deposited []math.Int,
	totalAmountReserve0, totalAmountReserve1 math.Int,
	sharesIssued sdk.Coins,
	events sdk.Events,
	failedDeposits []*types.FailedDeposit,
	err error,
)

ExecuteDeposit handles core logic for deposits -- checking and initializing data structures (tick, pair), calculating shares based on amount deposited. IT DOES NOT PERFORM ANY BANKING OPERATIONS.

func (Keeper) ExecutePlaceLimitOrder

func (k Keeper) ExecutePlaceLimitOrder(
	ctx sdk.Context,
	takerTradePairID *types.TradePairID,
	amountIn math.Int,
	tickIndexInToOut int64,
	orderType types.LimitOrderType,
	goodTil *time.Time,
	maxAmountOut *math.Int,
	minAvgSellPriceP *math_utils.PrecDec,
	receiverAddr sdk.AccAddress,
) (
	trancheKey string,
	totalIn math.Int,
	swapInCoin, swapOutCoin sdk.Coin,
	sharesIssued math.Int,
	minAvgSellPrice math_utils.PrecDec,
	err error,
)

ExecutePlaceLimitOrder handles the core logic for PlaceLimitOrder -- performing taker a swap and (when applicable) adding a maker limit order to the orderbook. IT DOES NOT PERFORM ANY BANKING OPERATIONS

func (Keeper) ExecuteWithdraw

func (k Keeper) ExecuteWithdraw(
	ctx sdk.Context,
	pairID *types.PairID,
	callerAddr sdk.AccAddress,
	receiverAddr sdk.AccAddress,
	sharesToRemoveList []math.Int,
	tickIndicesNormalized []int64,
	fees []uint64,
) (totalReserves0ToRemove, totalReserves1ToRemove math.Int, coinsToBurn sdk.Coins, events sdk.Events, err error)

ExecuteWithdraw handles the core Withdraw logic including calculating and withdrawing reserve0,reserve1 from a specified tick given a specified number of shares to remove. Calculates the amount of reserve0, reserve1 to withdraw based on the percentage of the desired number of shares to remove compared to the total number of shares at the given tick. IT DOES NOT PERFORM ANY BANKING OPERATIONS.

func (Keeper) ExecuteWithdrawFilledLimitOrder

func (k Keeper) ExecuteWithdrawFilledLimitOrder(
	ctx sdk.Context,
	trancheKey string,
	callerAddr sdk.AccAddress,
) (takerCoinOut, makerCoinOut sdk.Coin, err error)

ExecuteWithdrawFilledLimitOrder handles the for logic for WithdrawFilledLimitOrder -- calculates and sends filled liquidity from module to user, returns any remaining TokenIn from inactive limit orders, and updates the LimitOrderTranche and LimitOrderTrancheUser. IT DOES NOT PERFORM ANY BANKING OPERATIONS

func (Keeper) FindLimitOrderTranche

func (k Keeper) FindLimitOrderTranche(
	ctx sdk.Context,
	limitOrderTrancheKey *types.LimitOrderTrancheKey,
) (val *types.LimitOrderTranche, fromFilled, found bool)

func (Keeper) GetAllDepositsForAddress

func (k Keeper) GetAllDepositsForAddress(ctx sdk.Context, addr sdk.AccAddress) []*types.DepositRecord

func (Keeper) GetAllInactiveLimitOrderTranche

func (k Keeper) GetAllInactiveLimitOrderTranche(ctx sdk.Context) (list []*types.LimitOrderTranche)

GetAllInactiveLimitOrderTranche returns all inactiveLimitOrderTranche

func (Keeper) GetAllLimitOrderExpiration

func (k Keeper) GetAllLimitOrderExpiration(ctx sdk.Context) (list []*types.LimitOrderExpiration)

GetAllLimitOrderExpiration returns all goodTilRecord

func (Keeper) GetAllLimitOrderTrancheAtIndex

func (k Keeper) GetAllLimitOrderTrancheAtIndex(
	sdkCtx sdk.Context,
	tradePairID *types.TradePairID,
	tickIndexTakerToMaker int64,
) (trancheList []types.LimitOrderTranche)

func (Keeper) GetAllLimitOrderTrancheUser

func (k Keeper) GetAllLimitOrderTrancheUser(ctx sdk.Context) (list []*types.LimitOrderTrancheUser)

GetAllLimitOrderTrancheUser returns all LimitOrderTrancheUser

func (Keeper) GetAllLimitOrderTrancheUserForAddress

func (k Keeper) GetAllLimitOrderTrancheUserForAddress(
	ctx sdk.Context,
	address sdk.AccAddress,
) (list []*types.LimitOrderTrancheUser)

func (Keeper) GetAllPoolMetadata

func (k Keeper) GetAllPoolMetadata(ctx sdk.Context) (list []types.PoolMetadata)

GetAllPoolMetadata returns all poolMetadata

func (Keeper) GetAllPoolShareholders

func (k Keeper) GetAllPoolShareholders(ctx sdk.Context) map[uint64][]types.PoolShareholder

func (Keeper) GetAllTickLiquidity

func (k Keeper) GetAllTickLiquidity(ctx sdk.Context) (list []*types.TickLiquidity)

GetAllTickLiquidity returns all tickLiquidity

func (Keeper) GetAuthority

func (k Keeper) GetAuthority() string

func (Keeper) GetCurrLiq

func (k Keeper) GetCurrLiq(ctx sdk.Context, tradePairID *types.TradePairID) *types.TickLiquidity

func (Keeper) GetCurrPrice

func (k Keeper) GetCurrPrice(ctx sdk.Context, tradePairID *types.TradePairID) (math_utils.PrecDec, bool)

func (Keeper) GetCurrTickIndexTakerToMaker

func (k Keeper) GetCurrTickIndexTakerToMaker(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
) (int64, bool)

Returns a takerToMaker tick index

func (Keeper) GetCurrTickIndexTakerToMakerNormalized

func (k Keeper) GetCurrTickIndexTakerToMakerNormalized(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
) (int64, bool)

Returns a takerToMaker tick index

func (Keeper) GetFillTranche

func (k Keeper) GetFillTranche(
	sdkCtx sdk.Context,
	tradePairID *types.TradePairID,
	tickIndexTakerToMaker int64,
) (*types.LimitOrderTranche, bool)

func (Keeper) GetGTCPlaceTranche

func (k Keeper) GetGTCPlaceTranche(
	sdkCtx sdk.Context,
	tradePairID *types.TradePairID,
	tickIndexTakerToMaker int64,
) *types.LimitOrderTranche

func (Keeper) GetGoodTilPurgeAllowance

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

func (Keeper) GetInactiveLimitOrderTranche

func (k Keeper) GetInactiveLimitOrderTranche(
	ctx sdk.Context,
	limitOrderTrancheKey *types.LimitOrderTrancheKey,
) (val *types.LimitOrderTranche, found bool)

GetInactiveLimitOrderTranche returns a inactiveLimitOrderTranche from its index

func (Keeper) GetJITsInBlockCount

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

GetJITsInBlockCount gets the total number of JIT LimitOrders placed in a block

func (Keeper) GetLimitOrderExpiration

func (k Keeper) GetLimitOrderExpiration(
	ctx sdk.Context,
	goodTilDate time.Time,
	trancheRef []byte,
) (val *types.LimitOrderExpiration, found bool)

GetLimitOrderExpiration returns a goodTilRecord from its index

func (Keeper) GetLimitOrderTranche

func (k Keeper) GetLimitOrderTranche(
	ctx sdk.Context,
	limitOrderTrancheKey *types.LimitOrderTrancheKey,
) (tranche *types.LimitOrderTranche)

func (Keeper) GetLimitOrderTrancheByKey

func (k Keeper) GetLimitOrderTrancheByKey(
	ctx sdk.Context,
	key []byte,
) (tranche *types.LimitOrderTranche, found bool)

func (Keeper) GetLimitOrderTrancheUser

func (k Keeper) GetLimitOrderTrancheUser(
	ctx sdk.Context,
	address string,
	trancheKey string,
) (val *types.LimitOrderTrancheUser, found bool)

GetLimitOrderTrancheUser returns a LimitOrderTrancheUser from its index

func (Keeper) GetMaxJITsPerBlock

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

func (Keeper) GetNextPoolID

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

GetNextPoolId get ID for the next pool to be created

func (Keeper) GetOrInitLimitOrderTrancheUser

func (k Keeper) GetOrInitLimitOrderTrancheUser(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
	tickIndex int64,
	trancheKey string,
	orderType types.LimitOrderType,
	receiver string,
) *types.LimitOrderTrancheUser

func (Keeper) GetOrInitPlaceTranche

func (k Keeper) GetOrInitPlaceTranche(ctx sdk.Context,
	tradePairID *types.TradePairID,
	tickIndexTakerToMaker int64,
	goodTil *time.Time,
	orderType types.LimitOrderType,
) (placeTranche *types.LimitOrderTranche, err error)

func (Keeper) GetOrInitPool

func (k Keeper) GetOrInitPool(
	ctx sdk.Context,
	pairID *types.PairID,
	centerTickIndexNormalized int64,
	fee uint64,
) (*types.Pool, error)

func (Keeper) GetParams

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

GetParams get all parameters as types.Params

func (Keeper) GetPool

func (k Keeper) GetPool(
	ctx sdk.Context,
	pairID *types.PairID,
	centerTickIndexNormalized int64,
	fee uint64,
) (pool *types.Pool, found bool)

func (Keeper) GetPoolByID

func (k Keeper) GetPoolByID(ctx sdk.Context, poolID uint64) (pool *types.Pool, found bool)

func (Keeper) GetPoolCount

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

GetPoolCount get the total number of pools

func (Keeper) GetPoolIDByParams

func (k Keeper) GetPoolIDByParams(
	ctx sdk.Context,
	pairID *types.PairID,
	centerTickIndexNormalized int64,
	fee uint64,
) (id uint64, found bool)

func (Keeper) GetPoolMetadata

func (k Keeper) GetPoolMetadata(ctx sdk.Context, id uint64) (val types.PoolMetadata, found bool)

GetPoolMetadata returns a poolMetadata from its id

func (Keeper) GetPoolMetadataByDenom

func (k Keeper) GetPoolMetadataByDenom(
	ctx sdk.Context,
	denom string,
) (pm types.PoolMetadata, err error)

func (Keeper) GetPoolReserves

func (k Keeper) GetPoolReserves(
	ctx sdk.Context,
	poolReservesID *types.PoolReservesKey,
) (pool *types.PoolReserves, found bool)

func (Keeper) GetValidFees

func (k Keeper) GetValidFees(ctx sdk.Context) []uint64

func (Keeper) HopsToRouteData

func (k Keeper) HopsToRouteData(
	ctx sdk.Context,
	hops []string,
) ([]MultihopStep, error)

func (Keeper) IncrementJITsInBlock

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

func (Keeper) InitPool

func (k Keeper) InitPool(
	ctx sdk.Context,
	pairID *types.PairID,
	centerTickIndexNormalized int64,
	fee uint64,
) (pool *types.Pool, err error)

func (Keeper) IsBehindEnemyLines

func (k Keeper) IsBehindEnemyLines(ctx sdk.Context, tradePairID *types.TradePairID, tickIndex int64) bool

func (Keeper) IsPoolBehindEnemyLines

func (k Keeper) IsPoolBehindEnemyLines(ctx sdk.Context, pairID *types.PairID, tickIndex int64, fee uint64, amount0, amount1 math.Int) bool

func (Keeper) LimitOrderTranche

Returns a specific limit order tranche either from the tickLiquidity index or from the FillLimitOrderTranche index

func (Keeper) LimitOrderTrancheAll

Returns all ACTIVE limit order tranches for a given pairID/tokenIn combination Does NOT return inactiveLimitOrderTranches

func (Keeper) Logger

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

func (Keeper) MakerLimitOrderSwap

func (k Keeper) MakerLimitOrderSwap(
	ctx sdk.Context,
	tradePairID types.TradePairID,
	amountIn math.Int,
	limitPrice math_utils.PrecDec,
	minAvgSellPrice math_utils.PrecDec,
) (totalInCoin, totalOutCoin sdk.Coin, filled bool, err error)

Wrapper for maker LimitOrders Ensures the swap portion + maker portion of the limit order will have an output >= the limit price output

func (Keeper) MintShares

func (k Keeper) MintShares(ctx sdk.Context, addr sdk.AccAddress, sharesCoins sdk.Coins) error

func (Keeper) MultiHopSwapCore

func (k Keeper) MultiHopSwapCore(
	goCtx context.Context,
	amountIn math.Int,
	routes []*types.MultiHopRoute,
	exitLimitPrice math_utils.PrecDec,
	pickBestRoute bool,
	callerAddr sdk.AccAddress,
	receiverAddr sdk.AccAddress,
) (coinOut sdk.Coin, route []string, dust sdk.Coins, err error)

MultiHopSwapCore handles logic for MsgMultihopSwap including bank operations and event emissions.

func (Keeper) MultihopStep

func (k Keeper) MultihopStep(
	bCtx *types.BranchableCache,
	step MultihopStep,
	inCoin sdk.Coin,
	stepCache map[multihopCacheKey]StepResult,
) (sdk.Coin, sdk.Coin, *types.BranchableCache, error)

func (Keeper) NewLiquidityIterator

func (k Keeper) NewLiquidityIterator(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
) *LiquidityIterator

func (Keeper) NewTickIterator

func (k Keeper) NewTickIterator(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
) TickIterator

func (Keeper) Params

Returns dex params to the caller

func (Keeper) PlaceLimitOrderCore

func (k Keeper) PlaceLimitOrderCore(
	goCtx context.Context,
	tokenIn string,
	tokenOut string,
	amountIn math.Int,
	tickIndexInToOut int64,
	orderType types.LimitOrderType,
	goodTil *time.Time,
	maxAmountOut *math.Int,
	minAvgSellPriceP *math_utils.PrecDec,
	callerAddr sdk.AccAddress,
	receiverAddr sdk.AccAddress,
) (trancheKey string, totalInCoin, swapInCoin, swapOutCoin sdk.Coin, err error)

PlaceLimitOrderCore handles the logic for MsgPlaceLimitOrder including bank operations and event emissions.

func (Keeper) Pool

Returns the pool that was requested by PairId, TickIndex and Fee (or errors)

func (Keeper) PoolByID

func (Keeper) PurgeExpiredLimitOrders

func (k Keeper) PurgeExpiredLimitOrders(ctx sdk.Context, curTime time.Time)

func (Keeper) RemoveInactiveLimitOrderTranche

func (k Keeper) RemoveInactiveLimitOrderTranche(
	ctx sdk.Context,
	limitOrderTrancheKey *types.LimitOrderTrancheKey,
)

RemoveInactiveLimitOrderTranche removes a inactiveLimitOrderTranche from the store

func (Keeper) RemoveLimitOrderExpiration

func (k Keeper) RemoveLimitOrderExpiration(
	ctx sdk.Context,
	goodTilDate time.Time,
	trancheRef []byte,
)

RemoveLimitOrderExpiration removes a goodTilRecord from the store

func (Keeper) RemoveLimitOrderExpirationByKey

func (k Keeper) RemoveLimitOrderExpirationByKey(ctx sdk.Context, key []byte)

func (Keeper) RemoveLimitOrderTranche

func (k Keeper) RemoveLimitOrderTranche(ctx sdk.Context, trancheKey *types.LimitOrderTrancheKey)

func (Keeper) RemoveLimitOrderTrancheUser

func (k Keeper) RemoveLimitOrderTrancheUser(ctx sdk.Context, trancheUser *types.LimitOrderTrancheUser)

func (Keeper) RemoveLimitOrderTrancheUserByKey

func (k Keeper) RemoveLimitOrderTrancheUserByKey(
	ctx sdk.Context,
	trancheKey string,
	address string,
)

RemoveLimitOrderTrancheUserByKey removes a LimitOrderTrancheUser from the store

func (Keeper) RemovePoolMetadata

func (k Keeper) RemovePoolMetadata(ctx sdk.Context, id uint64)

RemovePoolMetadata removes a poolMetadata from the store

func (Keeper) RemovePoolReserves

func (k Keeper) RemovePoolReserves(ctx sdk.Context, poolReservesID *types.PoolReservesKey)

RemovePoolReserves removes a tickLiquidity from the store

func (Keeper) RunMultihopRoute

func (k Keeper) RunMultihopRoute(
	ctx sdk.Context,
	route types.MultiHopRoute,
	initialInCoin sdk.Coin,
	exitLimitPrice math_utils.PrecDec,
	stepCache map[multihopCacheKey]StepResult,
) (sdk.Coins, sdk.Coin, func(), error)

func (Keeper) SaveLiquidity

func (k Keeper) SaveLiquidity(sdkCtx sdk.Context, liquidityI types.Liquidity)

func (Keeper) SetInactiveLimitOrderTranche

func (k Keeper) SetInactiveLimitOrderTranche(ctx sdk.Context, limitOrderTranche *types.LimitOrderTranche)

SetInactiveLimitOrderTranche set a specific inactiveLimitOrderTranche in the store from its index

func (Keeper) SetJITsInBlockCount

func (k Keeper) SetJITsInBlockCount(ctx sdk.Context, count uint64)

SetJITsInBlockCount sets the total number of JIT LimitOrders placed in a block

func (Keeper) SetLimitOrderExpiration

func (k Keeper) SetLimitOrderExpiration(
	ctx sdk.Context,
	goodTilRecord *types.LimitOrderExpiration,
)

SetLimitOrderExpiration set a specific goodTilRecord in the store from its index

func (Keeper) SetLimitOrderTranche

func (k Keeper) SetLimitOrderTranche(ctx sdk.Context, tranche *types.LimitOrderTranche)

func (Keeper) SetLimitOrderTrancheUser

func (k Keeper) SetLimitOrderTrancheUser(ctx sdk.Context, limitOrderTrancheUser *types.LimitOrderTrancheUser)

SetLimitOrderTrancheUser set a specific LimitOrderTrancheUser in the store from its index

func (Keeper) SetParams

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

SetParams set the params

func (Keeper) SetPoolCount

func (k Keeper) SetPoolCount(ctx sdk.Context, count uint64)

SetPoolCount set the total number of pools

func (Keeper) SetPoolMetadata

func (k Keeper) SetPoolMetadata(ctx sdk.Context, poolMetadata types.PoolMetadata)

SetPoolMetadata set a specific poolMetadata in the store

func (Keeper) SetPoolReserves

func (k Keeper) SetPoolReserves(ctx sdk.Context, poolReserves *types.PoolReserves)

func (Keeper) StorePoolIDRef

func (k Keeper) StorePoolIDRef(
	ctx sdk.Context,
	poolID uint64,
	pairID *types.PairID,
	centerTickIndexNormalized int64,
	fee uint64,
)

func (Keeper) Swap

func (k Keeper) Swap(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
	maxAmountTakerDenom math.Int,
	maxAmountMakerDenom *math.Int,
	limitPrice *math_utils.PrecDec,
) (totalTakerCoin, totalMakerCoin sdk.Coin, orderFilled bool, err error)

func (Keeper) SwapFullAmountIn

func (k Keeper) SwapFullAmountIn(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
	amountIn math.Int,
) (dust, totalOut sdk.Coin, err error)

SwapFullAmountIn swaps full amount of given `amountIn` to the `tradePairID` taker denom. NOTE: SwapFullAmountIn does not ensure that 100% of amountIn is used. Due to rounding it is possible that a dust amount of AmountIn remains unswapped. It is the caller's responsibility to handle this appropriately. It returns remaining dust as a first argument.

func (Keeper) SwapWithCache

func (k Keeper) SwapWithCache(
	ctx sdk.Context,
	tradePairID *types.TradePairID,
	maxAmountIn math.Int,
	maxAmountOut *math.Int,
	limitPrice *math_utils.PrecDec,
) (totalIn, totalOut sdk.Coin, orderFilled bool, err error)

func (Keeper) TakerLimitOrderSwap

func (k Keeper) TakerLimitOrderSwap(
	ctx sdk.Context,
	tradePairID types.TradePairID,
	amountIn math.Int,
	maxAmountOut *math.Int,
	limitPrice math_utils.PrecDec,
	minAvgSellPrice math_utils.PrecDec,
	orderType types.LimitOrderType,
) (totalInCoin, totalOutCoin sdk.Coin, err error)

Wrapper for taker LimitOrders Ensures Fok behavior is correct and that the output >= limit price output

func (Keeper) UpdateInactiveTranche

func (k Keeper) UpdateInactiveTranche(sdkCtx sdk.Context, tranche *types.LimitOrderTranche)

UpdateInactiveTranche handles the logic for all updates to InactiveLimitOrderTranches It will delete an InactiveTranche if there is no remaining MakerReserves or TakerReserves

func (Keeper) UpdatePool

func (k Keeper) UpdatePool(ctx sdk.Context, pool *types.Pool)

UpdatePool handles the logic for all updates to Pools in the KV Store. It provides a convenient way to save both sides of the pool reserves.

func (Keeper) UpdatePoolReserves

func (k Keeper) UpdatePoolReserves(ctx sdk.Context, reserves *types.PoolReserves)

UpdatePoolReserves handles the logic for all updates to PoolReserves in the KV Store. NOTE: This method should always be called even if not all logic branches are applicable. It avoids unnecessary repetition of logic and provides a single place to attach update event handlers.

func (Keeper) UpdateTranche

func (k Keeper) UpdateTranche(ctx sdk.Context, tranche *types.LimitOrderTranche)

UpdateTranche handles the logic for all updates to active LimitOrderTranches in the KV Store. NOTE: This method should always be called even if not all logic branches are applicable. It avoids unnecessary repetition of logic and provides a single place to attach update event handlers.

func (Keeper) UpdateTrancheUser

func (k Keeper) UpdateTrancheUser(ctx sdk.Context, trancheUser *types.LimitOrderTrancheUser)

UpdateTrancheUser handles the logic for all updates to LimitOrderTrancheUsers in the KV Store. NOTE: This method should always be called even if not all logic branches are applicable. It avoids unnecessary repetition of logic and provides a single place to attach update event handlers.

func (Keeper) ValidateFee

func (k Keeper) ValidateFee(ctx sdk.Context, fee uint64) error

func (Keeper) WithdrawCore

func (k Keeper) WithdrawCore(
	goCtx context.Context,
	pairID *types.PairID,
	callerAddr sdk.AccAddress,
	receiverAddr sdk.AccAddress,
	sharesToRemoveList []math.Int,
	tickIndicesNormalized []int64,
	fees []uint64,
) (reserves0ToRemoved, reserves1ToRemoved math.Int, sharesBurned sdk.Coins, err error)

WithdrawCore handles logic for MsgWithdrawal including bank operations and event emissions.

func (Keeper) WithdrawFilledLimitOrderCore

func (k Keeper) WithdrawFilledLimitOrderCore(
	goCtx context.Context,
	trancheKey string,
	callerAddr sdk.AccAddress,
) (takerCoinOut, makerCoinOut sdk.Coin, err error)

WithdrawFilledLimitOrderCore handles MsgWithdrawFilledLimitOrder including bank operations and event emissions.

type LiquidityIterator

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

func (*LiquidityIterator) Close

func (s *LiquidityIterator) Close()

func (*LiquidityIterator) Next

func (s *LiquidityIterator) Next() types.Liquidity

func (*LiquidityIterator) WrapTickLiquidity

func (s *LiquidityIterator) WrapTickLiquidity(tick types.TickLiquidity) types.Liquidity

type Migrator

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

Migrator is a struct for handling in-place store migrations.

func NewMigrator

func NewMigrator(keeper Keeper) Migrator

NewMigrator returns a new Migrator.

func (Migrator) Migrate2to3

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

Migrate2to3 migrates from version 2 to 3.

func (Migrator) Migrate3to4

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

Migrate3to4 migrates from version 3 to 4.

func (Migrator) Migrate4to5

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

Migrate4to5 migrates from version 4 to 5.

type MsgServer

type MsgServer struct {
	Keeper
}

func (MsgServer) AssertNotPaused

func (k MsgServer) AssertNotPaused(goCtx context.Context) error

func (MsgServer) CancelLimitOrder

func (MsgServer) Deposit

func (k MsgServer) Deposit(
	goCtx context.Context,
	msg *types.MsgDeposit,
) (*types.MsgDepositResponse, error)

func (MsgServer) MultiHopSwap

func (k MsgServer) MultiHopSwap(
	goCtx context.Context,
	msg *types.MsgMultiHopSwap,
) (*types.MsgMultiHopSwapResponse, error)

func (MsgServer) PlaceLimitOrder

func (MsgServer) UpdateParams

func (MsgServer) Withdrawal

func (k MsgServer) Withdrawal(
	goCtx context.Context,
	msg *types.MsgWithdrawal,
) (*types.MsgWithdrawalResponse, error)

type MultiHopRouteOutput

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

type MultihopStep

type MultihopStep struct {
	RemainingBestPrice math_utils.PrecDec
	// contains filtered or unexported fields
}

type StepResult

type StepResult struct {
	Ctx     *types.BranchableCache
	CoinOut sdk.Coin
	Dust    sdk.Coin
	Err     error
}

type TickIterator

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

func (TickIterator) Close

func (ti TickIterator) Close() error

func (TickIterator) Next

func (ti TickIterator) Next()

func (TickIterator) Valid

func (ti TickIterator) Valid() bool

func (TickIterator) Value

func (ti TickIterator) Value() (tick types.TickLiquidity)

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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