gmsol_timelock/
roles.rs

1/// Timelock Admin.
2pub const TIMELOCK_ADMIN: &str = "TIMELOCK_ADMIN";
3
4/// Timelock Keeper.
5pub const TIMELOCK_KEEPER: &str = "TIMELOCK_KEEPER";
6
7/// Timelocked prefix.
8pub const TIMELOCKED: &str = "__TLD_";
9
10/// Admin role name.
11pub const ADMIN: &str = "ADMIN";
12
13/// Timelocked admin.
14pub const TIMELOCKED_ADMIN: &str = "__TLD_ADMIN";
15
16/// Timelocked market keeper.
17pub const TIMELOCKED_MARKET_KEEPER: &str = "__TLD_MARKET_KEEPER";
18
19/// Get timelocked role.
20pub fn timelocked_role(role: &str) -> String {
21    [TIMELOCKED, role].concat()
22}
23
24#[cfg(test)]
25mod tests {
26    use gmsol_store::states::RoleKey;
27
28    use super::*;
29
30    #[test]
31    fn validate_timelocked_admin() {
32        assert_eq!(TIMELOCKED_ADMIN, timelocked_role(ADMIN));
33    }
34
35    #[test]
36    fn validate_timelocked_market_keeper() {
37        assert_eq!(
38            TIMELOCKED_MARKET_KEEPER,
39            timelocked_role(RoleKey::MARKET_KEEPER)
40        );
41    }
42}