defuse/contract/
config.rs1use std::collections::{HashMap, HashSet};
2
3use defuse_core::fees::FeesConfig;
4use near_sdk::AccountId;
5use serde::{Deserialize, Serialize};
6
7use super::Role;
8
9#[cfg_attr(feature = "abi", derive(::schemars::JsonSchema))]
10#[derive(Debug, Clone, Serialize, Deserialize)]
11pub struct DefuseConfig {
12 pub wnear_id: AccountId,
13 pub fees: FeesConfig,
14 #[serde(default)]
15 pub roles: RolesConfig,
16}
17
18#[cfg_attr(feature = "abi", derive(::schemars::JsonSchema))]
19#[derive(Debug, Clone, Default, Serialize, Deserialize)]
20pub struct RolesConfig {
21 #[serde(default)]
22 pub super_admins: HashSet<AccountId>,
23 #[serde(default)]
24 pub admins: HashMap<Role, HashSet<AccountId>>,
25 #[serde(default)]
26 pub grantees: HashMap<Role, HashSet<AccountId>>,
27}