diff --git a/contracts/base/Dispatcher.sol b/contracts/base/Dispatcher.sol index 2573392a..888637ab 100644 --- a/contracts/base/Dispatcher.sol +++ b/contracts/base/Dispatcher.sol @@ -240,11 +240,7 @@ abstract contract Dispatcher is Payments, V2SwapRouter, V3SwapRouter, V4SwapRout _checkV3PositionManagerCall(inputs, msgSender()); (success, output) = address(V3_POSITION_MANAGER).call(inputs); } else if (command == Commands.V4_INITIALIZE_POOL) { - bytes4 selector; - assembly { - selector := calldataload(inputs.offset) - } - _checkV4Initialize(selector); + _checkV4InitializeCall(inputs); (success, output) = address(V4_POSITION_MANAGER).call(inputs); } else if (command == Commands.V4_POSITION_CALL) { // should only call modifyLiquidities() to mint diff --git a/contracts/modules/V3ToV4Migrator.sol b/contracts/modules/V3ToV4Migrator.sol index 53154093..d5ea84da 100644 --- a/contracts/modules/V3ToV4Migrator.sol +++ b/contracts/modules/V3ToV4Migrator.sol @@ -68,7 +68,11 @@ abstract contract V3ToV4Migrator is MigratorImmutables { } } - function _checkV4Initialize(bytes4 selector) internal pure { + function _checkV4InitializeCall(bytes calldata inputs) internal pure { + bytes4 selector; + assembly { + selector := calldataload(inputs.offset) + } if (selector != PoolInitializer.initializePool.selector) { revert InvalidAction(selector); }