use cosmwasm_schema::{cw_serde, QueryResponses};
use cw20::Cw20ReceiveMsg;
use std::ops::RangeInclusive;
use crate::asset::AssetInfo;
pub const DEFAULT_TIMEOUT: u64 = 300;
pub const TIMEOUT_LIMITS: RangeInclusive<u64> = 120..=600;
#[cw_serde]
pub struct OutpostBurnParams {
pub terra_burn_addr: String,
pub old_astro_transfer_channel: String,
}
#[cw_serde]
pub struct Config {
pub old_astro_asset_info: AssetInfo,
pub new_astro_denom: String,
pub outpost_burn_params: Option<OutpostBurnParams>,
}
#[cw_serde]
pub struct InstantiateMsg {
pub old_astro_asset_info: AssetInfo,
pub new_astro_denom: String,
pub outpost_burn_params: Option<OutpostBurnParams>,
}
#[cw_serde]
pub struct Cw20HookMsg {
pub receiver: Option<String>,
}
#[cw_serde]
pub enum ExecuteMsg {
Convert { receiver: Option<String> },
Receive(Cw20ReceiveMsg),
TransferForBurning { timeout: Option<u64> },
Burn {},
}
#[cw_serde]
#[derive(QueryResponses)]
pub enum QueryMsg {
#[returns(Config)]
Config {},
}