Ethereum Virtual Machine (EVM)

Introduction

The abstract computer which runs the code stored in an .fork_types.Account.

Subpackages

Submodules

Package Contents

Classes

Environment

Items external to the virtual machine itself, provided by the environment.

Message

Items that are used by contract creation or message call.

Evm

The internal state of the virtual machine.

Package Details

Environment

Items external to the virtual machine itself, provided by the environment.

class Environment
caller :ethereum.spurious_dragon.fork_types.Address
block_hashes :List[ethereum.crypto.hash.Hash32]
origin :ethereum.spurious_dragon.fork_types.Address
coinbase :ethereum.spurious_dragon.fork_types.Address
number :ethereum.base_types.Uint
gas_limit :ethereum.base_types.Uint
gas_price :ethereum.base_types.Uint
time :ethereum.base_types.U256
difficulty :ethereum.base_types.Uint
state :ethereum.spurious_dragon.state.State
traces :List[dict]

Message

Items that are used by contract creation or message call.

class Message
caller :ethereum.spurious_dragon.fork_types.Address
target :Union[ethereum.base_types.Bytes0, ethereum.spurious_dragon.fork_types.Address]
current_target :ethereum.spurious_dragon.fork_types.Address
gas :ethereum.base_types.Uint
value :ethereum.base_types.U256
data :ethereum.base_types.Bytes
code_address :Optional[ethereum.spurious_dragon.fork_types.Address]
code :ethereum.base_types.Bytes
depth :ethereum.base_types.Uint
should_transfer_value :bool
parent_evm :Optional[Evm]

Evm

The internal state of the virtual machine.

class Evm
pc :ethereum.base_types.Uint
stack :List[ethereum.base_types.U256]
memory :bytearray
code :ethereum.base_types.Bytes
gas_left :ethereum.base_types.Uint
env :Environment
valid_jump_destinations :Set[ethereum.base_types.Uint]
logs :Tuple[ethereum.spurious_dragon.fork_types.Log, Ellipsis]
refund_counter :ethereum.base_types.U256
running :bool
message :Message
output :ethereum.base_types.Bytes
accounts_to_delete :Set[ethereum.spurious_dragon.fork_types.Address]
touched_accounts :Set[ethereum.spurious_dragon.fork_types.Address]
error :Optional[Exception]