#pragma once #include #include #include "Utils.h" namespace evmcc { using StackImpl = std::vector; using MemoryImpl = dev::bytes; class Runtime { public: Runtime(std::unique_ptr _ext); ~Runtime(); Runtime(const Runtime&) = delete; void operator=(const Runtime&) = delete; static StackImpl& getStack(); static MemoryImpl& getMemory(); static dev::eth::ExtVMFace& getExt(); private: StackImpl m_stack; MemoryImpl m_memory; std::unique_ptr m_ext; }; }