XmtpElixirSdk.Messages (xmtp_elixir_sdk v0.1.2)

Copy Markdown

Send, list, count, publish, and decode messages.

This module covers the day-to-day messaging flow:

  • send text, markdown, replies, reactions, attachments, and structured content
  • list messages in a conversation
  • count messages that match a filter
  • fetch one message by id
  • publish optimistic messages
  • process streamed message payloads

For most apps, send_text/3, list/3, last_message/2, and publish/1 are the main entry points.

Summary

Functions

count(conversation, opts \\ %Types.ListMessagesOptions{})

decoded_by_id(client, message_id, registry)

get_by_id(client, message_id)

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

last_message(conversation, registry \\ CodecRegistry.new())

list(conversation, opts \\ %Types.ListMessagesOptions{}, registry \\ CodecRegistry.new())

process_streamed_message(conversation, envelope_bytes)

@spec process_streamed_message(XmtpElixirSdk.Conversation.t(), binary()) ::
  {:ok, [XmtpElixirSdk.Types.Message.t()]} | {:error, XmtpElixirSdk.Error.t()}

publish(conversation)

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

send(conversation, content, opts \\ [])

@spec send(XmtpElixirSdk.Conversation.t(), term(), keyword()) ::
  {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_actions(conversation, actions, is_optimistic \\ false)

send_attachment(conversation, attachment, is_optimistic \\ false)

send_intent(conversation, intent, is_optimistic \\ false)

send_markdown(conversation, markdown, is_optimistic \\ false)

@spec send_markdown(XmtpElixirSdk.Conversation.t(), String.t(), boolean()) ::
  {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_multi_remote_attachment(conversation, attachment, is_optimistic \\ false)

@spec send_multi_remote_attachment(
  XmtpElixirSdk.Conversation.t(),
  XmtpElixirSdk.Content.MultiRemoteAttachment.t(),
  boolean()
) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_reaction(conversation, reaction, is_optimistic \\ false)

send_read_receipt(conversation, is_optimistic \\ false)

@spec send_read_receipt(XmtpElixirSdk.Conversation.t(), boolean()) ::
  {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_remote_attachment(conversation, attachment, is_optimistic \\ false)

@spec send_remote_attachment(
  XmtpElixirSdk.Conversation.t(),
  XmtpElixirSdk.Content.RemoteAttachment.t(),
  boolean()
) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_reply(conversation, reply, is_optimistic \\ false)

send_text(conversation, text, is_optimistic \\ false)

@spec send_text(XmtpElixirSdk.Conversation.t(), String.t(), boolean()) ::
  {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_text_reply(conversation, reference_id, text, is_optimistic \\ false)

@spec send_text_reply(
  XmtpElixirSdk.Conversation.t(),
  String.t(),
  String.t(),
  boolean()
) ::
  {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_transaction_reference(conversation, transaction_reference, is_optimistic \\ false)

@spec send_transaction_reference(
  XmtpElixirSdk.Conversation.t(),
  XmtpElixirSdk.Content.TransactionReference.t(),
  boolean()
) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}

send_wallet_send_calls(conversation, wallet_send_calls, is_optimistic \\ false)

@spec send_wallet_send_calls(
  XmtpElixirSdk.Conversation.t(),
  XmtpElixirSdk.Content.WalletSendCalls.t(),
  boolean()
) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}