diff --git a/landing/src/views/docs/CodeDocs.vue b/landing/src/views/docs/CodeDocs.vue index 8c88949..b6334bb 100644 --- a/landing/src/views/docs/CodeDocs.vue +++ b/landing/src/views/docs/CodeDocs.vue @@ -360,10 +360,10 @@ contract LiquidityManager is ThreePositionStrategy, PriceOracle { emit Recentered(currentTick, isUp); } - function _scrapePositions(bool recordVWAP) internal { + function _scrapePositions(bool recordVWAP, int24 currentTick) internal { uint256 fee0 = 0; uint256 fee1 = 0; - uint256 currentPrice; + uint256 currentPrice = _priceAtTick(token0isWeth ? -1 * currentTick : currentTick); for (uint256 i = uint256(Stage.FLOOR); i <= uint256(Stage.DISCOVERY); i++) { TokenPosition storage position = positions[Stage(i)]; @@ -373,28 +373,29 @@ contract LiquidityManager is ThreePositionStrategy, PriceOracle { pool.collect(address(this), position.tickLower, position.tickUpper, type(uint128).max, type(uint128).max); fee0 += collected0 - amount0; fee1 += collected1 - amount1; - if (i == uint256(Stage.ANCHOR)) { - int24 tick = position.tickLower + ((position.tickUpper - position.tickLower) / 2); - currentPrice = _priceAtTick(token0isWeth ? -1 * tick : tick); + } + } + + if (feeDestination != address(this)) { + if (fee0 > 0) { + if (token0isWeth) { + IERC20(address(weth)).safeTransfer(feeDestination, fee0); + } else { + IERC20(address(kraiken)).safeTransfer(feeDestination, fee0); + } + } + if (fee1 > 0) { + if (token0isWeth) { + IERC20(address(kraiken)).safeTransfer(feeDestination, fee1); + } else { + IERC20(address(weth)).safeTransfer(feeDestination, fee1); } } } - if (fee0 > 0) { - if (token0isWeth) { - IERC20(address(weth)).safeTransfer(feeDestination, fee0); - if (recordVWAP) _recordVolumeAndPrice(currentPrice, fee0); - } else { - IERC20(address(kraiken)).safeTransfer(feeDestination, fee0); - } - } - if (fee1 > 0) { - if (token0isWeth) { - IERC20(address(kraiken)).safeTransfer(feeDestination, fee1); - } else { - IERC20(address(weth)).safeTransfer(feeDestination, fee1); - if (recordVWAP) _recordVolumeAndPrice(currentPrice, fee1); - } + if (recordVWAP) { + uint256 ethFee = token0isWeth ? fee0 : fee1; + if (ethFee > 0) _recordVolumeAndPrice(currentPrice, ethFee); } }