Expand description
The ink! intermediate representation (IR) and abstractions.
This module defines everything the ink! procedural macro needs in order to parse, analyze and generate code for ink! smart contracts.
The entry point for every ink! smart contract is the
Contract
with its Config
provided
in the initial invocation at #[ink::contract(... configuration ...)]
.
The ink! IR tries to stay close to the original Rust syntactic structure.
All ink! definitions of an ink! smart contract are always defined within
a so-called Rust inline module (mod my_module { ... items ... }
).
Therefore all ink! definition are found and accessed using the
ItemMod
data structure.
Modules§
- Types and abstractions for ink! definitions that require custom syntax.
- Marker types and definitions.
Macros§
Structs§
- Computes the BLAKE2b-256 bit hash of a string or byte string literal.
- Wrapper for a callable that adds its composed selector.
- An ink! chain extension.
- An ink! chain extension method.
- The ink! configuration.
- An ink! constructor definition.
- An ink! contract definition consisting of the ink! configuration and module.
- A checked ink! event with its configuration.
- The unique ID of an chain extension.
- A checked ink! trait definition without its configuration.
- The ink! test with all required information.
- A checked ink! trait definition without its configuration.
- A checked ink! message of an ink! trait definition.
- Iterator over the input parameters of an ink! message or constructor.
- An ink! implementation block.
- The ink! module.
- Iterator yielding all ink! constructor within a source ink!
ir::ItemImpl
. - Iterator yielding all ink! event definitions within the ink!
ItemMod
. - Iterator over all the ink! trait items of an ink! trait definition.
- Iterator yielding all ink! implementation block definitions within the ink!
ItemMod
. - Iterator yielding all ink! messages within a source ink!
ir::ItemImpl
. - An ink! message definition.
- An ink! namespace applicable to a trait implementation block.
- The selector of an ink! dispatchable.
- The selector ID of an ink! dispatchable.
- The signature topic argument of an event variant.
- An ink! storage struct definition.
- A checked ink! storage item with its configuration.
Enums§
- The kind of externally callable smart contract entity.
- An item within an ink! implementation block.
- An ink! specific item.
- An ink! item within an ink! trait definition.
- An item in the root of the ink! module (
ir::ItemMod
). - The receiver of an ink! message.
- The visibility of an ink! message or constructor.
Traits§
- An ink! callable.
- Used to convert literal values into their hex representations for code generation.
- An extension trait for
syn::Attribute
in order to query for documentation.
Functions§
- Computes the BLAKE-2b 256-bit hash for the given input and stores it in output.