Skip to main content

Module environment

Module environment 

Source
Expand description

The environment module provides abstractions and functionality for handling the Ethereum execution environment. This includes managing its state, interfacing with the EVM, and broadcasting events to subscribers. Other features include the ability to control block rate and gas settings and execute other database modifications from external agents.

The key integration for the environment is the Rust EVM revm. This is an implementation of the EVM in Rust that we utilize for processing raw smart contract bytecode.

Core structures:

  • Environment: Represents the Ethereum execution environment, allowing for its management (e.g., starting, stopping) and interfacing with agents.
  • EnvironmentParameters: Parameters necessary for creating or modifying an Environment.
  • [Instruction]: Enum indicating the type of instruction that is being sent to the EVM.

Modules§

instruction
This module contains the Instruction and Outcome enums that are used to communicate instructions and their outcomes between the middleware::ArbiterMiddleware and the Environment.

Structs§

Environment
Represents a sandboxed EVM environment.
EnvironmentBuilder
A builder for creating an Environment.
EnvironmentParameters
Parameters to create Environments with different settings.

Enums§

Broadcast
Enum representing the types of broadcasts that can be sent.