Make compiler.contractDefinition private

This commit is contained in:
Alex Beregszaszi 2017-06-15 11:35:30 +01:00
parent b99e4bc68b
commit ba7d698ee6
2 changed files with 7 additions and 5 deletions

View File

@ -191,9 +191,6 @@ public:
Scanner const& scanner(std::string const& _sourceName = "") const; Scanner const& scanner(std::string const& _sourceName = "") const;
/// @returns the parsed source unit with the supplied name. /// @returns the parsed source unit with the supplied name.
SourceUnit const& ast(std::string const& _sourceName = "") const; SourceUnit const& ast(std::string const& _sourceName = "") const;
/// @returns the parsed contract with the supplied name. Throws an exception if the contract
/// does not exist.
ContractDefinition const& contractDefinition(std::string const& _contractName) const;
/// Helper function for logs printing. Do only use in error cases, it's quite expensive. /// Helper function for logs printing. Do only use in error cases, it's quite expensive.
/// line and columns are numbered starting from 1 with following order: /// line and columns are numbered starting from 1 with following order:
@ -258,6 +255,10 @@ private:
Contract const& contract(std::string const& _contractName = "") const; Contract const& contract(std::string const& _contractName = "") const;
Source const& source(std::string const& _sourceName = "") const; Source const& source(std::string const& _sourceName = "") const;
/// @returns the parsed contract with the supplied name. Throws an exception if the contract
/// does not exist.
ContractDefinition const& contractDefinition(std::string const& _contractName) const;
std::string createOnChainMetadata(Contract const& _contract) const; std::string createOnChainMetadata(Contract const& _contract) const;
std::string computeSourceMapping(eth::AssemblyItems const& _items) const; std::string computeSourceMapping(eth::AssemblyItems const& _items) const;
Json::Value const& contractABI(Contract const&) const; Json::Value const& contractABI(Contract const&) const;

View File

@ -281,9 +281,10 @@ void CommandLineInterface::handleSignatureHashes(string const& _contract)
if (!m_args.count(g_argSignatureHashes)) if (!m_args.count(g_argSignatureHashes))
return; return;
Json::Value methodIdentifiers = m_compiler->methodIdentifiers(_contract);
string out; string out;
for (auto const& it: m_compiler->contractDefinition(_contract).interfaceFunctions()) for (auto const& name: methodIdentifiers.getMemberNames())
out += toHex(it.first.ref()) + ": " + it.second->externalSignature() + "\n"; out += methodIdentifiers[name].asString() + ": " + name + "\n";
if (m_args.count(g_argOutputDir)) if (m_args.count(g_argOutputDir))
createFile(m_compiler->filesystemFriendlyName(_contract) + ".signatures", out); createFile(m_compiler->filesystemFriendlyName(_contract) + ".signatures", out);