pub async fn rotate_and_upload_key_package<ApiClient, S>(
identity: &Identity,
api_client: &ApiClientWrapper<ApiClient>,
mls_storage: &S,
include_post_quantum: bool,
) -> Result<(), IdentityError>where
ApiClient: XmtpApi,
S: XmtpMlsStorageProvider,Expand description
Store fresh key material before upload, then record its publication receipt. Receipt order controls retirement. A read settles unknown publications first. Receipt bookkeeping and the next rotation deadline commit together.