From 37c997e7a04883409de834db14c7d6ba0ccc42fd Mon Sep 17 00:00:00 2001 From: Alexander Arlt Date: Tue, 20 Feb 2024 18:04:57 +0100 Subject: [PATCH] Fix compare function in Json ABI::generate(ContractDefinition const& _contractDef). --- libsolidity/interface/ABI.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libsolidity/interface/ABI.cpp b/libsolidity/interface/ABI.cpp index 044929dec3d4..331b1d92ee1c 100644 --- a/libsolidity/interface/ABI.cpp +++ b/libsolidity/interface/ABI.cpp @@ -41,7 +41,9 @@ bool anyDataStoredInStorage(TypePointers const& _pointers) Json ABI::generate(ContractDefinition const& _contractDef) { auto compare = [](Json const& _a, Json const& _b) -> bool { - return std::make_tuple(_a["type"], _a["name"]) < std::make_tuple(_b["type"], _b["name"]); + if (_a.contains("type") && _a.contains("name") && _b.contains("type") && _b.contains("name")) + return std::make_tuple(_a["type"], _a["name"]) < std::make_tuple(_b["type"], _b["name"]); + return false; }; std::multiset abi(compare);