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
Returns:
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
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
Returns:
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