From 1204943718428628ee90692aded6eef6a0eef003 Mon Sep 17 00:00:00 2001 From: JulesCrown Date: Sat, 25 Nov 2023 22:15:04 +0100 Subject: [PATCH] liquidity manager compiles --- remappings.txt | 2 +- src/LiquidityManager.sol | 34 ++++++++++++++-------------------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/remappings.txt b/remappings.txt index 74084b9..d7a8767 100644 --- a/remappings.txt +++ b/remappings.txt @@ -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/ diff --git a/src/LiquidityManager.sol b/src/LiquidityManager.sol index 275e8f1..cad18fc 100644 --- a/src/LiquidityManager.sol +++ b/src/LiquidityManager.sol @@ -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)