1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//! # Abstract Standalone
//!
//! `abstract_std::standalone` implements shared functionality that's useful for creating new Abstract standalone modules.
//!
//! ## Description
//! An Abstract standalone contract is a contract that is controlled by abstract account, but cannot perform actions on a [proxy](crate::proxy) contract.
use crate::objects::{ans_host::AnsHost, version_control::VersionControlContract};

use cosmwasm_std::Addr;

/// Data required for the `StandaloneContract::instantiate` function.
#[cosmwasm_schema::cw_serde]
pub struct StandaloneInstantiateMsg {
    pub ans_host_address: String,
    pub version_control_address: String,
}

/// Contains the abstract infrastructure addresses needed the APIs.
#[cosmwasm_schema::cw_serde]
pub struct StandaloneState {
    pub proxy_address: Addr,
    /// AnsHost contract struct (address)
    pub ans_host: AnsHost,
    /// Used to verify requests
    pub version_control: VersionControlContract,
    /// Used to determine if this standalone is migratable
    pub is_migratable: bool,
}