abstract_std/objects/
module_factory.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use cosmwasm_std::{Addr, Api, Env};

use crate::{native_addrs, AbstractResult};

/// Store the Module Factory contract.
#[cosmwasm_schema::cw_serde]
pub struct ModuleFactoryContract {
    /// Address of the module factory contract
    pub address: Addr,
}

impl ModuleFactoryContract {
    /// Retrieve address of the Version Control
    pub fn new(api: &dyn Api, env: &Env) -> AbstractResult<Self> {
        let hrp = native_addrs::hrp_from_env(env);
        let address = api.addr_humanize(&native_addrs::module_factory_address(hrp, api)?)?;
        Ok(Self { address })
    }
}