astro_satellite_package/
lib.rs1use cosmwasm_schema::{cw_serde, QueryResponses};
2use cosmwasm_std::{Binary, CosmosMsg, CustomMsg, Empty};
3
4#[cw_serde]
5pub struct InstantiateMsg {
6 pub owner: String,
8 pub astro_denom: String,
10 pub transfer_channel: String,
12 pub main_controller: String,
14 pub main_maker: String,
16 pub timeout: u64,
18 pub max_signal_outage: u64,
20 pub emergency_owner: String,
22}
23
24#[cw_serde]
25pub struct UpdateConfigMsg {
26 pub astro_denom: Option<String>,
27 pub gov_channel: Option<String>,
28 pub main_controller_addr: Option<String>,
29 pub main_maker: Option<String>,
30 pub transfer_channel: Option<String>,
31 pub accept_new_connections: Option<bool>,
32 pub timeout: Option<u64>,
33 pub max_signal_outage: Option<u64>,
34 pub emergency_owner: Option<String>,
35}
36
37#[cw_serde]
38pub enum ExecuteMsg<M: CustomMsg = Empty> {
39 TransferAstro {},
40 UpdateConfig(UpdateConfigMsg),
41 CheckMessages(Vec<CosmosMsg<M>>),
42 ExecuteFromMultisig(Vec<CosmosMsg<M>>),
43 CheckMessagesPassed {},
44 ProposeNewOwner {
48 owner: String,
50 expires_in: u64,
52 },
53 DropOwnershipProposal {},
57 ClaimOwnership {},
61 SetEmergencyOwnerAsAdmin {},
63}
64
65#[cw_serde]
66pub enum SatelliteMsg {
67 ExecuteProposal { id: u64, messages: Vec<CosmosMsg> },
68 Heartbeat {},
69}
70
71#[cw_serde]
74pub enum ProposalStatus {
75 Active,
76 Passed,
77 Rejected,
78 InProgress,
79 Failed,
80 Executed,
81 Expired,
82}
83
84#[cw_serde]
85#[derive(QueryResponses)]
86pub enum QueryMsg {
87 #[returns(ProposalStatus)]
88 ProposalState { id: u64 },
89}
90
91#[cw_serde]
95pub enum IbcAckResult {
96 Ok(Binary),
97 Error(String),
98}