Xmtp.Resolver (xmtp_elixir_sdk v0.1.2)

Copy Markdown

Shared wallet and inbox resolver with bounded caching.

Summary

Types

result()

@type result() :: %{
  status: :ready | :not_found | :cannot_message,
  wallet_address: String.t() | nil,
  inbox_id: String.t() | nil,
  can_message?: boolean()
}

target()

@type target() :: %{wallet_address: String.t()} | %{inbox_id: String.t()}

Functions

can_message?(server \\ __MODULE__, runtime_or_client, wallet_address)

@spec can_message?(
  GenServer.server(),
  XmtpElixirSdk.Client.t() | XmtpElixirSdk.Runtime.t() | atom(),
  String.t()
) :: {:ok, boolean()} | {:error, term()}

child_spec(init_arg)

@spec child_spec(keyword()) :: Supervisor.child_spec()

Returns a specification to start this module under a supervisor.

See Supervisor.

find_or_create_dm_target(server \\ __MODULE__, runtime_or_client, target)

@spec find_or_create_dm_target(
  GenServer.server(),
  XmtpElixirSdk.Client.t() | XmtpElixirSdk.Runtime.t() | atom(),
  target()
) :: {:ok, result()} | {:error, term()}

resolve_for_room_invite(server \\ __MODULE__, runtime_or_client, target)

@spec resolve_for_room_invite(
  GenServer.server(),
  XmtpElixirSdk.Client.t() | XmtpElixirSdk.Runtime.t() | atom(),
  target()
) :: {:ok, result()} | {:error, term()}

resolve_wallet(server \\ __MODULE__, runtime_or_client, wallet_address)

@spec resolve_wallet(
  GenServer.server(),
  XmtpElixirSdk.Client.t() | XmtpElixirSdk.Runtime.t() | atom(),
  String.t()
) :: {:ok, result()} | {:error, term()}

start_link(opts \\ [])

@spec start_link(keyword()) :: GenServer.on_start()