provwasm_tutorial/
msg.rs

1use cosmwasm_std::Decimal;
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5use crate::state::State;
6
7/// A message sent to initialize the contract state.
8#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
9pub struct InitMsg {
10    pub contract_name: String,
11    pub purchase_denom: String,
12    pub merchant_address: String,
13    pub fee_percent: Decimal,
14}
15
16/// A message sent to transfer funds and collect fees for a purchase.
17#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
18#[serde(rename_all = "snake_case")]
19pub enum ExecuteMsg {
20    Purchase { id: String },
21}
22
23/// Migrate the contract.
24#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
25#[serde(rename_all = "snake_case")]
26pub struct MigrateMsg {}
27
28/// A message sent to query contract config state.
29#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
30#[serde(rename_all = "snake_case")]
31pub enum QueryMsg {
32    QueryRequest {},
33}
34
35/// A type alias for contract state.
36pub type QueryResponse = State;
37
38/// A message sent to update the scope_id
39#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
40#[serde(rename_all = "snake_case")]
41pub enum MetadataMsg {
42    ScopeUpdate { scope_id: String },
43}