abstract_add_on/
query.rs

1use abstract_os::add_on::{AddOnConfigResponse, BaseQueryMsg};
2use cosmwasm_std::{to_binary, Binary, Deps, Env, StdResult};
3use cw_controllers::AdminResponse;
4
5use crate::state::AddOnContract;
6
7/// Where we dispatch the queries for the AddOnContract
8/// These BaseQueryMsg declarations can be found in `abstract_os::common_module::add_on_msg`
9impl<'a> AddOnContract<'a> {
10    pub fn query(&self, deps: Deps, _env: Env, query: BaseQueryMsg) -> StdResult<Binary> {
11        match query {
12            BaseQueryMsg::Config {} => to_binary(&self.dapp_config(deps)?),
13            BaseQueryMsg::Admin {} => to_binary(&self.admin(deps)?),
14        }
15    }
16
17    fn dapp_config(&self, deps: Deps) -> StdResult<AddOnConfigResponse> {
18        let state = self.base_state.load(deps.storage)?;
19        let admin = self.admin.get(deps)?.unwrap();
20        Ok(AddOnConfigResponse {
21            proxy_address: state.proxy_address,
22            memory_address: state.memory.address,
23            manager_address: admin,
24        })
25    }
26
27    fn admin(&self, deps: Deps) -> StdResult<AdminResponse> {
28        self.admin.query_admin(deps)
29    }
30}