Skip to main content

extract_committer_and_proposers

Function extract_committer_and_proposers 

Source
pub fn extract_committer_and_proposers(
    staged_commit: &StagedCommit,
    committer_leaf_index: LeafNodeIndex,
    openmls_group: &MlsGroup,
    immutable_metadata: &GroupMetadata,
    mutable_metadata: &GroupMutableMetadata,
) -> Result<(CommitParticipant, Vec<CommitParticipant>), CommitRuleError>
Expand description

Takes a [StagedCommit] and extracts the committer and all unique proposers.

committer_leaf_index is the verified sender of the commit message — for received commits, that’s ProcessedMessage::sender() after OpenMLS has validated the framing signature against the leaf at that index; for our own commits being applied from an intent, that’s mls_group.own_leaf_index(). Either way the cryptographic signature is the source of truth, so we don’t need a path update to identify the committer.

Returns (committer, proposers) where:

  • committer is the actor who created the commit
  • proposers is a list of all unique members who created proposals

Note: The committer may differ from the proposers — this is valid when one member commits proposals created by other members.