#![doc(
html_logo_url = "https://use.ink/img/crate-docs/logo.png",
html_favicon_url = "https://use.ink/crate-docs/favicon.png"
)]
#![cfg_attr(not(feature = "std"), no_std)]
#[macro_use]
#[doc(hidden)]
pub mod option_info;
#[macro_use]
#[doc(hidden)]
pub mod result_info;
#[cfg_attr(not(feature = "show-codegen-docs"), doc(hidden))]
pub mod codegen;
pub use ink_env::reflect;
mod chain_extension;
mod contract_ref;
mod env_access;
mod message_builder;
pub use ink_env as env;
#[cfg(feature = "std")]
pub use ink_metadata as metadata;
pub use ink_prelude as prelude;
pub use ink_primitives as primitives;
pub use scale;
#[cfg(feature = "std")]
pub use scale_info;
pub use xcm;
pub extern crate polkavm_derive;
#[doc(hidden)]
pub use polkavm_derive::*;
pub mod storage {
pub mod traits {
pub use ink_macro::{
Storable,
StorableHint,
StorageKey,
StorageLayout,
};
pub use ink_storage::traits::*;
}
pub use ink_storage::{
Lazy,
Mapping,
StorageVec,
};
}
pub use self::{
chain_extension::{
ChainExtensionInstance,
IsResultType,
Output,
ValueReturned,
},
contract_ref::ToAddr,
env_access::EnvAccess,
prelude::IIP2_WILDCARD_COMPLEMENT_SELECTOR,
};
#[allow(unused)]
pub use ink_macro::chain_extension;
pub use ink_macro::{
blake2x256,
contract,
event,
scale_derive,
selector_bytes,
selector_id,
storage_item,
test,
trait_definition,
Event,
EventMetadata,
};
pub use ink_primitives::{
Address,
ConstructorResult,
LangError,
MessageResult,
SolBytes,
SolDecode,
SolEncode,
H160,
H256,
U256,
};
#[cfg(feature = "std")]
#[doc(hidden)]
pub use linkme;
#[cfg(feature = "std")]
use ink_metadata::EventSpec;
#[cfg(feature = "std")]
#[linkme::distributed_slice]
#[linkme(crate = linkme)]
pub static CONTRACT_EVENTS: [fn() -> EventSpec] = [..];
#[cfg(feature = "std")]
pub fn collect_events() -> Vec<EventSpec> {
CONTRACT_EVENTS.iter().map(|event| event()).collect()
}