andromeda_std/ado_base/
mod.rs

1pub mod ado_type;
2pub mod app_contract;
3pub mod block_height;
4#[cfg(any(feature = "module_hooks", feature = "modules"))]
5pub mod hooks;
6pub mod kernel_address;
7pub mod modules;
8pub mod ownership;
9pub mod permissioning;
10pub mod version;
11
12pub mod withdraw;
13use crate::amp::{messages::AMPPkt, AndrAddr};
14use cosmwasm_schema::{cw_serde, QueryResponses};
15use cosmwasm_std::Addr;
16pub use modules::Module;
17
18#[cfg(feature = "modules")]
19use cosmwasm_std::Uint64;
20
21use self::ownership::OwnershipMessage;
22use self::permissioning::PermissioningMessage;
23
24#[cw_serde]
25pub struct InstantiateMsg {
26    pub ado_type: String,
27    pub ado_version: String,
28    pub kernel_address: String,
29    pub owner: Option<String>,
30}
31
32#[cw_serde]
33#[serde(rename_all = "snake_case")]
34pub struct MigrateMsg {}
35
36#[cw_serde]
37pub enum AndromedaMsg {
38    Ownership(OwnershipMessage),
39    UpdateAppContract {
40        address: String,
41    },
42    UpdateKernelAddress {
43        address: Addr,
44    },
45    #[cfg(feature = "modules")]
46    RegisterModule {
47        module: Module,
48    },
49    #[cfg(feature = "modules")]
50    DeregisterModule {
51        module_idx: Uint64,
52    },
53    #[cfg(feature = "modules")]
54    AlterModule {
55        module_idx: Uint64,
56        module: Module,
57    },
58    #[serde(rename = "amp_receive")]
59    AMPReceive(AMPPkt),
60    Permissioning(PermissioningMessage),
61}
62
63#[cw_serde]
64#[derive(QueryResponses)]
65pub enum AndromedaQuery {
66    #[returns(self::ownership::ContractOwnerResponse)]
67    Owner {},
68    #[returns(self::ownership::ContractPotentialOwnerResponse)]
69    OwnershipRequest {},
70    #[returns(self::ado_type::TypeResponse)]
71    Type {},
72    #[returns(self::kernel_address::KernelAddressResponse)]
73    KernelAddress {},
74    #[returns(self::ownership::PublisherResponse)]
75    OriginalPublisher {},
76    #[returns(self::block_height::BlockHeightResponse)]
77    BlockHeightUponCreation {},
78    #[returns(self::version::VersionResponse)]
79    Version {},
80    #[returns(self::app_contract::AppContractResponse)]
81    AppContract {},
82    #[cfg(feature = "modules")]
83    #[returns(Module)]
84    Module { id: Uint64 },
85    #[cfg(feature = "modules")]
86    #[returns(Vec<String>)]
87    ModuleIds {},
88    #[returns(Vec<self::permissioning::PermissionInfo>)]
89    Permissions {
90        actor: AndrAddr,
91        limit: Option<u32>,
92        start_after: Option<String>,
93    },
94    #[returns(Vec<self::permissioning::PermissionedActionsResponse>)]
95    PermissionedActions {},
96}