From ef053852eb8245cd5fc3835e5fb7cc7b32105933 Mon Sep 17 00:00:00 2001 From: Jay Paik Date: Wed, 24 Jan 2024 15:11:34 -0500 Subject: [PATCH] fix: propagate user op validation reverts from plugins --- src/account/UpgradeableModularAccount.sol | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/account/UpgradeableModularAccount.sol b/src/account/UpgradeableModularAccount.sol index c4553734..10d5a6c5 100644 --- a/src/account/UpgradeableModularAccount.sol +++ b/src/account/UpgradeableModularAccount.sol @@ -365,13 +365,7 @@ contract UpgradeableModularAccount is if (!preUserOpValidationHook.isEmptyOrMagicValue()) { (address plugin, uint8 functionId) = preUserOpValidationHook.unpack(); - try IPlugin(plugin).preUserOpValidationHook(functionId, userOp, userOpHash) returns ( - uint256 returnData - ) { - currentValidationData = returnData; - } catch { - currentValidationData = SIG_VALIDATION_FAILED; - } + currentValidationData = IPlugin(plugin).preUserOpValidationHook(functionId, userOp, userOpHash); if (uint160(currentValidationData) > 1) { // If the aggregator is not 0 or 1, it is an unexpected value @@ -392,13 +386,8 @@ contract UpgradeableModularAccount is { if (!userOpValidationFunction.isEmptyOrMagicValue()) { (address plugin, uint8 functionId) = userOpValidationFunction.unpack(); - try IPlugin(plugin).userOpValidationFunction(functionId, userOp, userOpHash) returns ( - uint256 returnData - ) { - currentValidationData = returnData; - } catch { - currentValidationData = SIG_VALIDATION_FAILED; - } + currentValidationData = IPlugin(plugin).userOpValidationFunction(functionId, userOp, userOpHash); + if (preUserOpValidationHooksLength != 0) { // If we have other validation data we need to coalesce with validationData = _coalesceValidation(validationData, currentValidationData);