Crate ink_lang_ir
source · [−]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
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.
An ink! event struct definition.
The unique ID of an ink! chain extension method.
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.
An ink! storage struct definition.
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.