From feb48f22db3f2f27707384ef8704d6aca5ccaa4c Mon Sep 17 00:00:00 2001 From: Junion <69495294+Jun1on@users.noreply.github.com> Date: Sun, 14 Jul 2024 23:50:02 -0400 Subject: [PATCH] use msg.data instead of params --- contracts/middleware/MiddlewareRemove.sol | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/contracts/middleware/MiddlewareRemove.sol b/contracts/middleware/MiddlewareRemove.sol index 672aa2d77..d564a770e 100644 --- a/contracts/middleware/MiddlewareRemove.sol +++ b/contracts/middleware/MiddlewareRemove.sol @@ -41,22 +41,15 @@ contract MiddlewareRemove is BaseMiddleware { IPoolManager.ModifyLiquidityParams calldata params, bytes calldata hookData ) external returns (bytes4) { - (bool success,) = address(this).delegatecall{gas: GAS_LIMIT}( - abi.encodeWithSelector(this._callAndEnsurePrice.selector, sender, key, params, hookData) - ); + address(this).delegatecall{gas: GAS_LIMIT}(abi.encodeWithSelector(this._callAndEnsurePrice.selector, msg.data)); return BaseHook.beforeRemoveLiquidity.selector; } - function _callAndEnsurePrice( - address sender, - PoolKey calldata key, - IPoolManager.ModifyLiquidityParams calldata params, - bytes calldata hookData - ) external { + function _callAndEnsurePrice(bytes calldata data) external { + (, PoolKey memory key,,) = abi.decode(data[4:], (address, PoolKey, IPoolManager.ModifyLiquidityParams, bytes)); + (uint160 priceBefore,,,) = manager.getSlot0(key.toId()); - (bool success,) = address(implementation).delegatecall( - abi.encodeWithSelector(this.beforeRemoveLiquidity.selector, sender, key, params, hookData) - ); + (bool success,) = address(implementation).delegatecall(data); if (!success) { revert(); }