def METHOD_NAME(
    cls,
    obj: SyftObject,
    service_type: Optional[Type[Any]] = None,
    node_uid: Optional[UID] = None,
) -> Self:
    if service_type is None:
        # relative
        from ..service.action.action_object import ActionObject
        from ..service.action.action_service import ActionService
        from ..service.service import TYPE_TO_SERVICE
        if isinstance(obj, ActionObject):
            service_type = ActionService
        else:
            service_type = TYPE_TO_SERVICE[type(obj)]
    object_uid = getattr(obj, "id", None)
    if object_uid is None:
        raise Exception(f"{cls} Requires an object UID")
    if node_uid is None:
        node_uid = getattr(obj, "node_uid", None)
        if node_uid is None:
            raise Exception(f"{cls} Requires an object UID")
    return LinkedObject(
        node_uid=node_uid,
        service_type=service_type,
        object_type=type(obj),
        object_uid=object_uid,
        syft_client_verify_key=obj.syft_client_verify_key,
    )