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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
// #![warn(missing_docs)]
// https://doc.rust-lang.org/rustdoc/how-to-write-documentation.html
//! # Abstract OS
//!
//! Abstract OS is the interface-defining crate to the Abstract OS smart-contract framework.
//!
//! ## Description
//! This crate provides the key utilities that are required to integrate with or write Abstract contracts.
//!
//! ## Messages
//! All interfacing message structs are defined here so they can be imported.
//! ```no_run
//! use abstract_os::manager::ExecuteMsg;
//! ```
//! ### Assets
//! [`cw-asset`](https://crates.io/crates/cw-asset) is used for asset-management.
//! If a message requests a String value for an Asset field then you need to provide the human-readable ans_host key.
//! The full list of supported assets and contracts is given [here](https://github.com/Abstract-OS/scripts/tree/main/resources/ans_host).
//! The contract will handel address retrieval internally.
//!
//! ## State
//! The internal state for each contract is also contained within this crate. This ensures that breaking changes to the internal state are easily spotted.
//! It also allows for tight and low-gas integration between contracts by performing raw queries on these states.
//! A contract's state object can be imported and used like:
//! ```ignore
//! use crate::manager::state::OS_ID
//! let os_id = OS_ID.query(querier, manager_address).unwrap();
//! ```
//! The internally stored objects are also contained within this package in [`crate::objects`].
//!
//! ## Names
//! Abstract contract names are used internally and for version management.
//! They are exported for ease of use:
//! ```no_run
//! use abstract_os::PROXY;
//! ```
pub extern crate abstract_ica;
pub mod base;
pub mod ibc_client;
pub mod ibc_host;
pub use registry::*;
pub mod abstract_token;
pub mod ans_host;
pub mod app;
pub mod dex;
pub mod etf;
pub mod extension;
pub mod manager;
pub mod module_factory;
pub mod objects;
pub mod os_factory;
pub mod proxy;
pub mod registry;
pub mod subscription;
pub mod tendermint_staking;
pub mod version_control;
pub mod vesting;