fedimint_unknown_common/
config.rs

1use fedimint_core::core::ModuleKind;
2use fedimint_core::encoding::{Decodable, Encodable};
3use fedimint_core::plugin_types_trait_impl_config;
4use serde::{Deserialize, Serialize};
5
6use crate::UnknownCommonInit;
7
8/// Parameters necessary to generate this module's configuration
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct UnknownGenParams {
11    pub local: UnknownGenParamsLocal,
12    pub consensus: UnknownGenParamsConsensus,
13}
14
15/// Local parameters for config generation
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct UnknownGenParamsLocal;
18
19/// Consensus parameters for config generation
20#[derive(Debug, Clone, Serialize, Deserialize)]
21pub struct UnknownGenParamsConsensus;
22
23impl Default for UnknownGenParams {
24    fn default() -> Self {
25        Self {
26            local: UnknownGenParamsLocal,
27            consensus: UnknownGenParamsConsensus,
28        }
29    }
30}
31
32/// Contains all the configuration for the server
33#[derive(Clone, Debug, Serialize, Deserialize)]
34pub struct UnknownConfig {
35    pub local: UnknownConfigLocal,
36    pub private: UnknownConfigPrivate,
37    pub consensus: UnknownConfigConsensus,
38}
39
40/// Contains all the configuration for the client
41#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize, Encodable, Decodable, Hash)]
42pub struct UnknownClientConfig;
43
44/// Locally unencrypted config unique to each member
45#[derive(Clone, Debug, Serialize, Deserialize, Decodable, Encodable)]
46pub struct UnknownConfigLocal;
47
48/// Will be the same for every federation member
49#[derive(Clone, Debug, Serialize, Deserialize, Decodable, Encodable)]
50pub struct UnknownConfigConsensus;
51
52/// Will be encrypted and not shared such as private key material
53#[derive(Clone, Debug, Serialize, Deserialize)]
54pub struct UnknownConfigPrivate;
55
56// Wire together the configs for this module
57plugin_types_trait_impl_config!(
58    UnknownCommonInit,
59    UnknownGenParams,
60    UnknownGenParamsLocal,
61    UnknownGenParamsConsensus,
62    UnknownConfig,
63    UnknownConfigLocal,
64    UnknownConfigPrivate,
65    UnknownConfigConsensus,
66    UnknownClientConfig
67);