mithril_common/messages/
protocol_configuration.rs

1use std::collections::BTreeSet;
2
3use serde::{Deserialize, Serialize};
4
5use crate::entities::{
6    CardanoBlocksTransactionsSigningConfig, CardanoTransactionsSigningConfig, ProtocolParameters,
7    SignedEntityTypeDiscriminants,
8};
9
10/// ProtocolConfiguration represents the protocol configuration of an epoch
11#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
12pub struct ProtocolConfigurationMessage {
13    /// Protocol parameters
14    pub protocol_parameters: ProtocolParameters,
15
16    /// Cardano transactions signing configuration
17    #[serde(skip_serializing_if = "Option::is_none")]
18    pub cardano_transactions_signing_config: Option<CardanoTransactionsSigningConfig>,
19
20    /// Cardano blocks and transactions signing configuration
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub cardano_blocks_transactions_signing_config: Option<CardanoBlocksTransactionsSigningConfig>,
23
24    /// Aggregator enabled signed entity types
25    pub available_signed_entity_types: BTreeSet<SignedEntityTypeDiscriminants>,
26}