#pragma once #include #include #include "Utils.h" #ifdef _MSC_VER #define EXPORT __declspec(dllexport) #else #define EXPORT #endif namespace dev { namespace eth { namespace jit { using StackImpl = std::vector; using MemoryImpl = bytes; class Runtime { public: Runtime(u256 _gas, ExtVMFace& _ext); ~Runtime(); Runtime(const Runtime&) = delete; void operator=(const Runtime&) = delete; static StackImpl& getStack(); static MemoryImpl& getMemory(); static ExtVMFace& getExt(); static u256 getGas(); private: StackImpl m_stack; MemoryImpl m_memory; ExtVMFace& m_ext; }; } } }