desmos_bindings/tokenfactory/
querier.rs

1//! Contains a querier to query data from the Desmos x/tokenfactory module.
2
3use crate::tokenfactory::types::*;
4use cosmwasm_std::{Empty, QuerierWrapper, StdResult};
5
6/// Querier allows to query data from the Desmos x/tokenfactory module.
7pub struct TokenfactoryQuerier<'a> {
8    querier: crate::tokenfactory::types::TokenfactoryQuerier<'a, Empty>,
9}
10
11impl<'a> TokenfactoryQuerier<'a> {
12    /// Create a new [TokenfactoryQuerier]
13    ///
14    /// # Example
15    /// ```
16    /// use cosmwasm_std::{DepsMut, MessageInfo};
17    /// use desmos_bindings::tokenfactory::querier::TokenfactoryQuerier;
18    ///
19    /// pub fn contract_action(deps: DepsMut, _: MessageInfo) {
20    ///     let querier = TokenfactoryQuerier::new(&deps.querier);
21    ///     let response = querier.query_subspace_denoms(1);
22    /// }
23    /// ```
24    pub fn new(querier: &'a QuerierWrapper<'a, Empty>) -> Self {
25        Self {
26            querier: crate::tokenfactory::types::TokenfactoryQuerier::new(querier),
27        }
28    }
29}
30
31impl<'a> TokenfactoryQuerier<'a> {
32    /// Queries all the denoms created by the given subspace.
33    ///
34    /// * `subspace_id` - Id of the subspace to query the managed denoms for.
35    pub fn query_subspace_denoms(
36        &self,
37        subspace_id: u64,
38    ) -> StdResult<QuerySubspaceDenomsResponse> {
39        self.querier.subspace_denoms(subspace_id)
40    }
41}
42
43#[cfg(test)]
44mod tests {
45    use super::*;
46    use crate::mocks::mock_queriers::mock_desmos_dependencies;
47    use crate::tokenfactory::mocks::MockTokenfactoryQueries;
48
49    #[test]
50    fn test_query_subspace_denoms() {
51        let owned_deps = mock_desmos_dependencies();
52        let deps = owned_deps.as_ref();
53        let querier = TokenfactoryQuerier::new(&deps.querier);
54        let response = querier.query_subspace_denoms(1).unwrap();
55        let expected = MockTokenfactoryQueries::get_mocked_subspace_denoms_response();
56        assert_eq!(expected, response);
57    }
58}