liquidity manager compiles

This commit is contained in:
JulesCrown 2023-11-25 22:15:04 +01:00
parent acec4c4c57
commit 1204943718
2 changed files with 15 additions and 21 deletions

View file

@ -1,3 +1,3 @@
@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
@uniswap/v3-core/=lib/v3-core/
@uniswap/v3-periphery/=lib/v3-periphery-foundry/
@uniswap/v3-periphery/=lib/v3-periphery/

View file

@ -140,20 +140,13 @@ contract LiquidityManager {
}
/// @notice Add liquidity to an initialized pool
function addLiquidity(AddLiquidityParams memory params)
external
checkDeadline(params.deadline)
returns (
uint128 liquidity,
uint256 amount0,
uint256 amount1
)
{
function addLiquidity(AddLiquidityParams memory params) external checkDeadline(params.deadline) {
PoolAddress.PoolKey memory poolKey =
PoolAddress.PoolKey({token0: params.token0, token1: params.token1, fee: FEE});
IUniswapV3Pool pool = IUniswapV3Pool(PoolAddress.computeAddress(factory, poolKey));
// compute the liquidity amount
uint128 liquidity;
{
(uint160 sqrtPriceX96, , , , , , ) = pool.slot0();
uint160 sqrtRatioAX96 = TickMath.getSqrtRatioAtTick(params.tickLower);
@ -168,15 +161,19 @@ contract LiquidityManager {
);
}
(amount0, amount1) = pool.mint(
address(this),
params.tickLower,
params.tickUpper,
liquidity,
abi.encode(poolKey)
);
(bool token0isWeth, address token) = getToken(params.token0, params.token1);
{
(uint256 amount0, uint256 amount1) = pool.mint(
address(this),
params.tickLower,
params.tickUpper,
liquidity,
abi.encode(poolKey)
);
require(amount0 >= params.amount0Min && amount1 >= params.amount1Min, 'Price slippage check');
require(amount0 >= params.amount0Min && amount1 >= params.amount1Min, 'Price slippage check');
emit IncreaseLiquidity(token, liquidity, amount0, amount1);
}
bytes32 positionKey = PositionKey.compute(address(this), params.tickLower, params.tickUpper);
@ -184,7 +181,6 @@ contract LiquidityManager {
(, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, , ) = pool.positions(positionKey);
(bool token0isWeth, address token) = getToken(params.token0, params.token1);
TokenPosition memory position = _positions[posKey(token, params.tickLower, params.tickUpper)];
if (liquidity == 0) {
// create entry
@ -213,8 +209,6 @@ contract LiquidityManager {
position.feeGrowthInside1LastX128 = feeGrowthInside1LastX128;
position.liquidity += liquidity;
}
emit IncreaseLiquidity(token, liquidity, amount0, amount1);
}
function decreaseLiquidity(DecreaseLiquidityParams calldata params)