keri_core/event/sections/
mod.rs

1use crate::{prefix::BasicPrefix, state::WitnessConfig};
2use serde::{Deserialize, Serialize};
3
4pub mod key_config;
5pub mod seal;
6pub mod threshold;
7
8pub use key_config::KeyConfig;
9
10use self::threshold::SignatureThreshold;
11#[derive(
12    Serialize,
13    Deserialize,
14    Debug,
15    Clone,
16    PartialEq,
17    rkyv::Archive,
18    rkyv::Serialize,
19    rkyv::Deserialize,
20)]
21#[rkyv(derive(Debug))]
22pub struct RotationWitnessConfig {
23    #[serde(rename = "bt")]
24    pub tally: SignatureThreshold,
25
26    #[serde(rename = "br")]
27    pub prune: Vec<BasicPrefix>,
28
29    #[serde(rename = "ba")]
30    pub graft: Vec<BasicPrefix>,
31}
32
33#[derive(
34    Serialize,
35    Deserialize,
36    Debug,
37    Clone,
38    PartialEq,
39    rkyv::Archive,
40    rkyv::Serialize,
41    rkyv::Deserialize,
42)]
43#[rkyv(derive(Debug))]
44pub struct InceptionWitnessConfig {
45    #[serde(rename = "bt")]
46    pub tally: SignatureThreshold,
47
48    #[serde(rename = "b")]
49    pub initial_witnesses: Vec<BasicPrefix>,
50}
51
52impl Default for InceptionWitnessConfig {
53    fn default() -> Self {
54        Self {
55            tally: SignatureThreshold::Simple(0),
56            initial_witnesses: Default::default(),
57        }
58    }
59}
60
61impl From<InceptionWitnessConfig> for WitnessConfig {
62    fn from(iwc: InceptionWitnessConfig) -> Self {
63        Self {
64            tally: iwc.tally,
65            witnesses: iwc.initial_witnesses,
66        }
67    }
68}
69
70impl Default for RotationWitnessConfig {
71    fn default() -> Self {
72        Self {
73            tally: SignatureThreshold::Simple(0),
74            prune: Default::default(),
75            graft: Default::default(),
76        }
77    }
78}