diff --git a/src/pbaas/vdxf.cpp b/src/pbaas/vdxf.cpp index 3f2790b4f8..9252d61bfe 100644 --- a/src/pbaas/vdxf.cpp +++ b/src/pbaas/vdxf.cpp @@ -718,15 +718,26 @@ CDataDescriptor::CDataDescriptor(const UniValue &uni) : mimeType.resize(128); } SetFlags(); - UniValue objUni = find_value(uni, "objectdata"); - if (HasMIME() && - std::string(mimeType.begin(), mimeType.begin() + 5) == std::string("text/") && - objUni.isStr()) + + if (objUni.isObject() || objUni.isStr()) + { + objectData = VectorEncodeVDXFUni(objUni); + } + else if (objUni.isArray()) + { + CDataStream ss(PROTOCOL_VERSION, SER_DISK); + for (int i = 0; i < objUni.size(); i++) + { + std::vector vec = VectorEncodeVDXFUni(objUni[i]); + ss.write(reinterpret_cast(vec.data()), vec.size()); + } + objectData = std::vector(ss.begin(), ss.end()); + } + else { - objUni.pushKV("message", objUni); + objectData = std::vector(); } - objectData = VectorEncodeVDXFUni(find_value(uni, "objectdata")); } std::vector CDataDescriptor::DecodeHashVector() const