The existing code to serialize vAccount actions only works with payloads that don't exceed a length of 255 bytes as it always uses a single byte for the payload size.
Although this works fine in your vaccountconsumer test due to the small payload, I think it's a good idea to change it there as well because I'm sure many developers, including me, will use that code as their starting point until there's documentation.
Changelog
Change the serialization of data to match the serialization in EOSIO's CPP datastream for std::vector<char> which uses a varuint32_t for the size.
Serialize an empty std::vector<permission_level> authorization array instead of a one-element array with an empty permission level. This saves some bytes for every vAccount action.
The existing code to serialize vAccount actions only works with payloads that don't exceed a length of 255 bytes as it always uses a single byte for the payload size. Although this works fine in your
vaccountconsumer
test due to the small payload, I think it's a good idea to change it there as well because I'm sure many developers, including me, will use that code as their starting point until there's documentation.Changelog
data
to match the serialization in EOSIO's CPP datastream forstd::vector<char>
which uses a varuint32_t for the size.std::vector<permission_level> authorization
array instead of a one-element array with an empty permission level. This saves some bytes for every vAccount action.