From ff81380b1d0037bbfd0c232a3cd6602f137fc769 Mon Sep 17 00:00:00 2001 From: Mikhail Mikheev <16622558+mmv08@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:52:06 +0100 Subject: [PATCH 1/2] Update comments in SignatureVerifierMuxer to reflect correct byte ranges for encodeData and payload lengths --- contracts/handler/extensible/SignatureVerifierMuxer.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/handler/extensible/SignatureVerifierMuxer.sol b/contracts/handler/extensible/SignatureVerifierMuxer.sol index c93efb45f..02135650d 100644 --- a/contracts/handler/extensible/SignatureVerifierMuxer.sol +++ b/contracts/handler/extensible/SignatureVerifierMuxer.sol @@ -121,10 +121,10 @@ abstract contract SignatureVerifierMuxer is ExtensibleBase, ERC1271, ISignatureV // 0x00 - 0x04: selector // 0x04 - 0x36: domainSeparator // 0x36 - 0x68: typeHash - // 0x68 - 0x6C: encodeData length - // 0x6C - 0x6C + encodeData length: encodeData - // 0x6C + encodeData length - 0x6C + encodeData length + 0x20: payload length - // 0x6C + encodeData length + 0x20 - end: payload + // 0x68 - 0x88: encodeData length + // 0x88 - 0x88 + encodeData length: encodeData + // 0x88 + encodeData length - 0x88 + encodeData length + 0x20: payload length + // 0x88 + encodeData length + 0x20 - end: payload // // Get the domainSeparator from the signature. (bytes32 domainSeparator, bytes32 typeHash) = abi.decode(signature[4:68], (bytes32, bytes32)); From 0f9ffbf3219780468339271f2eca37e8862674d9 Mon Sep 17 00:00:00 2001 From: Mikhail <16622558+mmv08@users.noreply.github.com> Date: Thu, 9 Jan 2025 15:51:32 +0100 Subject: [PATCH 2/2] Update comments in SignatureVerifierMuxer to clarify byte ranges for signature decoding --- .../handler/extensible/SignatureVerifierMuxer.sol | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/contracts/handler/extensible/SignatureVerifierMuxer.sol b/contracts/handler/extensible/SignatureVerifierMuxer.sol index 02135650d..a2b5a0532 100644 --- a/contracts/handler/extensible/SignatureVerifierMuxer.sol +++ b/contracts/handler/extensible/SignatureVerifierMuxer.sol @@ -118,13 +118,13 @@ abstract contract SignatureVerifierMuxer is ExtensibleBase, ERC1271, ISignatureV if (sigSelector == SAFE_SIGNATURE_MAGIC_VALUE && signature.length >= 68) { // Signature is for an `ISafeSignatureVerifier` - decode the signature. // Layout of the `signature`: - // 0x00 - 0x04: selector - // 0x04 - 0x36: domainSeparator - // 0x36 - 0x68: typeHash - // 0x68 - 0x88: encodeData length - // 0x88 - 0x88 + encodeData length: encodeData - // 0x88 + encodeData length - 0x88 + encodeData length + 0x20: payload length - // 0x88 + encodeData length + 0x20 - end: payload + // 0x00 to 0x04: selector + // 0x04 to 0x36: domainSeparator + // 0x36 to 0x68: typeHash + // 0x68 to 0x88: encodeData length + // 0x88 to 0x88 + encodeData length: encodeData + // 0x88 + encodeData length to 0x88 + encodeData length + 0x20: payload length + // 0x88 + encodeData length + 0x20 to end: payload // // Get the domainSeparator from the signature. (bytes32 domainSeparator, bytes32 typeHash) = abi.decode(signature[4:68], (bytes32, bytes32));