Evgeniy Stratonikov
0611031fd4
stackitem/test: improve coverage for serialization
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-07-13 11:06:19 +03:00
Evgeniy Stratonikov
69cdd5252a
stackitem: add benchmark for serialization routines
...
Signed-off-by: Evgeniy Stratonikov <evgeniy@nspcc.ru>
2021-07-12 14:40:17 +03:00
Evgeniy Stratonikov
e5fbf04529
stackitem: escape control characters in ToJSON()
...
Decoding uses `json.Decoder` which handles everything for us.
2021-03-02 10:47:02 +03:00
Evgenii Stratonikov
18b331d765
stackitem: fix JSON encoding
...
Encode both `Buffer` and `ByteString` to UTF-8 bytes.
Follow https://github.com/neo-project/neo/pull/1715 .
2020-12-11 13:30:47 +03:00
Anna Shaleva
543fd58e93
vm: restrict map key size
2020-09-29 18:46:15 +03:00
Evgenii Stratonikov
9d6ce4bdcc
stackitem: implement unmarshaling from JSON with types
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2020-07-31 16:07:16 +03:00
Evgenii Stratonikov
c16bb466a0
stackitem: implement marshaling to JSON with types
...
There are 2 kinds of JSON marshaling:
1. Lossy raw marshaling, when type information is lost and
map keys are expected to be valid utf-8 strings.
2. Almost lossless marshaling, which can handle any non-recursive item.
Interop value preserves only type.
This commit implements the second.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2020-07-31 16:07:16 +03:00
Evgenii Stratonikov
d836233352
stackitem: allow to (de-)serialize items to JSON
...
This commit implements behavior identical to that of C# `System.Json.*` interops.
2020-06-16 11:34:01 +03:00