From 7e1b9c16528b08a8924f85c57f3b08b6cec70584 Mon Sep 17 00:00:00 2001 From: chriseth Date: Fri, 30 Jun 2017 10:22:35 +0200 Subject: Structure type json using "components". --- libsolidity/interface/ABI.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'libsolidity') diff --git a/libsolidity/interface/ABI.cpp b/libsolidity/interface/ABI.cpp index 0e28d010..9af7cdc3 100644 --- a/libsolidity/interface/ABI.cpp +++ b/libsolidity/interface/ABI.cpp @@ -136,25 +136,25 @@ Json::Value ABI::formatType(string const& _name, Type const& _type, bool _forLib suffix = string("[") + arrayType->length().str() + "]"; solAssert(arrayType->baseType(), ""); Json::Value subtype = formatType("", *arrayType->baseType(), _forLibrary); - if (subtype["type"].isString() && !subtype.isMember("subtype")) - ret["type"] = subtype["type"].asString() + suffix; - else + if (subtype.isMember("components")) { - ret["type"] = suffix; - solAssert(!subtype.isMember("subtype"), ""); - ret["subtype"] = subtype["type"]; + ret["type"] = subtype["type"].asString() + suffix; + ret["components"] = subtype["components"]; } + else + ret["type"] = subtype["type"].asString() + suffix; } } else if (StructType const* structType = dynamic_cast(&_type)) { - ret["type"] = Json::arrayValue; + ret["type"] = string(); + ret["components"] = Json::arrayValue; for (auto const& member: structType->members(nullptr)) { solAssert(member.type, ""); auto t = member.type->interfaceType(_forLibrary); solAssert(t, ""); - ret["type"].append(formatType(member.name, *t, _forLibrary)); + ret["components"].append(formatType(member.name, *t, _forLibrary)); } } else -- cgit v1.2.3