hopr_transport_protocol/
config.rs1use hopr_primitive_types::prelude::Balance;
2use serde::{Deserialize, Serialize};
3use serde_with::{serde_as, DisplayFromStr};
4use validator::Validate;
5
6#[serde_as]
8#[derive(Debug, smart_default::SmartDefault, Serialize, Deserialize, Validate, Copy, Clone, PartialEq)]
9#[serde(deny_unknown_fields)]
10pub struct ProtocolConfig {
11 #[validate(range(min = 0.0, max = 1.0))]
14 pub outgoing_ticket_winning_prob: Option<f64>,
15 #[serde_as(as = "Option<DisplayFromStr>")]
16 pub outgoing_ticket_price: Option<Balance>,
18 #[serde(default)]
20 pub heartbeat: crate::heartbeat::config::HeartbeatProtocolConfig,
21 #[serde(default)]
23 pub ticket_aggregation: crate::ticket_aggregation::config::TicketAggregationProtocolConfig,
24}