diff --git a/src/MSAAdvanced.sol b/src/MSAAdvanced.sol index c9db2cb..610288b 100644 --- a/src/MSAAdvanced.sol +++ b/src/MSAAdvanced.sol @@ -129,8 +129,10 @@ contract MSAAdvanced is } // TODO: implement event emission for tryExecute singleCall else if (execType == EXECTYPE_TRY) { - (success, returnData[0]) = _tryExecute(target, value, callData); - if (!success) emit TryExecuteUnsuccessful(0, returnData[0]); + bytes memory innerResult; + (success, innerResult) = _tryExecute(target, value, callData); + if (!success) emit TryExecuteUnsuccessful(0, innerResult); + returnData[0] = abi.encode(success, innerResult); } else { revert UnsupportedExecType(execType); } diff --git a/src/core/ExecutionHelper.sol b/src/core/ExecutionHelper.sol index 00aa5f0..8b25041 100644 --- a/src/core/ExecutionHelper.sol +++ b/src/core/ExecutionHelper.sol @@ -35,8 +35,10 @@ contract ExecutionHelper { for (uint256 i; i < length; i++) { Execution calldata _exec = executions[i]; bool success; - (success, result[i]) = _tryExecute(_exec.target, _exec.value, _exec.callData); - if (!success) emit TryExecuteUnsuccessful(i, result[i]); + bytes memory returnData; + (success, returnData) = _tryExecute(_exec.target, _exec.value, _exec.callData); + if (!success) emit TryExecuteUnsuccessful(i, returnData); + result[i] = abi.encode(success, returnData); } }