|
@ -218,7 +218,7 @@ impl Actor { |
|
|
&mut self, |
|
|
&mut self, |
|
|
msg: GetAnnouncement, |
|
|
msg: GetAnnouncement, |
|
|
_ctx: &mut xtra::Context<Self>, |
|
|
_ctx: &mut xtra::Context<Self>, |
|
|
) -> Option<Announcement> { |
|
|
) -> Result<Announcement, NoAnnouncement> { |
|
|
self.announcements |
|
|
self.announcements |
|
|
.get_key_value(&msg.0) |
|
|
.get_key_value(&msg.0) |
|
|
.map(|(id, (time, nonce_pks))| Announcement { |
|
|
.map(|(id, (time, nonce_pks))| Announcement { |
|
@ -226,6 +226,7 @@ impl Actor { |
|
|
expected_outcome_time: *time, |
|
|
expected_outcome_time: *time, |
|
|
nonce_pks: nonce_pks.clone(), |
|
|
nonce_pks: nonce_pks.clone(), |
|
|
}) |
|
|
}) |
|
|
|
|
|
.ok_or(NoAnnouncement(msg.0)) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
fn handle_new_announcement_fetched( |
|
|
fn handle_new_announcement_fetched( |
|
@ -243,6 +244,10 @@ impl Actor { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, thiserror::Error)] |
|
|
|
|
|
#[error("Announcement {0} not found")] |
|
|
|
|
|
pub struct NoAnnouncement(pub BitMexPriceEventId); |
|
|
|
|
|
|
|
|
#[async_trait] |
|
|
#[async_trait] |
|
|
impl xtra::Handler<NewAttestationFetched> for Actor { |
|
|
impl xtra::Handler<NewAttestationFetched> for Actor { |
|
|
async fn handle(&mut self, msg: NewAttestationFetched, _ctx: &mut xtra::Context<Self>) { |
|
|
async fn handle(&mut self, msg: NewAttestationFetched, _ctx: &mut xtra::Context<Self>) { |
|
|