Solidity v0.8.14 fixes two important bugs.
The first one is related to ABI-encoding nested arrays directly from calldata. You can find more information in the blog post.
The second bug is triggered in certain inheritance structures and can cause a memory pointer to be interpreted as a calldata pointer or vice-versa. We also have a dedicated blog post about this bug.
Apart from these, there are several minor bug fixes and improvements.
Please note: Unfortunately, the npm wrapper package of this version is corrupted. Using the new soljson.js
with solc-js 0.8.13 will work, but the 0.8.14 npm release (now marked as deprecated) is missing a file and due to that does not work properly. We released 0.8.14-fixed in case you need a working npm package as dependency. Note however, that npm will not pick it up automatically.
Full Changelog
Important Bugfixes:
- ABI Encoder: When ABI-encoding values from calldata that contain nested arrays, correctly validate the nested array length against
calldatasize()
in all cases. - Override Checker: Allow changing data location for parameters only when overriding external functions.
Compiler Features:
- Assembly-Json Exporter: Include source list in
sourceList
field. - Commandline Interface: Option
--pretty-json
works also with the following options:--abi
,--asm-json
,--ast-compact-json
,--devdoc
,--storage-layout
,--userdoc
. - Language Server: Allow full filesystem access to language server.
- Peephole Optimizer: Remove operations without side effects before simple terminations.
- SMTChecker: Support
abi.encodeCall
taking into account the called selector.
Bugfixes:
- Assembly-Json Exporter: Fix assembly json export to store jump types of operations in
jumpType
field instead ofvalue
. - SMTChecker: Fix ABI compatibility with z3 >=4.8.16.
- SMTChecker: Fix bug when z3 is selected but not available at runtime.
- Type Checker: Properly check restrictions of
using ... global
in conjunction with libraries. - TypeChecker: Convert parameters of function type to how they would be called for
abi.encodeCall
.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.