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
@spec count( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Types.ListMessagesOptions.t() | nil ) :: {:ok, non_neg_integer()} | {:error, XmtpElixirSdk.Error.t()}
@spec decoded_by_id( XmtpElixirSdk.Client.t(), String.t(), XmtpElixirSdk.CodecRegistry.t() ) :: {:ok, XmtpElixirSdk.DecodedMessage.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec get_by_id(XmtpElixirSdk.Client.t(), String.t()) :: {:ok, XmtpElixirSdk.Types.Message.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec last_message(XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.CodecRegistry.t()) :: {:ok, XmtpElixirSdk.DecodedMessage.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec list( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Types.ListMessagesOptions.t() | nil, XmtpElixirSdk.CodecRegistry.t() ) :: {:ok, [XmtpElixirSdk.DecodedMessage.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec process_streamed_message(XmtpElixirSdk.Conversation.t(), binary()) :: {:ok, [XmtpElixirSdk.Types.Message.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec publish(XmtpElixirSdk.Conversation.t()) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec send(XmtpElixirSdk.Conversation.t(), term(), keyword()) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_actions( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.Actions.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_attachment( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.Attachment.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_intent( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.Intent.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_markdown(XmtpElixirSdk.Conversation.t(), String.t(), boolean()) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_multi_remote_attachment( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.MultiRemoteAttachment.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_reaction( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.Reaction.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_read_receipt(XmtpElixirSdk.Conversation.t(), boolean()) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_remote_attachment( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.RemoteAttachment.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_reply( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.Reply.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_text(XmtpElixirSdk.Conversation.t(), String.t(), boolean()) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_text_reply( XmtpElixirSdk.Conversation.t(), String.t(), String.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_transaction_reference( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.TransactionReference.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec send_wallet_send_calls( XmtpElixirSdk.Conversation.t(), XmtpElixirSdk.Content.WalletSendCalls.t(), boolean() ) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}