def METHOD_NAME(chainId: int, verifyingContract: bytes, member: bytes, loggedIn: int,
                                timestamp: int, member_email: str, client_pubkey: bytes,
                                signature: bytes) -> bytes:
    """
    Recover the signer address the given EIP712 signature was signed with.
    :return: The (computed) signer address the signature was signed with.
    :rtype: bytes
    """
    assert is_signature(signature)
    data = _create_eip712_member_login(chainId, verifyingContract, member, loggedIn, timestamp, member_email,
                                       client_pubkey)
    return recover(data, signature)