pub struct Identifier {
pub known_events: Arc<KnownEvents>,
pub to_notify: Vec<SignedEventMessage>,
/* private fields */
}
Fields§
§known_events: Arc<KnownEvents>
§to_notify: Vec<SignedEventMessage>
Implementations§
Source§impl Identifier
impl Identifier
Sourcepub async fn broadcast_receipts(
&mut self,
dest_wit_ids: &[IdentifierPrefix],
) -> Result<(), BroadcastingError>
pub async fn broadcast_receipts( &mut self, dest_wit_ids: &[IdentifierPrefix], ) -> Result<(), BroadcastingError>
Send new receipts obtained via Self::finalize_query
to specified witnesses.
Returns number of new receipts sent per witness or first error.
Source§impl Identifier
impl Identifier
Sourcepub fn delegate(
&self,
delegated_event: &KeriEvent<KeyEvent>,
) -> Result<(KeriEvent<KeyEvent>, ExchangeMessage), MechanicsError>
pub fn delegate( &self, delegated_event: &KeriEvent<KeyEvent>, ) -> Result<(KeriEvent<KeyEvent>, ExchangeMessage), MechanicsError>
Generates delegating event (ixn) and exchange event that contains delegated event which will be send to delegate after ixn finalization.
Source§impl Identifier
impl Identifier
Sourcepub fn incept_group(
&self,
participants: Vec<IdentifierPrefix>,
signature_threshold: u64,
next_keys_threshold: Option<u64>,
initial_witness: Option<Vec<BasicPrefix>>,
witness_threshold: Option<u64>,
delegator: Option<IdentifierPrefix>,
) -> Result<(String, Vec<String>), MechanicsError>
pub fn incept_group( &self, participants: Vec<IdentifierPrefix>, signature_threshold: u64, next_keys_threshold: Option<u64>, initial_witness: Option<Vec<BasicPrefix>>, witness_threshold: Option<u64>, delegator: Option<IdentifierPrefix>, ) -> Result<(String, Vec<String>), MechanicsError>
Init group identifier
Returns serialized group icp and list of exchange messages to sign.
Exchanges are meant to be send to witness and forwarded to group
participants.
If delegator
parameter is provided, it will generate delegated
inception and append delegation request to exchange messages.
Sourcepub async fn finalize_group_incept(
&mut self,
group_event: &[u8],
sig: SelfSigningPrefix,
exchanges: Vec<(Vec<u8>, Signature)>,
) -> Result<IdentifierPrefix, MechanicsError>
pub async fn finalize_group_incept( &mut self, group_event: &[u8], sig: SelfSigningPrefix, exchanges: Vec<(Vec<u8>, Signature)>, ) -> Result<IdentifierPrefix, MechanicsError>
Finalizes group identifier.
Sourcepub async fn finalize_group_event(
&mut self,
group_event: &[u8],
sig: SelfSigningPrefix,
exchanges: Vec<(Vec<u8>, Signature)>,
) -> Result<(), MechanicsError>
pub async fn finalize_group_event( &mut self, group_event: &[u8], sig: SelfSigningPrefix, exchanges: Vec<(Vec<u8>, Signature)>, ) -> Result<(), MechanicsError>
Finalizes group event.
pub async fn finalize_exchange( &self, exchange: &[u8], exn_signature: Signature, data_signature: IndexedSignature, ) -> Result<(), MechanicsError>
Source§impl Identifier
impl Identifier
Sourcepub async fn rotate(
&self,
current_keys: Vec<BasicPrefix>,
new_next_keys: Vec<BasicPrefix>,
new_next_threshold: u64,
witness_to_add: Vec<LocationScheme>,
witness_to_remove: Vec<BasicPrefix>,
witness_threshold: u64,
) -> Result<String, MechanicsError>
pub async fn rotate( &self, current_keys: Vec<BasicPrefix>, new_next_keys: Vec<BasicPrefix>, new_next_threshold: u64, witness_to_add: Vec<LocationScheme>, witness_to_remove: Vec<BasicPrefix>, witness_threshold: u64, ) -> Result<String, MechanicsError>
Generate and return rotation event for Identifier
Sourcepub fn anchor(
&self,
payload: &[SelfAddressingIdentifier],
) -> Result<String, MechanicsError>
pub fn anchor( &self, payload: &[SelfAddressingIdentifier], ) -> Result<String, MechanicsError>
Generate and return interaction event for Identifier
pub fn anchor_with_seal( &self, seal_list: &[Seal], ) -> Result<KeriEvent<KeyEvent>, MechanicsError>
pub async fn finalize_rotate( &mut self, event: &[u8], sig: SelfSigningPrefix, ) -> Result<(), MechanicsError>
pub async fn finalize_anchor( &mut self, event: &[u8], sig: SelfSigningPrefix, ) -> Result<(), MechanicsError>
pub fn index_in_current_keys( &self, key_config: &KeyConfig, ) -> Result<usize, MechanicsError>
Source§impl Identifier
impl Identifier
pub async fn notify_witnesses(&mut self) -> Result<usize, MechanicsError>
Source§impl Identifier
impl Identifier
Sourcepub fn query_mailbox(
&self,
identifier: &IdentifierPrefix,
witnesses: &[BasicPrefix],
) -> Result<Vec<MailboxQuery>, ControllerError>
pub fn query_mailbox( &self, identifier: &IdentifierPrefix, witnesses: &[BasicPrefix], ) -> Result<Vec<MailboxQuery>, ControllerError>
Generates query message of route mbx
to query own identifier mailbox.
Sourcepub async fn finalize_query_mailbox(
&mut self,
queries: Vec<(MailboxQuery, SelfSigningPrefix)>,
) -> Result<Vec<ActionRequired>, ControllerError>
pub async fn finalize_query_mailbox( &mut self, queries: Vec<(MailboxQuery, SelfSigningPrefix)>, ) -> Result<Vec<ActionRequired>, ControllerError>
Joins query events with their signatures, sends it to witness and process its response. If user action is needed to finalize process, returns proper notification.
Source§impl Identifier
impl Identifier
Sourcepub fn incept_registry(
&mut self,
) -> Result<(IdentifierPrefix, TypedEvent<EventTypeTag, KeyEvent>), ControllerError>
pub fn incept_registry( &mut self, ) -> Result<(IdentifierPrefix, TypedEvent<EventTypeTag, KeyEvent>), ControllerError>
Generate vcp
event and ixn
event with seal to vcp
. To finalize
the process, ixn
need to be signed confirmed with finalize_event
function.
pub async fn finalize_incept_registry( &mut self, event: &[u8], sig: SelfSigningPrefix, ) -> Result<(), MechanicsError>
pub async fn notify_backers(&self) -> Result<(), MechanicsError>
Source§impl Identifier
impl Identifier
Sourcepub fn add_watcher(
&self,
watcher_id: IdentifierPrefix,
) -> Result<String, MechanicsError>
pub fn add_watcher( &self, watcher_id: IdentifierPrefix, ) -> Result<String, MechanicsError>
Generates reply event with end_role_add
route.
Sourcepub fn remove_watcher(
&self,
watcher_id: IdentifierPrefix,
) -> Result<String, MechanicsError>
pub fn remove_watcher( &self, watcher_id: IdentifierPrefix, ) -> Result<String, MechanicsError>
Generates reply event with end_role_cut
route.
pub async fn finalize_add_watcher( &self, event: &[u8], sig: SelfSigningPrefix, ) -> Result<(), MechanicsError>
Source§impl Identifier
impl Identifier
pub fn query_watchers( &self, about_who: &EventSeal, ) -> Result<Vec<QueryEvent>, ControllerError>
Sourcepub async fn finalize_query(
&self,
queries: Vec<(QueryEvent, SelfSigningPrefix)>,
) -> (QueryResponse, Vec<WatcherResponseError>)
pub async fn finalize_query( &self, queries: Vec<(QueryEvent, SelfSigningPrefix)>, ) -> (QueryResponse, Vec<WatcherResponseError>)
Joins query events with their signatures, sends it to recipient and process its response. Returns a tuple containing two elements: 1. A notification if any identifier’s KEL (Key Event Log) was updated. 2. A list of errors that occurred either during sending or on the recipient side.
pub fn query_full_log( &self, id: &IdentifierPrefix, watcher: IdentifierPrefix, ) -> Result<QueryEvent, ControllerError>
Source§impl Identifier
impl Identifier
pub fn sign_with_index( &self, signature: SelfSigningPrefix, key_index: u16, ) -> Result<Signature, ControllerError>
pub fn sign_data( &self, data: &[u8], signatures: &[SelfSigningPrefix], ) -> Result<Signature, ControllerError>
pub fn sign_to_cesr( &self, data: &str, signatures: &[SelfSigningPrefix], ) -> Result<String, ControllerError>
pub fn sign_with_index_to_cesr( &self, data: &str, signature: SelfSigningPrefix, key_index: u16, ) -> Result<String, ControllerError>
pub fn verify_from_cesr(&self, stream: &[u8]) -> Result<(), ControllerError>
Source§impl Identifier
impl Identifier
Sourcepub fn issue(
&self,
credential_digest: SelfAddressingIdentifier,
) -> Result<(IdentifierPrefix, TypedEvent<EventTypeTag, KeyEvent>), ControllerError>
pub fn issue( &self, credential_digest: SelfAddressingIdentifier, ) -> Result<(IdentifierPrefix, TypedEvent<EventTypeTag, KeyEvent>), ControllerError>
Generate iss
event and ixn
event with seal to iss
. To finalize
the process, ixn
need to be signed confirmed with finalize_event
function.
Sourcepub fn revoke(
&self,
credential_sai: &SelfAddressingIdentifier,
) -> Result<Vec<u8>, ControllerError>
pub fn revoke( &self, credential_sai: &SelfAddressingIdentifier, ) -> Result<Vec<u8>, ControllerError>
Generate rev
event and ixn
event with seal to rev
. To finalize
the process, ixn
need to be signed confirmed with finalize_event
function.
pub async fn finalize_issue( &mut self, event: &[u8], sig: SelfSigningPrefix, ) -> Result<(), MechanicsError>
pub async fn finalize_revoke( &mut self, event: &[u8], sig: SelfSigningPrefix, ) -> Result<(), MechanicsError>
pub fn query_tel( &self, registry_id: IdentifierPrefix, vc_identifier: IdentifierPrefix, ) -> Result<TelQueryEvent, ControllerError>
pub async fn finalize_query_tel( &self, qry: TelQueryEvent, sig: SelfSigningPrefix, ) -> Result<(), MechanicsError>
Source§impl Identifier
impl Identifier
pub fn new( id: IdentifierPrefix, registry_id: Option<IdentifierPrefix>, known_events: Arc<KnownEvents>, communication: Arc<Communication>, ) -> Self
pub async fn resolve_oobi(&self, oobi: &Oobi) -> Result<(), MechanicsError>
pub async fn send_oobi_to_watcher( &self, id: &IdentifierPrefix, oobi: &Oobi, ) -> Result<(), ControllerError>
pub fn id(&self) -> &IdentifierPrefix
pub fn registry_id(&self) -> Option<&IdentifierPrefix>
Sourcepub fn find_state(
&self,
id: &IdentifierPrefix,
) -> Result<IdentifierState, MechanicsError>
pub fn find_state( &self, id: &IdentifierPrefix, ) -> Result<IdentifierState, MechanicsError>
Returns accepted IdentifierState of identifier.
pub fn find_management_tel_state( &self, id: &IdentifierPrefix, ) -> Result<Option<ManagerTelState>, ControllerError>
pub fn find_vc_state( &self, vc_hash: &SelfAddressingIdentifier, ) -> Result<Option<TelState>, ControllerError>
pub fn current_public_keys(&self) -> Result<Vec<BasicPrefix>, ControllerError>
pub fn witnesses(&self) -> impl Iterator<Item = BasicPrefix>
pub fn watchers(&self) -> Result<Vec<IdentifierPrefix>, ControllerError>
Sourcepub fn get_own_kel(&self) -> Option<Vec<Notice>>
pub fn get_own_kel(&self) -> Option<Vec<Notice>>
Returns own identifier accepted Key Event Log
Sourcepub fn get_kel(&self, id: &IdentifierPrefix) -> Option<Vec<Notice>>
pub fn get_kel(&self, id: &IdentifierPrefix) -> Option<Vec<Notice>>
Returns identifier accepted Key Event Log
pub fn get_last_establishment_event_seal( &self, ) -> Result<EventSeal, ControllerError>
pub fn get_last_event_seal(&self) -> Result<EventSeal, MechanicsError>
Source§impl Identifier
impl Identifier
pub fn get_location( &self, identifier: &IdentifierPrefix, ) -> Result<Vec<LocationScheme>, OobiRetrieveError>
pub fn get_role_location( &self, id: &IdentifierPrefix, role: Role, ) -> Result<Vec<LocationScheme>, ControllerError>
pub fn get_end_role( &self, id: &IdentifierPrefix, role: Role, ) -> Result<Vec<EndRole>, ControllerError>
Auto Trait Implementations§
impl !Freeze for Identifier
impl !RefUnwindSafe for Identifier
impl Send for Identifier
impl Sync for Identifier
impl Unpin for Identifier
impl !UnwindSafe for Identifier
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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> 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out
indicating that a T
is niched.