pub mod state {
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::objects::fee::Fee;
use cosmwasm_std::Addr;
use cw_storage_plus::Item;
#[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq, JsonSchema)]
pub struct State {
pub liquidity_token_addr: Addr,
pub provider_addr: Addr,
}
pub const STATE: Item<State> = Item::new("\u{0}{5}state");
pub const FEE: Item<Fee> = Item::new("\u{0}{3}fee");
}
use crate::app::{self};
use cosmwasm_schema::QueryResponses;
use cosmwasm_std::Decimal;
use cw_asset::AssetUnchecked;
pub type ExecuteMsg = app::ExecuteMsg<EtfExecuteMsg>;
pub type QueryMsg = app::QueryMsg<EtfQueryMsg>;
impl app::AppExecuteMsg for EtfExecuteMsg {}
impl app::AppQueryMsg for EtfQueryMsg {}
#[cosmwasm_schema::cw_serde]
pub struct EtfInstantiateMsg {
pub token_code_id: u64,
pub fee: Decimal,
pub provider_addr: String,
pub token_name: Option<String>,
pub token_symbol: Option<String>,
}
#[cosmwasm_schema::cw_serde]
#[cfg_attr(feature = "boot", derive(boot_core::ExecuteFns))]
#[cfg_attr(feature = "boot", impl_into(ExecuteMsg))]
pub enum EtfExecuteMsg {
ProvideLiquidity { asset: AssetUnchecked },
SetFee { fee: Decimal },
}
#[cosmwasm_schema::cw_serde]
#[cfg_attr(feature = "boot", derive(boot_core::QueryFns))]
#[cfg_attr(feature = "boot", impl_into(QueryMsg))]
#[derive(QueryResponses)]
pub enum EtfQueryMsg {
#[returns(StateResponse)]
State {},
}
#[cosmwasm_schema::cw_serde]
pub enum DepositHookMsg {
WithdrawLiquidity {},
ProvideLiquidity {},
}
#[cosmwasm_schema::cw_serde]
pub struct StateResponse {
pub liquidity_token: String,
pub fee: Decimal,
}