keri_core/event/sections/
mod.rs1use 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}