#pragma once #include #include #include namespace dev { namespace eth { class VMFactory; namespace jit { class VM: public VMFace { virtual bytesConstRef go(ExtVMFace& _ext, OnOpFunc const& _onOp = {}, uint64_t _steps = (uint64_t)-1) override final; enum Kind: bool { Interpreter, JIT }; static std::unique_ptr create(Kind, u256 _gas = 0); private: friend VMFactory; explicit VM(u256 _gas = 0): VMFace(_gas) {} bytes m_output; }; } } }