def METHOD_NAME(
    signature: Union[Tuple[str, List[str], List[str]], Tuple[str, List[str], List[Any]]]
) -> bool:
    (name, parameters, returnVars) = signature
    # ERC721
    if name == "balanceOf" and parameters == ["address"] and returnVars != ["uint256"]:
        return True
    if name == "ownerOf" and parameters == ["uint256"] and returnVars != ["address"]:
        return True
    if (
        name == "safeTransferFrom"
        and parameters == ["address", "address", "uint256", "bytes"]
        and returnVars != []
    ):
        return True
    if (
        name == "safeTransferFrom"
        and parameters == ["address", "address", "uint256"]
        and returnVars != []
    ):
        return True
    if (
        name == "transferFrom"
        and parameters == ["address", "address", "uint256"]
        and returnVars != []
    ):
        return True
    if name == "approve" and parameters == ["address", "uint256"] and returnVars != []:
        return True
    if name == "setApprovalForAll" and parameters == ["address", "bool"] and returnVars != []:
        return True
    if name == "getApproved" and parameters == ["uint256"] and returnVars != ["address"]:
        return True
    if (
        name == "isApprovedForAll"
        and parameters == ["address", "address"]
        and returnVars != ["bool"]
    ):
        return True
    # ERC165 (dependency)
    if name == "supportsInterface" and parameters == ["bytes4"] and returnVars != ["bool"]:
        return True
    return False