This release features several major and long-awaited changes:
- It is now possible to access dynamic data (arrays, strings, etc) returned by function calls.
- You can specify error reason strings for
revert
andrequire
(support by tooling is still pending). - We added the global functions
abi.encode()
,abi.encodePacked()
,abi.encodeWithSelector()
andabi.encodeWithSignature()
which expose the ABI encoding functions and each return abytes
value. - Constructors should now be defined using
constructor(uint arg1, uint arg2) { ... }
to make them stand out and avoid bugs when contracts are renamed but not their constructors. - Some array operations got cheaper, especially the
push
function and initialization of memory arrays.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.