diff --git a/solidity/contracts/hooks/CCIPHook.sol b/solidity/contracts/hooks/CCIPHook.sol index bc0a063fc9..83fe7c4b2d 100644 --- a/solidity/contracts/hooks/CCIPHook.sol +++ b/solidity/contracts/hooks/CCIPHook.sol @@ -58,7 +58,12 @@ contract CCIPHook is AbstractMessageIdAuthHook { receiver: abi.encode(ism), data: abi.encode(message.id()), tokenAmounts: new Client.EVMTokenAmount[](0), - extraArgs: "", + extraArgs: Client._argsToBytes( + Client.EVMExtraArgsV2({ + gasLimit: 60_000, + allowOutOfOrderExecution: true + }) + ), feeToken: address(0) }); } diff --git a/solidity/contracts/isms/hook/CCIPIsm.sol b/solidity/contracts/isms/hook/CCIPIsm.sol index cc10f05cf0..6bc9360d22 100644 --- a/solidity/contracts/isms/hook/CCIPIsm.sol +++ b/solidity/contracts/isms/hook/CCIPIsm.sol @@ -61,7 +61,7 @@ contract CCIPIsm is AbstractMessageIdAuthorizedIsm, CCIPReceiver { require(sender == authorizedHook, "Unauthorized hook"); bytes32 messageId = abi.decode(any2EvmMessage.data, (bytes32)); - preVerifyMessage(messageId, msg.value); + preVerifyMessage(messageId, 0); } function _isAuthorized() internal view override returns (bool) { diff --git a/solidity/test/isms/CCIPIsm.t.sol b/solidity/test/isms/CCIPIsm.t.sol index 0f68f87cfc..2e83efc063 100644 --- a/solidity/test/isms/CCIPIsm.t.sol +++ b/solidity/test/isms/CCIPIsm.t.sol @@ -202,7 +202,10 @@ contract CCIPIsmTest is Test { Client.Any2EVMMessage memory message = _encodeCCIPReceiveMessage(); vm.prank(OP_ROUTER_ADDRESS); + uint256 beforeCall = gasleft(); ccipISMOptimism.ccipReceive(message); + uint256 afterCall = gasleft(); + console.log("Gas used: ", beforeCall - afterCall); assertTrue(ccipISMOptimism.verifiedMessages(messageId).isBitSet(255)); }