1use cosmwasm_schema::{cw_serde, QueryResponses};
2use cosmwasm_std::{Addr, Coin, Decimal, Uint128};
3
4use crate::Status;
5
6#[cw_serde]
7#[derive(QueryResponses)]
8pub enum QueryMsg {
9 #[returns(ConfigResponse)]
10 Config {},
11
12 #[returns(SaleResponse)]
13 Sale { idx: Uint128 },
14
15 #[returns(SalesResponse)]
16 Sales {
17 start_after: Option<Uint128>,
18 limit: Option<u8>,
19 },
20}
21
22#[cw_serde]
23pub struct ConfigResponse {
24 pub owner: Addr,
25 pub deposit: Coin,
26 pub orca_code_id: u64,
27 pub orca_admin: Option<Addr>,
28 pub orca_owner: Option<Addr>,
29 pub sale_fee: Decimal,
30 pub withdrawal_fee: Decimal,
31 pub fee_address: Addr,
32 pub stable_address: Addr,
33 pub stable_factor: Decimal,
34}
35
36#[cw_serde]
37pub struct SaleResponse {
38 pub idx: Uint128,
39 pub title: String,
40 pub description: String,
41 pub url: String,
42 pub price: Decimal,
43 pub owner: Addr,
44 pub beneficiary: Addr,
45 pub amount: Coin,
46 pub status: Status,
47 pub orca_address: Addr,
48 pub orca_config: kujira_orca::ConfigResponse,
49}
50
51#[cw_serde]
52pub struct SalesResponse {
53 pub sales: Vec<SaleResponse>,
54}