From b4957d0502b9ef9233533b40eff4a7fb96be9c8f Mon Sep 17 00:00:00 2001 From: GarmashAlex Date: Thu, 6 Nov 2025 14:22:24 +0300 Subject: [PATCH] perf: defer signer() reads until after tryDecodeAuth success --- .../utils/cryptography/signers/SignerWebAuthn.sol | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/utils/cryptography/signers/SignerWebAuthn.sol b/contracts/utils/cryptography/signers/SignerWebAuthn.sol index 7352950bd46..1c1b95d8f41 100644 --- a/contracts/utils/cryptography/signers/SignerWebAuthn.sol +++ b/contracts/utils/cryptography/signers/SignerWebAuthn.sol @@ -40,12 +40,12 @@ abstract contract SignerWebAuthn is SignerP256 { bytes32 hash, bytes calldata signature ) internal view virtual override returns (bool) { - (bytes32 qx, bytes32 qy) = signer(); (bool decodeSuccess, WebAuthn.WebAuthnAuth calldata auth) = WebAuthn.tryDecodeAuth(signature); - - return - decodeSuccess - ? WebAuthn.verify(abi.encodePacked(hash), auth, qx, qy) - : super._rawSignatureValidation(hash, signature); + if (decodeSuccess) { + (bytes32 qx, bytes32 qy) = signer(); + return WebAuthn.verify(abi.encodePacked(hash), auth, qx, qy); + } else { + return super._rawSignatureValidation(hash, signature); + } } }