XmtpElixirSdk (xmtp_elixir_sdk v0.1.2)
Copy MarkdownThe main entrypoint for the XMTP Elixir SDK.
If you are new to the SDK, start here. A typical flow looks like this:
- Start a runtime with
start_runtime/1. - Create or build a client with
create_client/3orbuild_client/3. - Open or create conversations through
XmtpElixirSdk.Conversations. - Send and read messages through
XmtpElixirSdk.Messages. - Manage group state through
XmtpElixirSdk.Groups.
The SDK is split into small modules on purpose:
XmtpElixirSdk.Clientshandles identity and client lifecycle.XmtpElixirSdk.Conversationshandles finding and creating conversations.XmtpElixirSdk.Messageshandles sending, listing, and decoding messages.XmtpElixirSdk.Groupshandles group membership, roles, and group settings.XmtpElixirSdk.Preferenceshandles consent and inbox-state operations.
Summary
Functions
@spec api_urls() :: %{optional(XmtpElixirSdk.Types.env()) => String.t()}
@spec build_client( XmtpElixirSdk.Runtime.t() | atom(), XmtpElixirSdk.Types.Identifier.t(), keyword() ) :: {:ok, XmtpElixirSdk.Client.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec can_message(XmtpElixirSdk.Runtime.t() | atom(), [ XmtpElixirSdk.Types.Identifier.t() ]) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec create_client( XmtpElixirSdk.Runtime.t() | atom(), XmtpElixirSdk.Types.Identifier.t(), keyword() ) :: {:ok, XmtpElixirSdk.Client.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec generate_inbox_id( XmtpElixirSdk.Types.Identifier.t(), non_neg_integer(), non_neg_integer() ) :: {:ok, String.t()}
@spec get_inbox_id_for_identifier( XmtpElixirSdk.Runtime.t() | atom(), XmtpElixirSdk.Types.Identifier.t() ) :: {:ok, String.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec history_sync_urls() :: %{optional(XmtpElixirSdk.Types.env()) => String.t()}
@spec metadata_field_from_name(String.t()) :: {:ok, XmtpElixirSdk.Types.metadata_field()} | {:error, XmtpElixirSdk.Error.t()}
@spec metadata_field_name(XmtpElixirSdk.Types.metadata_field()) :: String.t()
@spec ns_to_datetime(non_neg_integer()) :: DateTime.t()
@spec runtime(atom()) :: XmtpElixirSdk.Runtime.t()
@spec start_runtime(keyword()) :: Supervisor.on_start()
@spec to_safe_conversation(XmtpElixirSdk.Types.Conversation.t()) :: XmtpElixirSdk.Conversions.SafeConversation.t()