abstract_adapter/endpoints/
module_ibc.rs1use crate::{state::ContractError, AdapterContract};
2use abstract_sdk::{base::ModuleIbcEndpoint, features::AbstractRegistryAccess};
3use abstract_std::{
4 objects::module::{ModuleInfo, ModuleVersion},
5 AbstractError, IBC_HOST,
6};
7use cosmwasm_std::Addr;
8
9impl<Error: ContractError, CustomInitMsg, CustomExecMsg, CustomQueryMsg, SudoMsg> ModuleIbcEndpoint
10 for AdapterContract<Error, CustomInitMsg, CustomExecMsg, CustomQueryMsg, SudoMsg>
11{
12 fn ibc_host(&self, deps: cosmwasm_std::Deps) -> Result<Addr, Self::Error> {
13 let registry_query_result = self
14 .abstract_registry(deps)?
15 .query_module(
16 ModuleInfo::from_id(
17 IBC_HOST,
18 ModuleVersion::from(abstract_ibc_host::contract::CONTRACT_VERSION),
19 )?,
20 &deps.querier,
21 )
22 .map_err(Into::<AbstractError>::into)?;
23
24 Ok(registry_query_result.reference.unwrap_native()?)
25 }
26}