XmtpElixirSdk.Native
(xmtp_elixir_sdk v0.1.2)
Copy Markdown
Native-backed XMTP operations.
These functions call the supervised libxmtp bridge for production protocol
work. Use this module from server-side Phoenix code when the server owns the
XMTP identity key, such as room relays, agents, and moderation workers.
Summary
Types
@type runtime() :: XmtpElixirSdk.Runtime.t() | atom()
Functions
@spec build_existing_client(runtime(), String.t(), keyword()) :: {:ok, XmtpElixirSdk.Client.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec can_message(XmtpElixirSdk.Client.t(), [String.t()]) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec close_client(XmtpElixirSdk.Client.t()) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec count_messages(XmtpElixirSdk.Conversation.t()) :: {:ok, non_neg_integer()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_client( runtime(), keyword() ) :: {:ok, XmtpElixirSdk.Client.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_dm(XmtpElixirSdk.Client.t(), String.t()) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_group(XmtpElixirSdk.Client.t(), [String.t()], keyword()) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec get_conversation(XmtpElixirSdk.Client.t(), String.t()) :: {:ok, XmtpElixirSdk.Conversation.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec inbox_id_for(XmtpElixirSdk.Client.t(), String.t()) :: {:ok, String.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec libxmtp_version(runtime()) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec list_conversations( XmtpElixirSdk.Client.t(), keyword() ) :: {:ok, [XmtpElixirSdk.Conversation.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec list_messages( XmtpElixirSdk.Conversation.t(), keyword() ) :: {:ok, [map()]} | {:error, XmtpElixirSdk.Error.t()}
@spec members(XmtpElixirSdk.Conversation.t()) :: {:ok, [map()]} | {:error, XmtpElixirSdk.Error.t()}
@spec request(runtime(), String.t(), map()) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_text(XmtpElixirSdk.Conversation.t(), String.t()) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec sync_all(XmtpElixirSdk.Client.t()) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec sync_conversation(XmtpElixirSdk.Conversation.t()) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}