use cosmwasm_schema::cw_serde;
use cosmwasm_std::Uint128;
pub use osmosis_std::types::cosmos::bank::v1beta1::{DenomUnit, Metadata};
use crate::state::ModuleInstantiateCallback;
#[cw_serde]
pub struct InitialBalance {
pub amount: Uint128,
pub address: String,
}
#[cw_serde]
pub struct NewDenomMetadata {
pub name: String,
pub description: String,
pub symbol: String,
pub display: String,
pub additional_denom_units: Option<Vec<DenomUnit>>,
}
#[cw_serde]
pub struct NewTokenInfo {
pub token_issuer_code_id: u64,
pub subdenom: String,
pub metadata: Option<NewDenomMetadata>,
pub initial_balances: Vec<InitialBalance>,
pub initial_dao_balance: Option<Uint128>,
}
#[cw_serde]
pub struct TokenFactoryCallback {
pub denom: String,
pub token_contract: Option<String>,
pub module_instantiate_callback: Option<ModuleInstantiateCallback>,
}