mithril_signer/entities/
signer_epoch_settings.rs

1use mithril_common::entities::{
2    CardanoTransactionsSigningConfig, Epoch, ProtocolParameters, Signer,
3};
4
5/// SignerEpochSettings represents the settings of an epoch
6#[derive(Clone, Debug, PartialEq)]
7pub struct SignerEpochSettings {
8    /// Current Epoch
9    pub epoch: Epoch,
10
11    /// Registration protocol parameters
12    pub registration_protocol_parameters: ProtocolParameters,
13
14    /// Current Signers
15    pub current_signers: Vec<Signer>,
16
17    /// Signers that will be able to sign on the next epoch
18    pub next_signers: Vec<Signer>,
19
20    /// Cardano transactions signing configuration for the current epoch
21    pub cardano_transactions_signing_config: Option<CardanoTransactionsSigningConfig>,
22}
23
24#[cfg(test)]
25impl mithril_common::test::double::Dummy for SignerEpochSettings {
26    /// Create a dummy `SignerEpochSettings`
27    fn dummy() -> SignerEpochSettings {
28        use mithril_common::test::double::fake_data;
29
30        // Beacon
31        let beacon = fake_data::beacon();
32
33        // Registration protocol parameters
34        let registration_protocol_parameters = fake_data::protocol_parameters();
35
36        // Signers
37        let signers = fake_data::signers(5);
38        let current_signers = signers[1..3].to_vec();
39        let next_signers = signers[2..5].to_vec();
40
41        // Cardano transactions signing configuration
42        let cardano_transactions_signing_config = Some(CardanoTransactionsSigningConfig::dummy());
43
44        // Signer Epoch settings
45        SignerEpochSettings {
46            epoch: beacon.epoch,
47            registration_protocol_parameters,
48            current_signers,
49            next_signers,
50            cardano_transactions_signing_config,
51        }
52    }
53}