abstract_os/native/
os_factory.rs1pub mod state {
11 use cosmwasm_std::Addr;
12 use cw_controllers::Admin;
13 use cw_storage_plus::Item;
14
15 use serde::{Deserialize, Serialize};
16
17 use crate::objects::{common_namespace::ADMIN_NAMESPACE, core::OsId};
18
19 #[cosmwasm_schema::cw_serde]
20 pub struct Config {
21 pub version_control_contract: Addr,
22 pub ans_host_contract: Addr,
23 pub module_factory_address: Addr,
24 pub subscription_address: Option<Addr>,
25 pub next_os_id: OsId,
26 }
27
28 #[derive(Serialize, Deserialize, Clone, Debug)]
29 pub struct Context {
30 pub os_manager_address: Addr,
31 }
32
33 pub const ADMIN: Admin = Admin::new(ADMIN_NAMESPACE);
34 pub const CONFIG: Item<Config> = Item::new("\u{0}{5}config");
35 pub const CONTEXT: Item<Context> = Item::new("\u{0}{6}context");
36}
37
38use crate::objects::{core::OsId, gov_type::GovernanceDetails};
39use cosmwasm_schema::QueryResponses;
40use cw20::Cw20ReceiveMsg;
41
42#[cosmwasm_schema::cw_serde]
44pub struct InstantiateMsg {
45 pub version_control_address: String,
47 pub ans_host_address: String,
49 pub module_factory_address: String,
51}
52
53#[cosmwasm_schema::cw_serde]
55#[cfg_attr(feature = "boot", derive(boot_core::ExecuteFns))]
56pub enum ExecuteMsg {
57 Receive(Cw20ReceiveMsg),
59 UpdateConfig {
61 admin: Option<String>,
63 ans_host_contract: Option<String>,
65 version_control_contract: Option<String>,
67 module_factory_address: Option<String>,
69 subscription_address: Option<String>,
71 },
72 CreateOs {
75 governance: GovernanceDetails,
79 name: String,
80 description: Option<String>,
81 link: Option<String>,
82 },
83}
84
85#[cosmwasm_schema::cw_serde]
86#[derive(QueryResponses)]
87#[cfg_attr(feature = "boot", derive(boot_core::QueryFns))]
88pub enum QueryMsg {
89 #[returns(ConfigResponse)]
90 Config {},
91}
92
93#[cosmwasm_schema::cw_serde]
95pub struct ConfigResponse {
96 pub owner: String,
97 pub ans_host_contract: String,
98 pub version_control_contract: String,
99 pub module_factory_address: String,
100 pub subscription_address: Option<String>,
101 pub next_os_id: OsId,
102}
103
104#[cosmwasm_schema::cw_serde]
106pub struct MigrateMsg {}