XmtpElixirSdk.Preferences (xmtp_elixir_sdk v0.1.2)

Copy Markdown

Consent, inbox-state, and preference-sync operations.

This module deals with information that is about the client or inbox rather than about one specific conversation.

Use it to:

  • sync preference state
  • inspect inbox state
  • fetch inbox states for other inbox ids
  • set and read consent state

Consent updates use one canonical shape:

  • inbox consent: %{entity: "inbox-id", state: :allowed | :denied | :unknown}

  • group consent: %{group_id: "group-id", state: :allowed | :denied | :unknown}

Preference events emit XmtpElixirSdk.Types.PreferenceUpdate structs only.

Summary

Functions

fetch_inbox_state(client)

@spec fetch_inbox_state(XmtpElixirSdk.Client.t()) ::
  {:ok, XmtpElixirSdk.Types.InboxState.t()} | {:error, XmtpElixirSdk.Error.t()}

fetch_inbox_states(client, inbox_ids)

@spec fetch_inbox_states(XmtpElixirSdk.Client.t(), [String.t()]) ::
  {:ok, [XmtpElixirSdk.Types.InboxState.t()]}
  | {:error, XmtpElixirSdk.Error.t()}

get_inbox_states(client, inbox_ids)

@spec get_inbox_states(XmtpElixirSdk.Client.t(), [String.t()]) ::
  {:ok, [XmtpElixirSdk.Types.InboxState.t()]}
  | {:error, XmtpElixirSdk.Error.t()}

inbox_state(client)

@spec inbox_state(XmtpElixirSdk.Client.t()) ::
  {:ok, XmtpElixirSdk.Types.InboxState.t()} | {:error, XmtpElixirSdk.Error.t()}

sync(client)