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
7impl<'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}