diff --git a/mithril-signer/src/database/record/signed_beacon_record.rs b/mithril-signer/src/database/record/signed_beacon_record.rs index 8ae2f897f1..65f74b948f 100644 --- a/mithril-signer/src/database/record/signed_beacon_record.rs +++ b/mithril-signer/src/database/record/signed_beacon_record.rs @@ -5,7 +5,7 @@ use mithril_common::entities::{Epoch, SignedEntityType}; use mithril_persistence::database::Hydrator; use mithril_persistence::sqlite::{HydrationError, Projection, SqLiteEntity}; -use crate::services::BeaconToSign; +use crate::entities::BeaconToSign; /// Database record of a beacon signed by the signer #[derive(Debug, Clone, PartialEq)] diff --git a/mithril-signer/src/database/repository/signed_beacon_repository.rs b/mithril-signer/src/database/repository/signed_beacon_repository.rs index 1d4aeef99f..1b5ace5236 100644 --- a/mithril-signer/src/database/repository/signed_beacon_repository.rs +++ b/mithril-signer/src/database/repository/signed_beacon_repository.rs @@ -9,7 +9,8 @@ use crate::database::query::{ DeleteSignedBeaconRecordQuery, GetSignedBeaconQuery, InsertSignedBeaconRecordQuery, }; use crate::database::record::SignedBeaconRecord; -use crate::services::{BeaconToSign, EpochPruningTask, SignedBeaconStore}; +use crate::entities::BeaconToSign; +use crate::services::{EpochPruningTask, SignedBeaconStore}; /// A [SignedBeaconStore] implementation using SQLite. pub struct SignedBeaconRepository { diff --git a/mithril-signer/src/entities/beacon_to_sign.rs b/mithril-signer/src/entities/beacon_to_sign.rs new file mode 100644 index 0000000000..4e283892af --- /dev/null +++ b/mithril-signer/src/entities/beacon_to_sign.rs @@ -0,0 +1,31 @@ +use chrono::{DateTime, Utc}; + +use mithril_common::entities::{Epoch, SignedEntityType}; + +/// Beacon to sign +#[derive(Debug, Clone, PartialEq)] +pub struct BeaconToSign { + /// The epoch when the beacon was issued + pub epoch: Epoch, + + /// The signed entity type to sign + pub signed_entity_type: SignedEntityType, + + /// Datetime when the beacon was initiated + pub initiated_at: DateTime, +} + +impl BeaconToSign { + /// Create a new `BeaconToSign` + pub fn new( + epoch: Epoch, + signed_entity_type: SignedEntityType, + initiated_at: DateTime, + ) -> Self { + Self { + epoch, + signed_entity_type, + initiated_at, + } + } +} diff --git a/mithril-signer/src/entities/mod.rs b/mithril-signer/src/entities/mod.rs index b807cde846..d873f48c1d 100644 --- a/mithril-signer/src/entities/mod.rs +++ b/mithril-signer/src/entities/mod.rs @@ -2,6 +2,8 @@ //! //! This module provide domain entities for the services & state machine. +mod beacon_to_sign; mod signer_epoch_settings; +pub use beacon_to_sign::*; pub use signer_epoch_settings::*; diff --git a/mithril-signer/src/runtime/runner.rs b/mithril-signer/src/runtime/runner.rs index e2822ecd56..61307f4da7 100644 --- a/mithril-signer/src/runtime/runner.rs +++ b/mithril-signer/src/runtime/runner.rs @@ -13,8 +13,8 @@ use mithril_common::StdResult; use mithril_persistence::store::StakeStorer; use crate::dependency_injection::SignerDependencyContainer; -use crate::entities::SignerEpochSettings; -use crate::services::{BeaconToSign, EpochService, MithrilProtocolInitializerBuilder}; +use crate::entities::{BeaconToSign, SignerEpochSettings}; +use crate::services::{EpochService, MithrilProtocolInitializerBuilder}; use crate::Configuration; /// This trait is mainly intended for mocking. diff --git a/mithril-signer/src/runtime/state_machine.rs b/mithril-signer/src/runtime/state_machine.rs index 9525270b90..4b119a58d9 100644 --- a/mithril-signer/src/runtime/state_machine.rs +++ b/mithril-signer/src/runtime/state_machine.rs @@ -7,8 +7,8 @@ use mithril_common::{ entities::{Epoch, SignedEntityType, TimePoint}, }; -use crate::services::BeaconToSign; -use crate::{entities::SignerEpochSettings, MetricsService}; +use crate::entities::{BeaconToSign, SignerEpochSettings}; +use crate::MetricsService; use super::{Runner, RuntimeError}; @@ -498,7 +498,6 @@ mod tests { use mithril_common::test_utils::fake_data; use crate::runtime::runner::MockSignerRunner; - use crate::services::BeaconToSign; use super::*; diff --git a/mithril-signer/src/services/certifier.rs b/mithril-signer/src/services/certifier.rs index 3b51a1cdd8..074e0b6b4e 100644 --- a/mithril-signer/src/services/certifier.rs +++ b/mithril-signer/src/services/certifier.rs @@ -1,23 +1,12 @@ use async_trait::async_trait; -use chrono::{DateTime, Utc}; +use chrono::Utc; use std::sync::Arc; -use mithril_common::entities::{Epoch, SignedEntityConfig, SignedEntityType, TimePoint}; +use mithril_common::entities::{SignedEntityConfig, SignedEntityType, TimePoint}; use mithril_common::signed_entity_type_lock::SignedEntityTypeLock; use mithril_common::{StdResult, TickerService}; -/// Beacon to sign -#[derive(Debug, Clone, PartialEq)] -pub struct BeaconToSign { - /// The epoch when the beacon was issued - pub epoch: Epoch, - - /// The signed entity type to sign - pub signed_entity_type: SignedEntityType, - - /// Datetime when the beacon was initiated - pub initiated_at: DateTime, -} +use crate::entities::BeaconToSign; /// Certifier Service /// @@ -114,11 +103,8 @@ impl CertifierService for SignerCertifierService { Ok(None) } else { let signed_entity_type = available_signed_entity_types[0].clone(); - let beacon_to_sign = BeaconToSign { - epoch: time_point.epoch, - signed_entity_type, - initiated_at: Utc::now(), - }; + let beacon_to_sign = + BeaconToSign::new(time_point.epoch, signed_entity_type, Utc::now()); Ok(Some(beacon_to_sign)) } @@ -134,7 +120,7 @@ impl CertifierService for SignerCertifierService { #[cfg(test)] mod tests { use mithril_common::entities::{ - CardanoTransactionsSigningConfig, ChainPoint, SignedEntityTypeDiscriminants, + CardanoTransactionsSigningConfig, ChainPoint, Epoch, SignedEntityTypeDiscriminants, }; use super::{tests::tests_tooling::*, *};