diff --git a/src/serialization/json_archive.h b/src/serialization/json_archive.h index e5665122..09fea679 100644 --- a/src/serialization/json_archive.h +++ b/src/serialization/json_archive.h @@ -157,7 +157,7 @@ inline bool do_serialize(json_archive& ar, std::string& v) { ar.begin_string(); - ar.stream() << v; + ar.stream() << epee::string_tools::buff_to_hex_nodelimer(v); ar.end_string(); return true; } @@ -171,3 +171,4 @@ bool do_serialize(json_archive& ar, bool& v) ar.stream() << "false"; return true; } + diff --git a/src/serialization/serialization.h b/src/serialization/serialization.h index 02eee4b1..a44ec405 100644 --- a/src/serialization/serialization.h +++ b/src/serialization/serialization.h @@ -60,8 +60,8 @@ inline bool do_serialize(Archive &ar, T &v) template<> struct has_free_serializer { typedef boost::true_type type; } #define VARIANT_TAG(A, T, Tg) \ template struct variant_serialization_traits, T> { static inline typename A::variant_tag_type get_tag() { return Tg; } } -#define BEGIN_SERIALIZE() \ - template class Archive> bool do_serialize(Archive &_ser_ar) {uint8_t s_current_version ATTRIBUTE_UNUSED = 0; uint8_t s_version ATTRIBUTE_UNUSED = 0; +#define BEGIN_SERIALIZE() BEGIN_SERIALIZE_OBJECT() +// template class Archive> bool do_serialize(Archive &_ser_ar) {uint8_t s_current_version ATTRIBUTE_UNUSED = 0; uint8_t s_version ATTRIBUTE_UNUSED = 0; #define BEGIN_SERIALIZE_OBJECT() \ template class Archive> bool do_serialize(Archive &_ser_ar) {_ser_ar.begin_object(); bool _ser_res = do_serialize_object(_ser_ar); _ser_ar.end_object(); return _ser_res; } \ template class Archive> bool do_serialize_object(Archive &_ser_ar){ uint8_t s_current_version ATTRIBUTE_UNUSED = 0; uint8_t s_version ATTRIBUTE_UNUSED = 0; @@ -83,6 +83,7 @@ do { \ if (!_ser_res || !_ser_ar.stream().good()) return false; \ } while (0); #define FIELDS(f) \ + _ser_ar.tag("AGGREGATED"); \ bool _ser_res = ::do_serialize(_ser_ar, f); \ if (!_ser_res || !_ser_ar.stream().good()) return false; #define FIELD(f) \