komple_framework_permission_module/
state.rs

1use cosmwasm_schema::cw_serde;
2
3use cosmwasm_std::Addr;
4use cw_storage_plus::{Item, Map};
5
6use komple_framework_types::modules::permission::{
7    MODULE_PERMISSIONS_NAMESPACE, PERMISSIONS_NAMESPACE, PERMISSION_ID_NAMESPACE,
8    PERMISSION_TO_REGISTER_NAMESPACE,
9};
10use komple_framework_types::shared::{
11    CONFIG_NAMESPACE, EXECUTE_LOCK_NAMESPACE, OPERATORS_NAMESPACE, PARENT_ADDR_NAMESPACE,
12};
13
14#[cw_serde]
15pub struct Config {
16    pub admin: Addr,
17}
18pub const CONFIG: Item<Config> = Item::new(CONFIG_NAMESPACE);
19
20/// Hub module address.
21pub const HUB_ADDR: Item<Addr> = Item::new(PARENT_ADDR_NAMESPACE);
22
23/// List of permissions that are set to a module.
24pub const MODULE_PERMISSIONS: Map<&str, Vec<String>> = Map::new(MODULE_PERMISSIONS_NAMESPACE);
25
26/// Operators of this contract.
27pub const OPERATORS: Item<Vec<Addr>> = Item::new(OPERATORS_NAMESPACE);
28
29/// Permission name to register. This is utilized in the reply handler of this contract.
30pub const PERMISSION_TO_REGISTER: Item<String> = Item::new(PERMISSION_TO_REGISTER_NAMESPACE);
31
32/// ID used for the permission registration purposes.
33pub const PERMISSION_ID: Item<u64> = Item::new(PERMISSION_ID_NAMESPACE);
34
35/// Addresses of the registered permissions.
36pub const PERMISSIONS: Map<&str, Addr> = Map::new(PERMISSIONS_NAMESPACE);
37
38/// Lock for the execute entry point.
39pub const EXECUTE_LOCK: Item<bool> = Item::new(EXECUTE_LOCK_NAMESPACE);