```\nfunction recover(\n    bytes32 hash,\n    bytes memory signature\n) internal pure returns (address) {\n    (address recovered, RecoverError error) = tryRecover(hash, signature);\n    _throwError(error);\n    return recovered;\n}\n```\n