XmtpElixirSdk.Clients
(xmtp_elixir_sdk v0.1.2)
Copy Markdown
Client lifecycle and identity operations.
Use this module to:
- create a ready-to-use client
- build a client before registration
- register a built client
- manage accounts, recovery identifiers, and installations
- check whether identifiers can receive XMTP messages
In practical terms:
create/3gives you a registered client immediatelybuild/3gives you a client record you can register laterregister/1finishes registration for a built client
Signature-request helpers are provided for app flows where a wallet or signer must approve a step before the SDK applies it.
Summary
Functions
@spec api_aggregate_statistics(XmtpElixirSdk.Client.t()) :: {:ok, String.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec api_identity_statistics(XmtpElixirSdk.Client.t()) :: {:ok, XmtpElixirSdk.Types.IdentityStats.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec api_statistics(XmtpElixirSdk.Client.t()) :: {:ok, XmtpElixirSdk.Types.ApiStats.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec build( XmtpElixirSdk.Runtime.t() | atom(), XmtpElixirSdk.Types.Identifier.t(), keyword() ) :: {:ok, XmtpElixirSdk.Client.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec can_message(XmtpElixirSdk.Client.t() | XmtpElixirSdk.Runtime.t() | atom(), [ XmtpElixirSdk.Types.Identifier.t() ]) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec change_recovery_identifier( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t(), map() ) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec clear_all_statistics(XmtpElixirSdk.Client.t()) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec close(XmtpElixirSdk.Client.t()) :: :ok
@spec create( XmtpElixirSdk.Runtime.t() | atom(), XmtpElixirSdk.Types.Identifier.t(), keyword() ) :: {:ok, XmtpElixirSdk.Client.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec fetch_inbox_id_by_identifier( XmtpElixirSdk.Client.t() | XmtpElixirSdk.Runtime.t() | atom(), XmtpElixirSdk.Types.Identifier.t() ) :: {:ok, String.t() | nil} | {:error, XmtpElixirSdk.Error.t()}
@spec fetch_key_package_statuses(XmtpElixirSdk.Client.t(), [String.t()]) :: {:ok, [XmtpElixirSdk.Types.KeyPackageStatus.t()]} | {:error, XmtpElixirSdk.Error.t()}
@spec is_registered(XmtpElixirSdk.Client.t()) :: {:ok, boolean()} | {:error, XmtpElixirSdk.Error.t()}
@spec register(XmtpElixirSdk.Client.t()) :: {:ok, XmtpElixirSdk.Client.t()} | {:error, XmtpElixirSdk.Error.t()}
@spec remove_account( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t(), map() ) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec revoke_all_other_installations(XmtpElixirSdk.Client.t(), map()) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec revoke_installations(XmtpElixirSdk.Client.t(), [String.t()], map()) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_add_account( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t(), map() ) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_add_account_signature_text( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t() ) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_apply_signature_request(XmtpElixirSdk.Client.t(), String.t(), map()) :: :ok | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_change_recovery_identifier_signature_text( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t() ) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_create_inbox_signature_text(XmtpElixirSdk.Client.t()) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_remove_account_signature_text( XmtpElixirSdk.Client.t(), XmtpElixirSdk.Types.Identifier.t() ) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_revoke_all_other_installations_signature_text(XmtpElixirSdk.Client.t()) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec unsafe_revoke_installations_signature_text(XmtpElixirSdk.Client.t(), [ String.t() ]) :: {:ok, map()} | {:error, XmtpElixirSdk.Error.t()}
@spec verify_signed_with_installation_key( XmtpElixirSdk.Client.t(), String.t(), binary() ) :: {:ok, boolean()} | {:error, XmtpElixirSdk.Error.t()}
@spec verify_signed_with_public_key( XmtpElixirSdk.Client.t(), String.t(), binary(), binary() ) :: {:ok, boolean()} | {:error, XmtpElixirSdk.Error.t()}