andromeda_std/ado_contract/
state.rs1#[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}