:mod:`ethereum.vm` ================== .. py:module:: ethereum.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`. Submodules ---------- .. toctree:: :titlesonly: :maxdepth: 1 error/index.rst gas/index.rst instructions/index.rst interpreter/index.rst ops/index.rst stack/index.rst Package Contents ---------------- Classes ~~~~~~~ .. autoapisummary:: ethereum.vm.Environment ethereum.vm.Evm Package Details ---------------- Environment ~~~~~~~~~~~ Items external to the virtual machine itself, provided by the environment. .. class:: Environment .. attribute:: caller :annotation: :ethereum.eth_types.Address .. attribute:: block_hashes :annotation: :List[ethereum.eth_types.Hash32] .. attribute:: origin :annotation: :ethereum.eth_types.Address .. attribute:: coinbase :annotation: :ethereum.eth_types.Address .. attribute:: number :annotation: :ethereum.eth_types.Uint .. attribute:: gas_limit :annotation: :ethereum.eth_types.Uint .. attribute:: gas_price :annotation: :ethereum.eth_types.U256 .. attribute:: time :annotation: :ethereum.eth_types.U256 .. attribute:: difficulty :annotation: :ethereum.eth_types.Uint .. attribute:: state :annotation: :ethereum.eth_types.State Evm ~~~ The internal state of the virtual machine. .. class:: Evm .. attribute:: pc :annotation: :ethereum.eth_types.Uint .. attribute:: stack :annotation: :List[ethereum.eth_types.U256] .. attribute:: memory :annotation: :bytearray .. attribute:: code :annotation: :bytes .. attribute:: gas_left :annotation: :ethereum.eth_types.U256 .. attribute:: current :annotation: :ethereum.eth_types.Address .. attribute:: caller :annotation: :ethereum.eth_types.Address .. attribute:: data :annotation: :bytes .. attribute:: value :annotation: :ethereum.eth_types.U256 .. attribute:: depth :annotation: :ethereum.eth_types.Uint .. attribute:: env :annotation: :Environment .. attribute:: refund_counter :annotation: :ethereum.eth_types.Uint