mithril_aggregator/entities/
aggregator_epoch_settings.rs

1use mithril_common::entities::{
2    CardanoBlocksTransactionsSigningConfig, CardanoTransactionsSigningConfig, ProtocolParameters,
3};
4
5/// AggregatorEpochSettings represents the settings of an epoch
6#[derive(Clone, Debug, PartialEq)]
7pub struct AggregatorEpochSettings {
8    /// Protocol parameters
9    pub protocol_parameters: ProtocolParameters,
10
11    /// Cardano transactions signing configuration
12    pub cardano_transactions_signing_config: Option<CardanoTransactionsSigningConfig>,
13
14    /// Cardano blocks and transactions signing configuration
15    pub cardano_blocks_transactions_signing_config: Option<CardanoBlocksTransactionsSigningConfig>,
16}
17
18#[cfg(test)]
19mod test_utils {
20    use std::collections::BTreeSet;
21
22    use mithril_common::entities::SignedEntityTypeDiscriminants;
23    use mithril_protocol_config::model::{
24        MithrilNetworkConfigurationForEpoch, SignedEntityTypeConfiguration,
25    };
26
27    use super::*;
28
29    impl AggregatorEpochSettings {
30        /// Convert this epoch setting into a [MithrilNetworkConfigurationForEpoch]
31        pub fn into_network_configuration_for_epoch(
32            self,
33            enabled_signed_entity_types: BTreeSet<SignedEntityTypeDiscriminants>,
34        ) -> MithrilNetworkConfigurationForEpoch {
35            MithrilNetworkConfigurationForEpoch {
36                protocol_parameters: self.protocol_parameters,
37                enabled_signed_entity_types,
38                signed_entity_types_config: SignedEntityTypeConfiguration {
39                    cardano_transactions: self.cardano_transactions_signing_config,
40                    cardano_blocks_transactions: self.cardano_blocks_transactions_signing_config,
41                },
42            }
43        }
44    }
45}