Merge pull request #2211 from ethereum/jsonio-fixes

Follow the JSON I/O spec closely
This commit is contained in:
Alex Beregszaszi 2017-05-02 16:47:14 +01:00 committed by GitHub
commit c09f071ff6
3 changed files with 10 additions and 10 deletions

View File

@ -221,7 +221,7 @@ Output Description
// Assembly (string)
assembly: "",
// Old-style assembly (object)
legacyAssembly: [],
legacyAssembly: {},
// Bytecode and related details.
bytecode: {
// The bytecode as a hex string.

View File

@ -391,10 +391,10 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
// ABI, documentation and metadata
Json::Value contractData(Json::objectValue);
contractData["abi"] = dev::jsonCompactPrint(m_compilerStack.metadata(contractName, DocumentationType::ABIInterface));
contractData["abi"] = m_compilerStack.metadata(contractName, DocumentationType::ABIInterface);
contractData["metadata"] = m_compilerStack.onChainMetadata(contractName);
contractData["userdoc"] = dev::jsonCompactPrint(m_compilerStack.metadata(contractName, DocumentationType::NatspecUser));
contractData["devdoc"] = dev::jsonCompactPrint(m_compilerStack.metadata(contractName, DocumentationType::NatspecDev));
contractData["userdoc"] = m_compilerStack.metadata(contractName, DocumentationType::NatspecUser);
contractData["devdoc"] = m_compilerStack.metadata(contractName, DocumentationType::NatspecDev);
// EVM
Json::Value evmData(Json::objectValue);

View File

@ -235,12 +235,12 @@ BOOST_AUTO_TEST_CASE(basic_compilation)
BOOST_CHECK(containsAtMostWarnings(result));
Json::Value contract = getContractResult(result, "fileA", "A");
BOOST_CHECK(contract.isObject());
BOOST_CHECK(contract["abi"].isString());
BOOST_CHECK(contract["abi"].asString() == "[]");
BOOST_CHECK(contract["devdoc"].isString());
BOOST_CHECK(contract["devdoc"].asString() == "{\"methods\":{}}");
BOOST_CHECK(contract["userdoc"].isString());
BOOST_CHECK(contract["userdoc"].asString() == "{\"methods\":{}}");
BOOST_CHECK(contract["abi"].isArray());
BOOST_CHECK(dev::jsonCompactPrint(contract["abi"]) == "[]");
BOOST_CHECK(contract["devdoc"].isObject());
BOOST_CHECK(dev::jsonCompactPrint(contract["devdoc"]) == "{\"methods\":{}}");
BOOST_CHECK(contract["userdoc"].isObject());
BOOST_CHECK(dev::jsonCompactPrint(contract["userdoc"]) == "{\"methods\":{}}");
BOOST_CHECK(contract["evm"].isObject());
/// @TODO check evm.methodIdentifiers, legacyAssembly, bytecode, deployedBytecode
BOOST_CHECK(contract["evm"]["bytecode"].isObject());