Storage structs and arrays with types shorter than 32 bytes can cause data corruption if encoded directly from storage using the experimental ABIEncoderV2.
Elements of structs and arrays that are shorter than 32 bytes are not properly decoded from storage when encoded directly (i.e. not via a memory type) using ABIEncoderV2. This can cause corruption in the values themselves but can also overwrite other parts of the encoded data. - Link: https://blog.soliditylang.org/2019/03/26/solidity-optimizer-and-abiencoderv2-bug/ - First Introduced: 0.5.0 - Fixed in Version: 0.5.7 - Published: - Severity<: low