Crate ink_env

source ·
Expand description

The ink_env utilities used to interoperate with the contract executor.

Mainly provides entities to work on a contract’s storage as well as high-level collections on top of those. Also provides environmental utilities, such as storage allocators, FFI to interface with FRAME contracts and a primitive blockchain emulator for simple off-chain testing.

Modules§

  • Utilities to call or instantiate contracts on the chain.
  • Definitions and utilities for calling chain extension methods.
  • Provides type definitions and traits for the built-in cryptographic hashes.
  • Operations on the off-chain testing environment.

Macros§

  • Appends a formatted string to the debug_message buffer if message recording is enabled in the contracts pallet and if the call is performed via RPC (not via an extrinsic). The debug_message buffer will be:
  • Appends a formatted string to the debug_message buffer, as per debug_print but with a newline appended.
  • Prepend contract message call with value transfer. Used for tests in off-chain environment.

Structs§

  • Flags used to change the behaviour of seal_call and seal_delegate_call.
  • Flags used by a contract to customize exit behaviour.

Enums§

  • The fundamental types of the default configuration.
  • Errors that can be encountered upon environmental interaction.
  • Placeholder for chains that have no defined chain extension.
  • Every error that can be returned to a contract when it calls any of the host functions.

Constants§

  • The capacity of the static buffer. Usually set to 16 kB. Can be modified by setting INK_STATIC_BUFFER_SIZE environmental variable.

Traits§

  • A trait to enforce that a type should be an Environment::AccountId.
  • Stores the used host environment type of the ink! smart contract.
  • Refers to the generated ink! smart contract reference type.
  • The environmental types usable by contracts defined with ink!.
  • Implemented by event types to guide the event topic serialization using the topics builder.
  • Allows to instantiate a type from its little-endian bytes representation.

Functions§

  • Returns the account ID of the executed contract.
  • Returns the balance of the executed contract.
  • Returns the current block number.
  • Returns the current block timestamp.
  • Tries to trigger a runtime dispatchable, i.e. an extrinsic from a pallet.
  • Returns the address of the caller of the executed contract.
  • Checks whether the caller of the current contract is the origin of the whole call stack.
  • Clears the contract’s storage entry under the given storage key.
  • Retrieves the code hash of the contract at the specified account id.
  • Checks whether there is a value stored under the given storage key in the contract’s storage.
  • Appends the given message to the debug message buffer.
  • Returns the execution input to the executed contract and decodes it as T.
  • Recovers the compressed ECDSA public key for given signature and message_hash, and stores the result in output.
  • Returns an Ethereum address from the ECDSA compressed public key.
  • Emits an event with the given event data.
  • Returns the amount of gas left for the contract execution.
  • Returns the value stored under the given storage key in the contract’s storage if any.
  • Conducts the crypto hash of the given input and stores the result in output.
  • Conducts the crypto hash of the given encoded input and stores the result in output.
  • Instantiates another contract.
  • Instantiates another contract.
  • Invokes a contract message and returns its result.
  • Invokes a contract message via delegate call and returns its result.
  • Invokes a contract message and returns its result.
  • Checks whether the specified account is a contract.
  • Adds a new delegate dependency lock to the contract.
  • Returns the minimum balance that is required for creating an account (i.e. the chain’s existential deposit).
  • Retrieves the code hash of the currently executing contract.
  • Returns the value back to the caller of the executed contract.
  • Replace the contract code at the specified address with new code.
  • Writes the value to the contract storage under the given storage key and returns the size of pre-existing value if any.
  • Verifies a sr25519 signature.
  • Removes the value at key, returning the previous value at key from storage.
  • Terminates the existence of the currently executed smart contract.
  • Transfers value from the contract to the destination account ID.
  • Returns the transferred value for the contract execution.
  • Unlocks the delegate dependency from the contract.
  • Returns the price for the specified amount of gas.
  • Execute an XCM message locally, using the contract’s address as the origin.
  • Send an XCM message, using the contract’s address as the origin.

Type Aliases§

  • The default gas type.
  • A result of environmental operations.