#![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)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(
missing_docs,
bad_style,
bare_trait_objects,
improper_ctypes,
non_shorthand_field_patterns,
no_mangle_generic_items,
overflowing_literals,
path_statements,
patterns_in_fns_without_body,
unconditional_recursion,
unused_allocation,
unused_comparisons,
unused_parens,
while_true,
trivial_casts,
trivial_numeric_casts,
unused_extern_crates
)]
#[const_env::from_env("INK_STATIC_BUFFER_SIZE")]
pub const BUFFER_SIZE: usize = 16384;
#[cfg(target_arch = "riscv64")]
#[panic_handler]
fn panic(info: &core::panic::PanicInfo) -> ! {
self::return_value(
ReturnFlags::REVERT,
&ink_prelude::format!("{}", info.message()).as_bytes(),
);
}
#[cfg(not(any(feature = "std", feature = "no-allocator")))]
extern crate ink_allocator;
mod api;
mod backend;
pub mod call;
pub mod chain_extension;
mod engine;
mod error;
#[doc(hidden)]
pub mod event;
pub mod hash;
#[cfg(test)]
mod tests;
#[cfg(any(feature = "std", test, doc))]
#[doc(inline)]
pub use self::engine::off_chain::test_api as test;
use self::backend::{
EnvBackend,
TypedEnvBackend,
};
pub use self::{
api::*,
error::{
Error,
Result,
},
event::Event,
types::{
AccountIdGuard,
Balance,
BlockNumber,
CodecAsType,
DefaultEnvironment,
Environment,
FromLittleEndian,
Gas,
NoChainExtension,
Timestamp,
},
};
#[cfg(feature = "unstable-hostfn")]
use ink_primitives::Clear;
pub use ink_primitives::{
contract::{
ContractEnv,
ContractReference,
ContractReverseReference,
},
reflect,
reflect::{
DecodeDispatch,
DispatchError,
},
types,
};
#[doc(inline)]
pub use pallet_revive_uapi::{
CallFlags,
ReturnErrorCode,
ReturnFlags,
};