1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::Uint128;
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
7pub struct InstantiateMsg {
8 pub owner: String,
9 pub anchor_token: String,
10}
11
12#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
13#[serde(rename_all = "snake_case")]
14pub enum ExecuteMsg {
15 UpdateConfig {
16 owner: Option<String>,
17 },
18 RegisterMerkleRoot {
19 merkle_root: String,
20 },
21 Claim {
22 stage: u8,
23 amount: Uint128,
24 proof: Vec<String>,
25 },
26}
27
28#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
30pub struct MigrateMsg {}
31
32#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
33#[serde(rename_all = "snake_case")]
34pub enum QueryMsg {
35 Config {},
36 MerkleRoot { stage: u8 },
37 LatestStage {},
38 IsClaimed { stage: u8, address: String },
39}
40
41#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
43pub struct ConfigResponse {
44 pub owner: String,
45 pub anchor_token: String,
46}
47
48#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
50pub struct MerkleRootResponse {
51 pub stage: u8,
52 pub merkle_root: String,
53}
54
55#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
57pub struct LatestStageResponse {
58 pub latest_stage: u8,
59}
60
61#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
63pub struct IsClaimedResponse {
64 pub is_claimed: bool,
65}