{
    "Function": "verify",
    "File": "contracts/lib/openzeppelin-contracts/contracts/mocks/EIP712External.sol",
    "Parent Contracts": [
        "contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol"
    ],
    "High-Level Calls": [
        "ECDSA"
    ],
    "Internal Calls": [
        "abi.encode()",
        "keccak256(bytes)",
        "_hashTypedDataV4",
        "require(bool)",
        "keccak256(bytes)",
        "keccak256(bytes)"
    ],
    "Library Calls": [
        "recover"
    ],
    "Low-Level Calls": [],
    "Code": "function verify(\n        bytes memory signature,\n        address signer,\n        address mailTo,\n        string memory mailContents\n    ) external view {\n        bytes32 digest = _hashTypedDataV4(\n            keccak256(abi.encode(keccak256(\"Mail(address to,string contents)\"), mailTo, keccak256(bytes(mailContents))))\n        );\n        address recoveredSigner = ECDSA.recover(digest, signature);\n        require(recoveredSigner == signer);\n    }"
}