mithril_signer/services/signer_registration/publisher/
http.rs1use anyhow::Context;
2
3use mithril_aggregator_client::{AggregatorHttpClient, query::PostRegisterSignerQuery};
4use mithril_common::{
5 StdResult,
6 entities::{Epoch, Signer},
7 messages::TryToMessageAdapter,
8};
9
10use crate::ToRegisterSignerMessageAdapter;
11use crate::services::SignerRegistrationPublisher;
12
13#[async_trait::async_trait]
14impl SignerRegistrationPublisher for AggregatorHttpClient {
15 async fn register_signer(&self, epoch: Epoch, signer: &Signer) -> StdResult<()> {
16 let register_signer_message =
17 ToRegisterSignerMessageAdapter::try_adapt((epoch, signer.to_owned()))
18 .with_context(|| "Failed to adapt message to register signer message")?;
19
20 self.send(PostRegisterSignerQuery::new(register_signer_message))
21 .await?;
22
23 Ok(())
24 }
25}