XmtpElixirSdk.Conversations (xmtp_elixir_sdk v0.1.2)

Copy Markdown

Find, create, and list conversations.

This module is the usual starting point after you have a client.

Common tasks:

  • fetch a conversation by id
  • list direct messages or groups
  • create a new DM
  • create a new group
  • create conversations from identifiers instead of raw inbox ids

Returned conversation structs are intended to be passed into XmtpElixirSdk.Messages, XmtpElixirSdk.Groups, and related modules.

Summary

Functions

create_dm(client, inbox_id, opts \\ %Types.CreateDmOptions{})

create_dm_with_identifier(client, identifier, opts \\ %Types.CreateDmOptions{})

create_group(client, inbox_ids, opts \\ %Types.CreateGroupOptions{})

create_group_optimistic(client, opts \\ %Types.CreateGroupOptions{})

@spec create_group_optimistic(
  XmtpElixirSdk.Client.t(),
  XmtpElixirSdk.Types.CreateGroupOptions.t() | nil
) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

create_group_with_identifiers(client, identifiers, opts \\ %Types.CreateGroupOptions{})

duplicate_dms(conversation)

@spec duplicate_dms(XmtpElixirSdk.Conversation.t()) ::
  {:ok, [XmtpElixirSdk.Conversation.t()]} | {:error, XmtpElixirSdk.Error.t()}

fetch_dm_by_identifier(client, identifier)

@spec fetch_dm_by_identifier(
  XmtpElixirSdk.Client.t(),
  XmtpElixirSdk.Types.Identifier.t()
) ::
  {:ok, XmtpElixirSdk.Conversation.t() | nil}
  | {:error, XmtpElixirSdk.Error.t()}

get_by_id(client, id)

@spec get_by_id(XmtpElixirSdk.Client.t(), String.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t() | nil}
  | {:error, XmtpElixirSdk.Error.t()}

get_dm_by_inbox_id(client, inbox_id)

@spec get_dm_by_inbox_id(XmtpElixirSdk.Client.t(), String.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t() | nil}
  | {:error, XmtpElixirSdk.Error.t()}

get_message_by_id(client, id, registry \\ CodecRegistry.new())

hmac_keys(client)

list(client, opts \\ %Types.ListConversationsOptions{})

list_dms(client, opts \\ %Types.ListConversationsOptions{})

list_groups(client, opts \\ %Types.ListConversationsOptions{})

sync(client)

sync_all(client, consent_states \\ [])

topic(client)

@spec topic(XmtpElixirSdk.Client.t()) :: String.t() | nil