pub struct ThresholdGroup {
pub group_id: GroupId,
pub threshold: u16,
pub participants: u16,
pub frost_group_key: FrostGroupPublicKey,
pub active_participants: Vec<ParticipantInfo>,
pub pending_participants: Vec<ParticipantInfo>,
pub version: u64,
pub metadata: GroupMetadata,
pub audit_log: Vec<GroupAuditEntry>,
pub created_at: SystemTime,
pub last_updated: SystemTime,
}Expand description
Threshold group with dynamic membership
Fields§
§group_id: GroupIdUnique group identifier
threshold: u16Current threshold (t in t-of-n)
participants: u16Total participants (n in t-of-n)
frost_group_key: FrostGroupPublicKeyFROST group public key
active_participants: Vec<ParticipantInfo>Active participants with their shares
pending_participants: Vec<ParticipantInfo>Participants being added
version: u64Group version (incremented on changes)
metadata: GroupMetadataGroup metadata
audit_log: Vec<GroupAuditEntry>Audit log of group operations
created_at: SystemTimeCreation timestamp
last_updated: SystemTimeLast update timestamp
Implementations§
Source§impl ThresholdGroup
impl ThresholdGroup
Sourcepub fn check_permission(
&self,
participant_id: &ParticipantId,
permission: Permission,
) -> Result<()>
pub fn check_permission( &self, participant_id: &ParticipantId, permission: Permission, ) -> Result<()>
Check if a participant has a specific permission
Sourcepub fn get_active_participants(&self) -> Vec<&ParticipantInfo>
pub fn get_active_participants(&self) -> Vec<&ParticipantInfo>
Get active participants (not suspended or pending removal)
Sourcepub fn active_participant_count(&self) -> u16
pub fn active_participant_count(&self) -> u16
Get number of active participants
Sourcepub fn has_threshold_participants(&self) -> bool
pub fn has_threshold_participants(&self) -> bool
Check if we have enough participants for threshold operations
Sourcepub fn add_pending_participant(
&mut self,
participant: ParticipantInfo,
) -> Result<()>
pub fn add_pending_participant( &mut self, participant: ParticipantInfo, ) -> Result<()>
Add a new participant (pending until key ceremony)
Sourcepub fn mark_for_removal(&mut self, participant_id: &ParticipantId) -> Result<()>
pub fn mark_for_removal(&mut self, participant_id: &ParticipantId) -> Result<()>
Mark participant for removal
Sourcepub fn update_participant_role(
&mut self,
participant_id: &ParticipantId,
new_role: ParticipantRole,
) -> Result<()>
pub fn update_participant_role( &mut self, participant_id: &ParticipantId, new_role: ParticipantRole, ) -> Result<()>
Update participant role
Sourcepub fn suspend_participant(
&mut self,
participant_id: &ParticipantId,
reason: String,
duration: Duration,
) -> Result<()>
pub fn suspend_participant( &mut self, participant_id: &ParticipantId, reason: String, duration: Duration, ) -> Result<()>
Suspend a participant
Sourcepub fn update_threshold(&mut self, new_threshold: u16) -> Result<()>
pub fn update_threshold(&mut self, new_threshold: u16) -> Result<()>
Update threshold value
Sourcepub fn get_participants_by_role(
&self,
role_filter: RoleFilter,
) -> Vec<&ParticipantInfo>
pub fn get_participants_by_role( &self, role_filter: RoleFilter, ) -> Vec<&ParticipantInfo>
Get participants by role
Sourcepub fn get_hierarchy(&self) -> GroupHierarchy
pub fn get_hierarchy(&self) -> GroupHierarchy
Get group hierarchy (if part of a larger structure)
Sourcepub fn add_audit_entry(&mut self, entry: GroupAuditEntry)
pub fn add_audit_entry(&mut self, entry: GroupAuditEntry)
Add audit entry
Source§impl ThresholdGroup
impl ThresholdGroup
Sourcepub fn get_stats(&self) -> GroupStats
pub fn get_stats(&self) -> GroupStats
Get group statistics
Trait Implementations§
Source§impl Clone for ThresholdGroup
impl Clone for ThresholdGroup
Source§fn clone(&self) -> ThresholdGroup
fn clone(&self) -> ThresholdGroup
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source. Read more