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