abstract_sdk/
lib.rs

1#![doc(html_logo_url = "https://raw.githubusercontent.com/AbstractSDK/assets/mainline/logo.svg")]
2#![doc = include_str ! ("../README.md")]
3// #![doc(test(attr(warn(unused), deny(warnings), allow(unused_extern_crates, unused),)))]
4#![warn(missing_docs)]
5#![cfg_attr(all(coverage_nightly, test), feature(coverage_attribute))]
6
7/// Result returned by the Abstract SDK APIs and features.
8pub type AbstractSdkResult<T> = Result<T, crate::error::AbstractSdkError>;
9
10/// The Abstract Core crate which contains the state and message objects for the native contracts. Also contains helper objects.
11pub use abstract_std as std;
12
13mod account_action;
14mod ans_resolve;
15mod apis;
16
17pub mod base;
18pub mod cw_helpers;
19mod error;
20pub mod feature_objects;
21pub mod prelude;
22
23pub use account_action::AccountAction;
24pub use error::{AbstractSdkError, EndpointError};
25
26#[cfg(feature = "stargate")]
27pub use crate::apis::{authz::*, distribution::*, feegrant::*};
28pub use crate::{
29    apis::{
30        adapter::*, app::*, bank::*, execution::*, ibc::*, ibc_memo::*, modules::*, respond::*,
31        verify::*, version_registry::*,
32    },
33    features::AbstractNameServiceClient,
34};
35
36pub mod features {
37    //! # Feature traits
38    //! Features are traits that are implemented on the base layer of a module. Implementing a feature unlocks the API objects that are dependent on it.
39    //!
40    //! You can easily create and provide your own Adapter for other smart-contract developers by using these features as trait bounds.
41    pub use crate::base::features::*;
42}
43
44pub use ans_resolve::Resolve;
45
46/// Common state-store namespaces.
47pub mod namespaces {
48    pub use abstract_std::objects::storage_namespaces::*;
49}
50
51/// Abstract reserved registry entries.
52pub mod register {
53    pub use abstract_std::registry::*;
54}
55
56#[cfg(feature = "test-utils")]
57pub mod mock_module;