neutron_sdk/query/
token_factory.rs

1use crate::{bindings::query::NeutronQuery, NeutronResult};
2use cosmwasm_std::Deps;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
7#[serde(rename_all = "snake_case")]
8pub struct FullDenomResponse {
9    pub denom: String,
10}
11
12#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
13#[serde(rename_all = "snake_case")]
14pub struct DenomAdminResponse {
15    pub admin: String,
16}
17
18#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, JsonSchema)]
19#[serde(rename_all = "snake_case")]
20pub struct BeforeSendHookResponse {
21    pub contract_addr: String,
22}
23
24pub fn query_full_denom(
25    deps: Deps<NeutronQuery>,
26    creator_addr: impl Into<String>,
27    subdenom: impl Into<String>,
28) -> NeutronResult<FullDenomResponse> {
29    let query = NeutronQuery::FullDenom {
30        creator_addr: creator_addr.into(),
31        subdenom: subdenom.into(),
32    };
33    Ok(deps.querier.query(&query.into())?)
34}
35
36pub fn query_denom_admin(
37    deps: Deps<NeutronQuery>,
38    subdenom: impl Into<String>,
39) -> NeutronResult<DenomAdminResponse> {
40    let query = NeutronQuery::DenomAdmin {
41        subdenom: subdenom.into(),
42    };
43    Ok(deps.querier.query(&query.into())?)
44}
45
46pub fn query_before_send_hook(
47    deps: Deps<NeutronQuery>,
48    denom: impl Into<String>,
49) -> NeutronResult<BeforeSendHookResponse> {
50    let query = NeutronQuery::BeforeSendHook {
51        denom: denom.into(),
52    };
53    Ok(deps.querier.query(&query.into())?)
54}