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§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ThresholdGroup
impl Debug for ThresholdGroup
Source§impl<'de> Deserialize<'de> for ThresholdGroup
impl<'de> Deserialize<'de> for ThresholdGroup
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ThresholdGroup
impl RefUnwindSafe for ThresholdGroup
impl Send for ThresholdGroup
impl Sync for ThresholdGroup
impl Unpin for ThresholdGroup
impl UnsafeUnpin for ThresholdGroup
impl UnwindSafe for ThresholdGroup
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.