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:
committeris the actor who created the commitproposersis 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.