andromeda_std/ado_contract/
state.rs

1#[cfg(feature = "modules")]
2use crate::ado_base::modules::Module;
3use cosmwasm_std::Addr;
4use cw_storage_plus::{Item, Map};
5
6pub struct ADOContract<'a> {
7    pub(crate) owner: Item<'a, Addr>,
8    pub(crate) original_publisher: Item<'a, Addr>,
9    pub(crate) block_height: Item<'a, u64>,
10    pub(crate) ado_type: Item<'a, String>,
11    pub(crate) app_contract: Item<'a, Addr>,
12    pub(crate) kernel_address: Item<'a, Addr>,
13    pub(crate) permissioned_actions: Map<'a, String, bool>,
14    #[cfg(feature = "modules")]
15    pub(crate) module_info: Map<'a, &'a str, Module>,
16    #[cfg(feature = "modules")]
17    pub(crate) module_idx: Item<'a, u64>,
18}
19
20impl<'a> Default for ADOContract<'a> {
21    fn default() -> Self {
22        ADOContract {
23            owner: Item::new("owner"),
24            original_publisher: Item::new("original_publisher"),
25            block_height: Item::new("block_height"),
26            ado_type: Item::new("ado_type"),
27            app_contract: Item::new("app_contract"),
28            kernel_address: Item::new("kernel_address"),
29            permissioned_actions: Map::new("andr_permissioned_actions"),
30            #[cfg(feature = "modules")]
31            module_info: Map::new("andr_modules"),
32            #[cfg(feature = "modules")]
33            module_idx: Item::new("andr_module_idx"),
34        }
35    }
36}