Merge pull request #6958 from sifmelcara/fix-abiencoderv2-codegen

Fix incorrect abi encoding of storage array of data type that occupy multiple storage slots
This commit is contained in:
chriseth
2019-06-20 13:08:42 +02:00
committed by GitHub
7 changed files with 81 additions and 12 deletions
@@ -0,0 +1,21 @@
pragma experimental ABIEncoderV2;
// tests encoding from storage arrays
contract C {
uint256[2][] tmp_h;
function h(uint256[2][] calldata s) external returns (bytes memory) {
tmp_h = s;
return abi.encode(tmp_h);
}
uint256[2][2] tmp_i;
function i(uint256[2][2] calldata s) external returns (bytes memory) {
tmp_i = s;
return abi.encode(tmp_i);
}
}
// ====
// EVMVersion: >homestead
// ----
// h(uint256[2][]) : 0x20, 3, 123, 124, 223, 224, 323, 324 -> 32, 256, 0x20, 3, 123, 124, 223, 224, 323, 324
// i(uint256[2][2]): 123, 124, 223, 224 -> 32, 128, 123, 124, 223, 224