1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::Uint128;
5
6#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema)]
7pub struct InitialBalance {
8 pub address: String,
9 pub amount: Uint128,
10}
11
12#[derive(Serialize, Deserialize, JsonSchema)]
13pub struct InstantiateMsg {
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 = "snake_case")]
22pub enum ExecuteMsg {
23 Approve {
24 spender: String,
25 amount: Uint128,
26 },
27 Transfer {
28 recipient: String,
29 amount: Uint128,
30 },
31 TransferFrom {
32 owner: String,
33 recipient: String,
34 amount: Uint128,
35 },
36 Burn {
37 amount: Uint128,
38 },
39}
40
41#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
42#[serde(rename_all = "snake_case")]
43pub enum QueryMsg {
44 Balance { address: String },
45 Allowance { owner: String, spender: String },
46}
47
48#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema)]
49pub struct BalanceResponse {
50 pub balance: Uint128,
51}
52
53#[derive(Serialize, Deserialize, Clone, PartialEq, JsonSchema)]
54pub struct AllowanceResponse {
55 pub allowance: Uint128,
56}