osmo_reflect/
msg.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4use cosmwasm_std::{Binary, CosmosMsg, QueryRequest, SubMsg};
5
6use osmo_bindings::{OsmosisMsg, OsmosisQuery};
7
8#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
9pub struct InstantiateMsg {}
10
11#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
12#[serde(rename_all = "snake_case")]
13pub enum ExecuteMsg {
14    ReflectMsg { msgs: Vec<CosmosMsg<OsmosisMsg>> },
15    ReflectSubMsg { msgs: Vec<SubMsg<OsmosisMsg>> },
16    ChangeOwner { owner: String },
17}
18
19#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
20#[serde(rename_all = "snake_case")]
21pub enum QueryMsg {
22    Owner {},
23    /// Queries the blockchain and returns the result untouched
24    Chain {
25        request: QueryRequest<OsmosisQuery>,
26    },
27    /// If there was a previous ReflectSubMsg with this ID, returns cosmwasm_std::Reply
28    SubMsgResult {
29        id: u64,
30    },
31}
32
33// We define a custom struct for each query response
34
35#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
36pub struct OwnerResponse {
37    pub owner: String,
38}
39
40#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
41#[serde(rename_all = "snake_case")]
42pub struct CapitalizedResponse {
43    pub text: String,
44}
45
46#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
47#[serde(rename_all = "snake_case")]
48pub struct ChainResponse {
49    pub data: Binary,
50}