andromeda_std/ado_base/
mod.rs1pub 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}