Skip to content

Commit 5792cc0

Browse files
committed
refactor(aggregator) move HumanReadableProtocolConfiguration into tools
1 parent d1f1d55 commit 5792cc0

5 files changed

Lines changed: 73 additions & 71 deletions

File tree

mithril-aggregator/src/commands/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ use mithril_doc::{Documenter, GenerateDocCommands, StructDoc};
1515
use slog::{Level, Logger, debug};
1616
use std::{collections::HashMap, path::PathBuf};
1717

18-
pub use protocol_configuration_command::*;
19-
2018
use crate::{DefaultConfiguration, extract_all};
2119

2220
/// Main command selector

mithril-aggregator/src/commands/protocol_configuration_command.rs

Lines changed: 3 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use anyhow::Context;
22
use clap::{Parser, Subcommand};
33
use config::{ConfigBuilder, Map, Value, builder::DefaultState};
4-
use serde::{Deserialize, Serialize};
4+
use serde::Deserialize;
55
use slog::{Logger, debug};
66
use std::{
77
collections::{BTreeMap, BTreeSet, HashMap},
@@ -26,7 +26,7 @@ use mithril_common::{
2626
SignedEntityConfigValidator,
2727
SignedEntityTypeDiscriminants::{self},
2828
},
29-
messages::SignedEntityTypeDiscriminantsMessage::{self, Known},
29+
messages::SignedEntityTypeDiscriminantsMessage::Known,
3030
};
3131
use mithril_doc::{Documenter, StructDoc};
3232
use mithril_protocol_config::model::{
@@ -36,6 +36,7 @@ use mithril_protocol_config::model::{
3636
use crate::{
3737
ConfigurationSource, ExecutionEnvironment,
3838
configuration::ProtocolConfigurationReaderParameters, extract_all,
39+
tools::HumanReadableProtocolConfiguration,
3940
};
4041
use crate::{dependency_injection::DependenciesBuilder, tools::ProtocolConfigurationTools};
4142

@@ -92,65 +93,6 @@ impl ConfigurationSource for ProtocolConfigurationParametersConfiguration {
9293
}
9394
}
9495

95-
/// Human readable protocol configuration
96-
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
97-
pub struct HumanReadableProtocolConfiguration {
98-
pub epoch: Epoch,
99-
pub protocol_parameters: ProtocolParameters,
100-
pub cardano_transaction_signing_config: Option<CardanoTransactionsSigningConfig>,
101-
pub cardano_blocks_transactions_signing_config: Option<CardanoBlocksTransactionsSigningConfig>,
102-
pub enabled_signed_entity_types: BTreeSet<SignedEntityTypeDiscriminantsMessage>,
103-
}
104-
105-
impl HumanReadableProtocolConfiguration {
106-
pub fn new(
107-
epoch: Epoch,
108-
protocol_parameters: ProtocolParameters,
109-
cardano_transaction_signing_config: Option<CardanoTransactionsSigningConfig>,
110-
cardano_blocks_transactions_signing_config: Option<CardanoBlocksTransactionsSigningConfig>,
111-
enabled_signed_entity_types: BTreeSet<SignedEntityTypeDiscriminantsMessage>,
112-
) -> Self {
113-
HumanReadableProtocolConfiguration {
114-
epoch,
115-
protocol_parameters,
116-
cardano_transaction_signing_config,
117-
cardano_blocks_transactions_signing_config,
118-
enabled_signed_entity_types,
119-
}
120-
}
121-
122-
pub fn to_vec_human_readable_protocol_configuration(
123-
configs: ConfigurationResolverFromMarkers,
124-
) -> Vec<HumanReadableProtocolConfiguration> {
125-
let mut human_readable_protocol_configurations = Vec::new();
126-
for (epoch, config) in configs.markers {
127-
human_readable_protocol_configurations.push(
128-
HumanReadableProtocolConfiguration::from_protocol_configuration_for_epoch(
129-
epoch, config,
130-
),
131-
);
132-
}
133-
human_readable_protocol_configurations
134-
}
135-
136-
fn from_protocol_configuration_for_epoch(
137-
epoch: Epoch,
138-
config: ProtocolConfigurationForEpoch,
139-
) -> HumanReadableProtocolConfiguration {
140-
HumanReadableProtocolConfiguration {
141-
epoch,
142-
protocol_parameters: config.protocol_parameters,
143-
enabled_signed_entity_types: config
144-
.enabled_signed_entity_types
145-
.into_iter()
146-
.map(Into::into)
147-
.collect(),
148-
cardano_transaction_signing_config: config.cardano_transactions,
149-
cardano_blocks_transactions_signing_config: config.cardano_blocks_transactions,
150-
}
151-
}
152-
}
153-
15496
/// Protocol configuration command
15597
#[derive(Parser, Debug, Clone)]
15698
pub struct ProtocolConfigurationCommand {

mithril-aggregator/src/test/double/dummies.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use mithril_common::{
1010
test::double::{Dummy, fake_data},
1111
};
1212

13-
use crate::commands::HumanReadableProtocolConfiguration;
13+
use crate::tools::HumanReadableProtocolConfiguration;
1414

1515
mod record {
1616
use mithril_common::entities::{ProtocolMessage, SignedEntityType};

mithril-aggregator/src/tools/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ pub use era::EraTools;
1414
#[cfg(feature = "future_snark")]
1515
pub use genesis::GenesisSignedPayload;
1616
pub use genesis::GenesisTools;
17-
pub use protocol_configuration::ProtocolConfigurationTools;
17+
pub use protocol_configuration::{HumanReadableProtocolConfiguration, ProtocolConfigurationTools};
1818
pub use single_signature_authenticator::*;
1919
pub use vacuum_tracker::VacuumTracker;
2020

mithril-aggregator/src/tools/protocol_configuration.rs

Lines changed: 68 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1-
use std::collections::BTreeMap;
1+
use std::collections::{BTreeMap, BTreeSet};
22

33
use anyhow::Context;
44
use mithril_cardano_node_chain::entities::{TxDatumBuilder, TxDatumFieldValue};
55
use mithril_common::{
6-
StdResult, crypto_helper::ProtocolConfigurationMarkersSigner, entities::Epoch,
6+
StdResult,
7+
crypto_helper::ProtocolConfigurationMarkersSigner,
8+
entities::{
9+
CardanoBlocksTransactionsSigningConfig, CardanoTransactionsSigningConfig, Epoch,
10+
ProtocolParameters,
11+
},
712
messages::SignedEntityTypeDiscriminantsMessage,
813
};
914

@@ -14,13 +19,11 @@ use mithril_protocol_config::{
1419
},
1520
model::{ConfigurationResolverFromMarkers, ProtocolConfigurationForEpoch},
1621
};
22+
use serde::{Deserialize, Serialize};
1723
use slog::{Logger, info, warn};
1824
use thiserror::Error;
1925

20-
use crate::{
21-
commands::HumanReadableProtocolConfiguration,
22-
dependency_injection::ProtocolConfigurationCommandDependenciesContainer,
23-
};
26+
use crate::dependency_injection::ProtocolConfigurationCommandDependenciesContainer;
2427

2528
const EPOCH_OFFSET: u64 = 3;
2629
const DATUM_MAX_SIZE_KB: usize = 10;
@@ -51,6 +54,65 @@ pub struct ProtocolConfigurationTools {
5154
logger: Logger,
5255
}
5356

57+
/// Human readable protocol configuration
58+
#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)]
59+
pub struct HumanReadableProtocolConfiguration {
60+
pub epoch: Epoch,
61+
pub protocol_parameters: ProtocolParameters,
62+
pub cardano_transaction_signing_config: Option<CardanoTransactionsSigningConfig>,
63+
pub cardano_blocks_transactions_signing_config: Option<CardanoBlocksTransactionsSigningConfig>,
64+
pub enabled_signed_entity_types: BTreeSet<SignedEntityTypeDiscriminantsMessage>,
65+
}
66+
67+
impl HumanReadableProtocolConfiguration {
68+
pub fn new(
69+
epoch: Epoch,
70+
protocol_parameters: ProtocolParameters,
71+
cardano_transaction_signing_config: Option<CardanoTransactionsSigningConfig>,
72+
cardano_blocks_transactions_signing_config: Option<CardanoBlocksTransactionsSigningConfig>,
73+
enabled_signed_entity_types: BTreeSet<SignedEntityTypeDiscriminantsMessage>,
74+
) -> Self {
75+
HumanReadableProtocolConfiguration {
76+
epoch,
77+
protocol_parameters,
78+
cardano_transaction_signing_config,
79+
cardano_blocks_transactions_signing_config,
80+
enabled_signed_entity_types,
81+
}
82+
}
83+
84+
pub fn to_vec_human_readable_protocol_configuration(
85+
configs: ConfigurationResolverFromMarkers,
86+
) -> Vec<HumanReadableProtocolConfiguration> {
87+
let mut human_readable_protocol_configurations = Vec::new();
88+
for (epoch, config) in configs.markers {
89+
human_readable_protocol_configurations.push(
90+
HumanReadableProtocolConfiguration::from_protocol_configuration_for_epoch(
91+
epoch, config,
92+
),
93+
);
94+
}
95+
human_readable_protocol_configurations
96+
}
97+
98+
fn from_protocol_configuration_for_epoch(
99+
epoch: Epoch,
100+
config: ProtocolConfigurationForEpoch,
101+
) -> HumanReadableProtocolConfiguration {
102+
HumanReadableProtocolConfiguration {
103+
epoch,
104+
protocol_parameters: config.protocol_parameters,
105+
enabled_signed_entity_types: config
106+
.enabled_signed_entity_types
107+
.into_iter()
108+
.map(Into::into)
109+
.collect(),
110+
cardano_transaction_signing_config: config.cardano_transactions,
111+
cardano_blocks_transactions_signing_config: config.cardano_blocks_transactions,
112+
}
113+
}
114+
}
115+
54116
impl ProtocolConfigurationTools {
55117
/// Create a new instance of the ProtocolConfigurationTools.
56118
pub fn new(configuration: ProtocolConfigurationToolsConfiguration, logger: Logger) -> Self {

0 commit comments

Comments
 (0)