defuse/contract/
config.rs

1use 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}