It is an AMM Pool contract implemented with concentrated liquidity, and provides low-level methods for liquidity supply / removal / fee receipt / swap.
Concentrated Liquidity Pool is a core contract among Pangea's Exchange Modules, and performs 6 major functions.
MINT : Creates position
BURN : Burns position
SWAP : Swaps in pool
COLLECT : Receives accrued swap fee
FLASH : Performs a flash loan
DEPOSIT_AIRDROP : Deposits airdrop reward (deposited airdrop rewards are distributed linearly for 1 week)
The Concentrated Liquidity Pool is designed as a Non-Upgradable Contract and consists of low-level methods because it directly handles the user's assets.
It is recommended to call the ConcentratedLiquidityPool method through the high level contract ConcentratedLiquidityPoolManager and poolRouter rather than directly calling the ConcentratedLiquidityPool method.
Methods
burn
Burns LP tokens - should be called via the Concentrated Liquidity pool manager contract.
collect
Collects tokens owed to a position
collectProtocolFee
factory
Returns the address of the factory contract
feeGrowthGlobal0
The fee growth of token0 collected per unit of liquidity for the entire life of the pool
feeGrowthGlobal1
The fee growth of token1 collected per unit of liquidity for the entire life of the pool
flash
Receives token0 or token1 and pays it back with fee
getAssets
Returns the list of the tokens of the pool, sorted by address
getImmutables
getPriceAndNearestTicks
Returns the price and nearestTick
getReserves
Returns the reserve of token0 and token1
getSecondsGrowthAndLastObservation
Returns the information about seconds growth global and the timestamp of the observation
liquidity
Returns the current in range liquidity available to the pool
mint
nearestTick
Returns the tick that is just below the current price.
positions
Returns the information about the position
price
Sqrt of price aka. √(token1/token0), multiplied by 2^96.
rangeFeeGrowth
Returns the fee growth of token0 & token1 inside the given price range
swap
Swaps one token for another. The router must prefund this contract and ensure there isn't too much slippage.
swapFee
1000 corresponds to 0.1% fee. Fee is measured in pips.
tickSpacing
Returns the tick spacing of the pool.
Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be created every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ...Reference: tickSpacing of 100 -> 1% between ticks.
ticks
Looks up the information about a specific tick in the pool
token0
Returns the address of the first of the two tokens of the pool, sorted by address
token1
Returns the address of the second of the two tokens of the pool, sorted by address
totalTicks
Returns the number of ticks in the Pool, starts with two ticks (MIN_TICK ~ MAX_TICK)