Make sure some keys are present.

This commit is contained in:
chriseth 2016-11-23 19:04:50 +01:00
parent e666f8cda7
commit 659b635b2d
2 changed files with 4 additions and 1 deletions

View File

@ -670,6 +670,7 @@ string CompilerStack::createOnChainMetadata(Contract const& _contract) const
meta["language"] = "Solidity";
meta["compiler"]["version"] = VersionString;
meta["sources"] = Json::objectValue;
for (auto const& s: m_sources)
{
solAssert(s.second.scanner, "Scanner not available");
@ -683,12 +684,14 @@ string CompilerStack::createOnChainMetadata(Contract const& _contract) const
meta["settings"]["compilationTarget"][_contract.contract->sourceUnitName()] =
_contract.contract->annotation().canonicalName;
meta["settings"]["remappings"] = Json::arrayValue;
set<string> remappings;
for (auto const& r: m_remappings)
remappings.insert(r.context + ":" + r.prefix + "=" + r.target);
for (auto const& r: remappings)
meta["settings"]["remappings"].append(r);
meta["settings"]["libraries"] = Json::objectValue;
for (auto const& library: m_libraries)
meta["settings"]["libraries"][library.first] = "0x" + toHex(library.second.asBytes());

View File

@ -212,7 +212,7 @@ void CommandLineInterface::handleOnChainMetadata(string const& _contract)
string data = m_compiler->onChainMetadata(_contract);
if (m_args.count("output-dir"))
createFile(_contract + ".meta", data);
createFile(_contract + "_meta.json", data);
else
cout << "Metadata: " << endl << data << endl;
}