From e04c15737cd5e238c31f41aca84b146931cf9fc7 Mon Sep 17 00:00:00 2001 From: highskore Date: Wed, 26 Feb 2025 22:06:33 +0100 Subject: [PATCH] feat: add 7702 support for 1271 uninitalized --- src/MSAAdvanced.sol | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/MSAAdvanced.sol b/src/MSAAdvanced.sol index b9df6e8..c9db2cb 100644 --- a/src/MSAAdvanced.sol +++ b/src/MSAAdvanced.sol @@ -270,7 +270,6 @@ contract MSAAdvanced is if (!isAlreadyInitialized()) { address signer = ECDSA.recover(userOpHash.toEthSignedMessageHash(), userOp.signature); - if (signer != address(this)) { return VALIDATION_FAILED; } @@ -305,7 +304,15 @@ contract MSAAdvanced is returns (bytes4) { address validator = address(bytes20(data[0:20])); - if (!_isValidatorInstalled(validator)) revert InvalidModule(validator); + if (!_isValidatorInstalled(validator)) { + if (!isAlreadyInitialized()) { + address signer = ECDSA.recover(hash.toEthSignedMessageHash(), data); + if (signer == address(this)) { + return 0x1626ba7e; // EIP1271MagicValue + } + } + revert InvalidModule(validator); + } bytes memory signature_; (hash, signature_) = _withPreValidationHook(hash, data[20:]); return IValidator(validator).isValidSignatureWithSender(msg.sender, hash, signature_);