From 63b6d0099f0a8c0aa8f4bd6e8f19c50f063630fd Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Wed, 29 Mar 2017 22:00:38 +0100 Subject: Support methodIdentifiers --- libsolidity/interface/StandardCompiler.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libsolidity') diff --git a/libsolidity/interface/StandardCompiler.cpp b/libsolidity/interface/StandardCompiler.cpp index aa14d2b0..9e425d36 100644 --- a/libsolidity/interface/StandardCompiler.cpp +++ b/libsolidity/interface/StandardCompiler.cpp @@ -99,6 +99,14 @@ StringMap createSourceList(Json::Value const& _input) return sources; } +Json::Value methodIdentifiers(ContractDefinition const& _contract) +{ + Json::Value methodIdentifiers(Json::objectValue); + for (auto const& it: _contract.interfaceFunctions()) + methodIdentifiers[it.second->externalSignature()] = toHex(it.first.ref()); + return methodIdentifiers; +} + Json::Value StandardCompiler::compileInternal(Json::Value const& _input) { m_compilerStack.reset(false); @@ -259,7 +267,7 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input) ostringstream unused; evmData["legacyAssembly"] = m_compilerStack.streamAssembly(unused, contractName, createSourceList(_input), true); evmData["opcodes"] = solidity::disassemble(m_compilerStack.object(contractName).bytecode); - // @TODO: add methodIdentifiers + evmData["methodIdentifiers"] = methodIdentifiers(m_compilerStack.contractDefinition(contractName)); // @TODO: add gasEstimates // EVM bytecode -- cgit v1.2.3