1use std::{error::Error, time::Duration};
2
3use hopr_crypto_types::prelude::Hash;
4pub use hopr_internal_types::prelude::WinningProbability;
5pub use hopr_primitive_types::balance::HoprBalance;
6
7#[derive(Clone, Copy, Debug, PartialEq, Eq)]
9pub struct DomainSeparators {
10 pub ledger: Hash,
12 pub safe_registry: Hash,
14 pub channel: Hash,
16}
17
18#[async_trait::async_trait]
20pub trait ChainValues {
21 type Error: Error + Send + Sync + 'static;
22 async fn domain_separators(&self) -> Result<DomainSeparators, Self::Error>;
24
25 async fn minimum_incoming_ticket_win_prob(&self) -> Result<WinningProbability, Self::Error>;
27 async fn minimum_ticket_price(&self) -> Result<HoprBalance, Self::Error>;
29
30 async fn channel_closure_notice_period(&self) -> Result<Duration, Self::Error>;
32}