Crate ink

source ·


pub use ink_env as env;
pub use ink_metadata as metadata;
pub use ink_prelude as prelude;
pub use ink_primitives as primitives;


Definitions and utilities for ink! smart contract static reflection.


Computes and expands into the BLAKE2b 256-bit hash of the string input.
Computes the ink! selector of the string and expands into its byte representation.
Computes the ink! selector of the string and expands into its u32 representation.


The API behind the self.env() and Self::env() syntax in ink!.
Represents some abstract value that is returned by a function. Currently acts as a placeholder.


An error emitted by the smart contracting language.


Trait implemented by chain extensions.
Only implemented for ValueReturned.
Implemented by contracts that are compiled as dependencies.

Attribute Macros

Defines the interface for a chain extension.
Entry point for writing ink! smart contracts.
Prepares the type to be fully compatible and usable with the storage. It implements all necessary traits and calculates the storage key for types. Packed types don’t have a storage key, but non-packed types (like Mapping, Lazy etc.) require calculating the storage key during compilation.
Defines a unit test that makes use of ink!’s off-chain testing capabilities.
Marks trait definitions to ink! as special ink! trait definitions.