1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm::types::HumanAddr;
5
6#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema)]
7pub struct InitialBalance {
8 pub address: HumanAddr,
9 pub amount: String,
10}
11
12#[derive(Serialize, Deserialize, JsonSchema)]
13pub struct InitMsg {
14 pub name: String,
15 pub symbol: String,
16 pub decimals: u8,
17 pub initial_balances: Vec<InitialBalance>,
18}
19
20#[derive(Serialize, Deserialize, JsonSchema)]
21#[serde(rename_all = "lowercase")]
22pub enum HandleMsg {
23 Approve {
24 spender: HumanAddr,
25 amount: String,
26 },
27 Transfer {
28 recipient: HumanAddr,
29 amount: String,
30 },
31 TransferFrom {
32 owner: HumanAddr,
33 recipient: HumanAddr,
34 amount: String,
35 },
36}
37
38#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
39#[serde(rename_all = "lowercase")]
40pub enum QueryMsg {
41 Balance {
42 address: HumanAddr,
43 },
44 Allowance {
45 owner: HumanAddr,
46 spender: HumanAddr,
47 },
48}
49
50#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema)]
51pub struct BalanceResponse {
52 pub balance: String,
53}
54
55#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema)]
56pub struct AllowanceResponse {
57 pub allowance: String,
58}