From 95e1bf12906f468c862c5cfaef0450e6f84b6834 Mon Sep 17 00:00:00 2001 From: die-herdplatte <173669014+die-herdplatte@users.noreply.github.com> Date: Sat, 29 Mar 2025 10:29:21 +0100 Subject: [PATCH] Fix wrong argument order --- foundry/src/executors/EkuboExecutor.sol | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/foundry/src/executors/EkuboExecutor.sol b/foundry/src/executors/EkuboExecutor.sol index 1c0d07c..7802742 100644 --- a/foundry/src/executors/EkuboExecutor.sol +++ b/foundry/src/executors/EkuboExecutor.sol @@ -82,10 +82,9 @@ contract EkuboExecutor is IExecutor, ICallback, ILocker, IPayer { _locked(msg.data[36:]); } - function payCallback(uint256, address token) external coreOnly { - uint128 amount = uint128(bytes16(LibBytes.loadCalldata(msg.data, 68))); - - SafeTransferLib.safeTransfer(token, address(core), amount); + function payCallback(uint256, address /*token*/) external coreOnly { + // Without selector and locker id + _payCallback(msg.data[36:]); } function _balanceOf(address token) @@ -193,10 +192,10 @@ contract EkuboExecutor is IExecutor, ICallback, ILocker, IPayer { } function _payCallback(bytes calldata payData) internal { - address token = address(bytes20(payData[0:20])); - uint128 amount = uint128(bytes16(payData[20:36])); + address token = address(bytes20(payData[12:32])); // This arg is abi-encoded + uint128 amount = uint128(bytes16(payData[32:48])); - SafeTransferLib.safeTransfer(address(core), token, amount); + SafeTransferLib.safeTransfer(token, address(core), amount); } // To receive withdrawals from Core