From d99c09b57d98c334e08d9c15a2efa42409a67bdf Mon Sep 17 00:00:00 2001 From: Jazz Turner-Baggs <473256+jazzz@users.noreply.github.com> Date: Fri, 19 Jun 2026 01:51:57 -0700 Subject: [PATCH] Add encoded_credential to CovnoOutcome --- .../conversations/src/conversation/group_v1.rs | 3 +++ .../conversations/src/conversation/group_v2.rs | 18 ++++++++++++------ .../src/conversation/privatev1.rs | 1 + core/conversations/src/outcomes.rs | 1 + 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/core/conversations/src/conversation/group_v1.rs b/core/conversations/src/conversation/group_v1.rs index ba59a9e..dbb87f7 100644 --- a/core/conversations/src/conversation/group_v1.rs +++ b/core/conversations/src/conversation/group_v1.rs @@ -255,12 +255,15 @@ impl Convo for GroupV1Convo { .process_message(&cx.mls_provider, protocol_message) .map_err(ChatError::generic)?; + let cred_bytes = processed.credential().serialized_content().to_vec(); + let content = match processed.into_content() { ProcessedMessageContent::ApplicationMessage(msg) => { let reliable = ReliablePayload::decode(msg.into_bytes().as_slice())?; cx.causal.on_receive(&self.convo_id, &reliable); Some(Content { bytes: reliable.content.to_vec(), + encoded_credential: cred_bytes, }) } ProcessedMessageContent::StagedCommitMessage(commit) => { diff --git a/core/conversations/src/conversation/group_v2.rs b/core/conversations/src/conversation/group_v2.rs index 815cf10..dde0723 100644 --- a/core/conversations/src/conversation/group_v2.rs +++ b/core/conversations/src/conversation/group_v2.rs @@ -21,6 +21,7 @@ use de_mls::protos::de_mls::messages::v1::{ }; use de_mls::session::{Conversation, ConversationConfig, ConversationDeps}; use hashgraph_like_consensus::signing::EthereumConsensusSigner; +use openmls::credentials::Credential; use prost::Message; use shared_traits::{IdentId, IdentIdRef}; use std::sync::Arc; @@ -458,12 +459,17 @@ impl GroupV2Convo { events.iter().find_map(|evt| match evt { ConversationEvent::AppMessage(AppMessageProto { payload: Some(app_message::Payload::ConversationMessage(cm)), - }) => Some(ConvoOutcome { - convo_id: self.convo_id.clone(), - content: Some(Content { - bytes: cm.message.clone(), - }), - }), + }) => { + let cred = cm.sender.as_bytes().to_vec(); + Some(ConvoOutcome { + convo_id: self.convo_id.clone(), + content: Some(Content { + bytes: cm.message.clone(), + // D + encoded_credential: cred, + }), + }) + } _ => None, }) } diff --git a/core/conversations/src/conversation/privatev1.rs b/core/conversations/src/conversation/privatev1.rs index a6e278c..62d1e1f 100644 --- a/core/conversations/src/conversation/privatev1.rs +++ b/core/conversations/src/conversation/privatev1.rs @@ -197,6 +197,7 @@ impl PrivateV1Convo { fn handle_content(&self, bytes: Bytes) -> Content { Content { bytes: bytes.into(), + encoded_credential: vec![114, 114], } } diff --git a/core/conversations/src/outcomes.rs b/core/conversations/src/outcomes.rs index 3209da8..af88d7d 100644 --- a/core/conversations/src/outcomes.rs +++ b/core/conversations/src/outcomes.rs @@ -13,6 +13,7 @@ use crate::conversation::ConversationId; #[derive(Debug, Clone)] pub struct Content { pub bytes: Vec, + pub encoded_credential: Vec, } #[derive(Debug, Clone)]