1. They identify two functions in the code. One verifies a signature for a "request", the other verifies a signature for a "release message".
2. The request has only the encoded swap, the release has the hash of an encoded swap + recipient's address.
3. First function looks for
keccak256(abi.encodePacked(bytes28(0x1945...), encodedSwap)); and second function looks for keccak256(abi.encodePacked(bytes28(0x1945...), keccak256(abi.encodePacked(encodedSwap, recipient)). Difference is in what gets concatenated with the 0x1945 (EIP-191 signature standard) prefix. Here, the analogy is that within Safe contracts, a product (`return` statement) of the
encodeTransactionData function is analogous with encodedSwap.



