Storage structs and arrays with types shorter than 32 bytes can cause data corruption if encoded directly from storage using ABIEncoderV2. This is due to a compiler bug introduced in v0.5.0
and fixed in v0.5.7
. (see here)
- Packed Storage
- ABIEncoderV2
- Structs/Arrays -> Type > 32B
- Storage Encode -> Data Corruption
- Compiler Bug -> Fixed
solc 0.5.0
-> 0.5.7