.. py:module:: ethereum.muir_glacier.vm Ethereum Virtual Machine (EVM) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. contents:: Table of Contents :backlinks: none :local: Introduction ------------ The abstract computer which runs the code stored in an `eth1spec.eth_types.Account`. .. only:: stage1 Subpackages ----------- .. toctree:: :titlesonly: :maxdepth: 3 instructions/index.rst precompiled_contracts/index.rst Submodules ---------- .. toctree:: :titlesonly: :maxdepth: 1 exceptions/index.rst gas/index.rst interpreter/index.rst memory/index.rst runtime/index.rst stack/index.rst Package Contents ---------------- Classes ~~~~~~~ .. autoapisummary:: ethereum.muir_glacier.vm.Environment ethereum.muir_glacier.vm.Message ethereum.muir_glacier.vm.Evm Package Details ---------------- Environment ~~~~~~~~~~~ Items external to the virtual machine itself, provided by the environment. .. class:: Environment .. py:attribute:: caller :annotation: :ethereum.muir_glacier.eth_types.Address .. py:attribute:: block_hashes :annotation: :List[ethereum.crypto.hash.Hash32] .. py:attribute:: origin :annotation: :ethereum.muir_glacier.eth_types.Address .. py:attribute:: coinbase :annotation: :ethereum.muir_glacier.eth_types.Address .. py:attribute:: number :annotation: :ethereum.base_types.Uint .. py:attribute:: gas_limit :annotation: :ethereum.base_types.Uint .. py:attribute:: gas_price :annotation: :ethereum.base_types.U256 .. py:attribute:: time :annotation: :ethereum.base_types.U256 .. py:attribute:: difficulty :annotation: :ethereum.base_types.Uint .. py:attribute:: state :annotation: :ethereum.muir_glacier.state.State .. py:attribute:: chain_id :annotation: :ethereum.base_types.Uint64 Message ~~~~~~~ Items that are used by contract creation or message call. .. class:: Message .. py:attribute:: caller :annotation: :ethereum.muir_glacier.eth_types.Address .. py:attribute:: target :annotation: :Union[ethereum.base_types.Bytes0, ethereum.muir_glacier.eth_types.Address] .. py:attribute:: current_target :annotation: :ethereum.muir_glacier.eth_types.Address .. py:attribute:: gas :annotation: :ethereum.base_types.U256 .. py:attribute:: value :annotation: :ethereum.base_types.U256 .. py:attribute:: data :annotation: :ethereum.base_types.Bytes .. py:attribute:: code_address :annotation: :Optional[ethereum.muir_glacier.eth_types.Address] .. py:attribute:: code :annotation: :ethereum.base_types.Bytes .. py:attribute:: depth :annotation: :ethereum.base_types.Uint .. py:attribute:: should_transfer_value :annotation: :bool .. py:attribute:: is_static :annotation: :bool Evm ~~~ The internal state of the virtual machine. .. class:: Evm .. py:attribute:: pc :annotation: :ethereum.base_types.Uint .. py:attribute:: stack :annotation: :List[ethereum.base_types.U256] .. py:attribute:: memory :annotation: :bytearray .. py:attribute:: code :annotation: :ethereum.base_types.Bytes .. py:attribute:: gas_left :annotation: :ethereum.base_types.U256 .. py:attribute:: env :annotation: :Environment .. py:attribute:: valid_jump_destinations :annotation: :Set[ethereum.base_types.Uint] .. py:attribute:: logs :annotation: :Tuple[ethereum.muir_glacier.eth_types.Log, Ellipsis] .. py:attribute:: refund_counter :annotation: :int .. py:attribute:: running :annotation: :bool .. py:attribute:: message :annotation: :Message .. py:attribute:: output :annotation: :ethereum.base_types.Bytes .. py:attribute:: accounts_to_delete :annotation: :Set[ethereum.muir_glacier.eth_types.Address] .. py:attribute:: touched_accounts :annotation: :Set[ethereum.muir_glacier.eth_types.Address] .. py:attribute:: has_erred :annotation: :bool .. py:attribute:: return_data :annotation: :ethereum.base_types.Bytes .. py:attribute:: error :annotation: :Optional[Exception]