diff --git a/test/libsolidity/semanticTests/smoke_test.sol b/test/libsolidity/semanticTests/smoke_test.sol index 07cd79d0f..82f38656f 100644 --- a/test/libsolidity/semanticTests/smoke_test.sol +++ b/test/libsolidity/semanticTests/smoke_test.sol @@ -101,7 +101,7 @@ contract C { // g1() -> FAILURE // h(uint256,uint256): 1, -2 -> 3 // j(bool): true -> false -// k(bytes32): 0x10 -> 0x10, 0x10 +// k(bytes32): 0x1001 -> 0x1001, 0x1001 // l(): hex"4200efef" -> 8 // m(bytes): 32, 32, 0x20 -> 32, 32, 0x20 // m(bytes): 32, 3, hex"AB33BB" -> 32, 3, left(0xAB33BB) diff --git a/test/libsolidity/util/BytesUtils.cpp b/test/libsolidity/util/BytesUtils.cpp index dd2a5166b..61ecead30 100644 --- a/test/libsolidity/util/BytesUtils.cpp +++ b/test/libsolidity/util/BytesUtils.cpp @@ -21,6 +21,8 @@ #include +#include + #include #include @@ -159,13 +161,8 @@ string BytesUtils::formatBoolean(bytes const& _bytes) string BytesUtils::formatHex(bytes const& _bytes) { - stringstream os; - - string hex{toHex(_bytes, HexPrefix::Add)}; - boost::algorithm::replace_all(hex, "00", ""); - os << hex; - - return os.str(); + u256 value = fromBigEndian(_bytes); + return toCompactHexWithPrefix(value); } string BytesUtils::formatHexString(bytes const& _bytes) diff --git a/test/libsolidity/util/TestFunctionCall.cpp b/test/libsolidity/util/TestFunctionCall.cpp index d22c3b3f0..272950782 100644 --- a/test/libsolidity/util/TestFunctionCall.cpp +++ b/test/libsolidity/util/TestFunctionCall.cpp @@ -193,7 +193,7 @@ string TestFunctionCall::formatBytesParameters( fill_n( back_inserter(defaultParameters), ceil(_bytes.size() / 32), - Parameter{bytes(), "", ABIType{ABIType::UnsignedDec}, FormatInfo{}} + Parameter{bytes(), "", ABIType{ABIType::Hex}, FormatInfo{}} ); ContractABIUtils::overwriteParameters(_errorReporter, defaultParameters, _parameters); os << BytesUtils::formatBytesRange(_bytes, defaultParameters, _highlight);