Skip to main content

keri_controller/
mailbox_updating.rs

1// use super::{error::ControllerError, identifier_controller::IdentifierController};
2use keri_core::{
3    event::KeyEvent, event_message::msg::KeriEvent, mailbox::exchange::ExchangeMessage,
4    query::mailbox::QueryTopics,
5};
6
7#[derive(Default, Debug, Clone)]
8/// Struct for tracking what was the last indexes of processed mailbox messages.
9/// Events in mailbox aren't removed after getting them, so it prevents
10/// processing the same event multiple times.
11pub struct MailboxReminder {
12    pub receipt: usize,
13    pub multisig: usize,
14    pub delegate: usize,
15}
16
17impl MailboxReminder {
18    pub fn to_query_topics(&self) -> QueryTopics {
19        QueryTopics {
20            credential: 0,
21            receipt: self.receipt,
22            replay: 0,
23            multisig: self.multisig,
24            delegate: self.delegate,
25            reply: 0,
26        }
27    }
28}
29
30#[derive(Debug, serde::Serialize, serde::Deserialize)]
31pub enum ActionRequired {
32    MultisigRequest(KeriEvent<KeyEvent>, ExchangeMessage),
33    /// Contains delegating event and exchange message that will be send to
34    /// delegate after delegating event confirmation.
35    DelegationRequest(KeriEvent<KeyEvent>, ExchangeMessage),
36}