Skip to main content

merge_dict_into_mutable_metadata

Function merge_dict_into_mutable_metadata 

Source
pub fn merge_dict_into_mutable_metadata(
    base: &mut GroupMutableMetadata,
    extensions: &Extensions<GroupContext>,
) -> Result<(), GroupMutableMetadataError>
Expand description

Overlay the AppData dictionary’s metadata components onto base — the dict→legacy direction of the capability-aware read paths.

Ungated: callers decide migration state before calling (the xmtp_mls wrapper gates on its test-override-aware is_migrated_extensions; the archive exporter gates on extensions_are_migrated). No-op when the extensions carry no AppData dictionary.

Value translation per component family:

  • MESSAGE_DISAPPEAR_*: 8-byte BE i64 on the wire → base-10 string for the legacy reader.
  • COMMIT_LOG_SIGNER: raw 32 key bytes → hex string.
  • Every other metadata attribute: UTF-8 passthrough.
  • ADMIN_LIST / SUPER_ADMIN_LIST: TlsSet<InboxId> → hex-string lists (dict is authoritative on migrated groups).