Skip to main content

anchor_token/
airdrop.rs

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/// We currently take no arguments for migrations
29#[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// We define a custom struct for each query response
42#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
43pub struct ConfigResponse {
44    pub owner: String,
45    pub anchor_token: String,
46}
47
48// We define a custom struct for each query response
49#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
50pub struct MerkleRootResponse {
51    pub stage: u8,
52    pub merkle_root: String,
53}
54
55// We define a custom struct for each query response
56#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
57pub struct LatestStageResponse {
58    pub latest_stage: u8,
59}
60
61// We define a custom struct for each query response
62#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
63pub struct IsClaimedResponse {
64    pub is_claimed: bool,
65}