cw_core_interface/
voting.rs1use cosmwasm_std::Uint128;
2use cw2::ContractVersion;
3use cw_core_macros::{active_query, token_query, voting_query};
4use schemars::JsonSchema;
5use serde::{Deserialize, Serialize};
6
7#[token_query]
8#[voting_query]
9#[active_query]
10#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
11#[serde(rename_all = "snake_case")]
12pub enum Query {}
13
14#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
15pub struct VotingPowerAtHeightResponse {
16 pub power: Uint128,
17 pub height: u64,
18}
19
20#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
21pub struct TotalPowerAtHeightResponse {
22 pub power: Uint128,
23 pub height: u64,
24}
25
26#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
27pub struct InfoResponse {
28 pub info: ContractVersion,
29}
30
31#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
32pub struct IsActiveResponse {
33 pub active: bool,
34}
35
36mod tests {
37 #[test]
40 fn test_macro_expansion() {
41 use cw_core_macros::{active_query, token_query, voting_query};
42 use schemars::JsonSchema;
43 use serde::{Deserialize, Serialize};
44
45 #[token_query]
46 #[voting_query]
47 #[active_query]
48 #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
49 #[serde(rename_all = "snake_case")]
50 enum Query {}
51
52 let query = Query::TokenContract {};
53
54 match query {
55 Query::TokenContract {} => (),
56 Query::VotingPowerAtHeight { .. } => (),
57 Query::TotalPowerAtHeight { .. } => (),
58 Query::IsActive {} => (),
59 Query::Info {} => (),
60 }
61 }
62}