aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-03-30 09:32:43 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-04-21 02:38:00 +0800
commitef559de84f1ee87225ac41f61f37dd9e17acc424 (patch)
treec4a6c0f205e1606a320787a889d208e8b2cd6a13 /libsolidity/interface
parentad1fe865088cdb4f97b3728e00d3fc2a5a34aba5 (diff)
downloaddexon-solidity-ef559de84f1ee87225ac41f61f37dd9e17acc424.tar.gz
dexon-solidity-ef559de84f1ee87225ac41f61f37dd9e17acc424.tar.zst
dexon-solidity-ef559de84f1ee87225ac41f61f37dd9e17acc424.zip
Properly split contract filename and name
Diffstat (limited to 'libsolidity/interface')
-rw-r--r--libsolidity/interface/StandardCompiler.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/libsolidity/interface/StandardCompiler.cpp b/libsolidity/interface/StandardCompiler.cpp
index 0297a5ec..13f82f60 100644
--- a/libsolidity/interface/StandardCompiler.cpp
+++ b/libsolidity/interface/StandardCompiler.cpp
@@ -280,6 +280,11 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
Json::Value contractsOutput = Json::objectValue;
for (string const& contractName: m_compilerStack.contractNames())
{
+ size_t colon = contractName.find(':');
+ solAssert(colon != string::npos, "");
+ string file = contractName.substr(0, colon);
+ string name = contractName.substr(colon + 1);
+
// ABI, documentation and metadata
Json::Value contractData(Json::objectValue);
contractData["abi"] = dev::jsonCompactPrint(m_compilerStack.metadata(contractName, DocumentationType::ABIInterface));
@@ -317,10 +322,12 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
contractData["evm"] = evmData;
- contractsOutput[contractName] = contractData;
+ if (!contractsOutput.isMember(file))
+ contractsOutput[file] = Json::objectValue;
+
+ contractsOutput[file][name] = contractData;
}
- output["contracts"] = Json::objectValue;
- output["contracts"][""] = contractsOutput;
+ output["contracts"] = contractsOutput;
return output;
}