diff --git a/src/validator/WeightedECDSAValidator.sol b/src/validator/WeightedECDSAValidator.sol index bd2888bd..7ad208de 100644 --- a/src/validator/WeightedECDSAValidator.sol +++ b/src/validator/WeightedECDSAValidator.sol @@ -221,10 +221,14 @@ contract WeightedECDSAValidator is EIP712, IKernelValidator { return packValidationData(ValidAfter.wrap(0), ValidUntil.wrap(0)); } } else if (proposal.status == ProposalStatus.Approved || passed) { - address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(userOpHash), userOp.signature); - if (guardian[signer][msg.sender].weight != 0) { - proposal.status = ProposalStatus.Executed; - return packValidationData(ValidAfter.wrap(0), ValidUntil.wrap(0)); + if(userOp.paymasterAndData.length == 0) { + address signer = ECDSA.recover(ECDSA.toEthSignedMessageHash(userOpHash), userOp.signature); + if (guardian[signer][msg.sender].weight != 0) { + proposal.status = ProposalStatus.Executed; + return packValidationData(proposal.validAfter, ValidUntil.wrap(0)); + } + } else { + return packValidationData(proposal.validAfter, ValidUntil.wrap(0)); } } return SIG_VALIDATION_FAILED;