Skip to main content

Module metadata_attributes

Module metadata_attributes 

Source
Expand description

Component impls for the eight GroupMutableMetadata-backed attribute components.

Three flavours, distinguished by the typed Value they expose:

  • String (GROUP_NAME, GROUP_DESCRIPTION, GROUP_IMAGE_URL, APP_DATA, MIN_SUPPORTED_PROTOCOL_VERSION): Value = String, wire bytes are UTF-8.
  • Big-endian i64 (MESSAGE_DISAPPEAR_FROM_NS, MESSAGE_DISAPPEAR_IN_NS): Value = i64, wire bytes are exactly 8 bytes (i64::to_be_bytes). The legacy GroupMutableMetadata path stringifies these as decimal; the AppData path uses the binary representation directly so callers don’t have to round-trip through ASCII.
  • Fixed-length signer key (COMMIT_LOG_SIGNER): Value = xmtp_cryptography::Secret (zeroized on drop) holding exactly ED25519_KEY_LENGTH bytes — the raw Ed25519 private-key material that the legacy path hex-encoded into a string. The length is enforced at decode time; callers continue to handle a Secret end-to-end without a hex round-trip.

AppDataUpdate::Update payloads pass through verbatim after the component-specific length/UTF-8 validation, and there is no delta encoding.

Structs§

AppDataComponent
CommitLogSignerComponent
Component impl for the COMMIT_LOG_SIGNER component.
GroupDescriptionComponent
GroupImageUrlComponent
GroupNameComponent
MessageDisappearFromNsComponent
MessageDisappearInNsComponent
MinSupportedProtocolVersionComponent