|
1 |
| -use archway_bindings::Coins; |
| 1 | +use archway_bindings::{ |
| 2 | + types::{gov, rewards}, |
| 3 | + Coins, |
| 4 | +}; |
| 5 | +use cosmwasm_schema::{cw_serde, QueryResponses}; |
2 | 6 | use cosmwasm_std::Addr;
|
3 |
| -use schemars::JsonSchema; |
4 |
| -use serde::{Deserialize, Serialize}; |
5 | 7 |
|
6 |
| -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] |
| 8 | +#[cw_serde] |
7 | 9 | pub struct InstantiateMsg {
|
8 | 10 | pub count: i32,
|
9 | 11 | }
|
10 | 12 |
|
11 |
| -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] |
12 |
| -#[serde(rename_all = "snake_case")] |
| 13 | +#[cw_serde] |
13 | 14 | pub enum ExecuteMsg {
|
14 | 15 | Increment {},
|
15 | 16 | Reset { count: i32 },
|
16 | 17 | UpdateRewardsAddress { rewards_address: Option<Addr> },
|
17 | 18 | WithdrawRewards {},
|
18 | 19 | }
|
19 | 20 |
|
20 |
| -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] |
21 |
| -#[serde(rename_all = "snake_case")] |
| 21 | +#[cw_serde] |
| 22 | +#[derive(QueryResponses)] |
22 | 23 | pub enum QueryMsg {
|
23 |
| - // GetCount returns the current count as a json-encoded number |
| 24 | + #[returns(CountResponse)] |
24 | 25 | GetCount {},
|
| 26 | + #[returns(rewards::ContractMetadataResponse)] |
25 | 27 | Metadata { contract_address: Option<Addr> },
|
| 28 | + #[returns(OutstandingRewardsResponse)] |
26 | 29 | OutstandingRewards {},
|
| 30 | + #[returns(gov::VoteResponse)] |
27 | 31 | GovVote { proposal_id: u64, voter: Addr },
|
28 | 32 | }
|
29 | 33 |
|
30 |
| -// We define a custom struct for each query response |
31 |
| -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] |
| 34 | +#[cw_serde] |
32 | 35 | pub struct CountResponse {
|
33 | 36 | pub count: i32,
|
34 | 37 | }
|
35 | 38 |
|
36 |
| -#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)] |
| 39 | +#[cw_serde] |
37 | 40 | pub struct OutstandingRewardsResponse {
|
38 | 41 | pub rewards_balance: Coins,
|
39 | 42 | pub total_records: u64,
|
|
0 commit comments