AlgebraVirtualPoolBase
Abstract base contract for Algebra virtual pools
Modifiers
onlyFromPool
modifier onlyFromPool()
internal
only pool (or FarmingCenter as "proxy") can call
onlyFarming
modifier onlyFarming()
internal
Variables
address farmingCenterAddress immutable
address farmingAddress immutable
address pool immutable
mapping(int24 => struct TickManager.Tick) ticks
uint128 currentLiquidity
int24 globalTick
uint32 timeOutside
uint160 globalSecondsPerLiquidityCumulative
uint32 prevTimestamp
bool deactivated
Functions
getInnerSecondsPerLiquidity
function getInnerSecondsPerLiquidity(int24 bottomTick, int24 topTick) external view returns (uint160 innerSecondsSpentPerLiquidity)
view external
get seconds per liquidity inside range
bottomTick
int24
topTick
int24
Returns:
innerSecondsSpentPerLiquidity
uint160
cross
function cross(int24 nextTick, bool zeroToOne) external
external
Developer note: This function is called by the main pool when an initialized tick is crossed there. If the tick is also initialized in a virtual pool it should be crossed too
nextTick
int24
The crossed tick
zeroToOne
bool
The direction
increaseCumulative
function increaseCumulative(uint32 currentTimestamp) external returns (enum IAlgebraVirtualPool.Status res)
external
Developer note: This function is called from the main pool before every swap To increase seconds per liquidity cumulative considering previous timestamp and liquidity. The liquidity is stored in a virtual pool
currentTimestamp
uint32
The timestamp of the current swap
Returns:
res
enum IAlgebraVirtualPool.Status
Status The status of virtual pool
deactivate
function deactivate() external
external
This function is used to deactivate virtual pool. Deactivated virtual pool will return Status.NOT_EXIST in increaseCumulative function
applyLiquidityDeltaToPosition
function applyLiquidityDeltaToPosition(uint32 currentTimestamp, int24 bottomTick, int24 topTick, int128 liquidityDelta, int24 currentTick) external
external
Developer note: This function is called when anyone farms their liquidity. The position in a virtual pool should be changed accordingly
currentTimestamp
uint32
The timestamp of current block
bottomTick
int24
The bottom tick of a position
topTick
int24
The top tick of a position
liquidityDelta
int128
The amount of liquidity in a position
currentTick
int24
The current tick in the main pool