#pragma once #include #include #include #include #include namespace dev { namespace test { namespace abiv2fuzzer { class SolidityCompilationFramework { public: explicit SolidityCompilationFramework(langutil::EVMVersion _evmVersion = {}); Json::Value getMethodIdentifiers() { return m_compiler.methodIdentifiers(m_compiler.lastContractName()); } dev::bytes compileContract( std::string const& _sourceCode, std::string const& _contractName = {} ); protected: dev::solidity::CompilerStack m_compiler; langutil::EVMVersion m_evmVersion; dev::solidity::OptimiserSettings m_optimiserSettings = dev::solidity::OptimiserSettings::none(); }; } } }