{ skip to content }

{Solidity:​log}

Latest News & Announcements

Releases
Security Alerts
Announcements
Explainers

Solidity Storage Array Bugs

Posted by Solidity and Security Team on June 25, 2019

Security Alerts

This post was originally published on the Ethereum blog. This blog post is about two bugs connected to storage arrays which are otherwise unrelated. Both have been present in the compiler for a long time and have only been discovered now even though a contract containing them should very likely show malfunctions in tests. Daenam Kim with help from Nguyen Pham, both from Curvegrid discovered an issue where invalid data is stored in connection with arrays of signed integers. This bug has been...

Read more

Solidity 0.5.10 Release Announcement

Posted by Solidity Team on June 25, 2019

Releases

Apart from further invisible work on the Yul optimizer, the Solidity to Yul code generation, the eWasm backend and the SMT checker, this release contains two important bug fixes related to storage arrays. For details see our earlier blog post. It also contains an experimental mode that allows recovery from parser error (implemented by @rocky, funded by ConsenSys) in the hope that this might be useful for IDE developers. Important Bugfixes: ABIEncoderV2: Fix incorrect abi encoding of storage array of data type that occupy...

Read more

Solidity 0.5.9 Release Announcement

Posted by Solidity Team on May 28, 2019

Releases

As in previous releases, we spent most of the time making Solidity future-proof by further working on the Yul optimizer, the Solidity to Yul (and eWasm) translator and the SMT Checker. Code generated from Solidity now always includes the version number in the CBOR metadata so that it becomes possible to quickly assess whether a contract might be affected by a compiler bug or not. Language Features: Inline Assembly: Revert change introduced in 0.5.7: The callvalue() instruction does not require payable anymore. Static Analyzer:...

Read more

Solidity 0.5.8 Release Announcement

Posted by Solidity Team on April 30, 2019

Releases

This release fixes important but very unlikely bugs and further completes ABIEncoderV2, SMTChecker and Yul and improves the optimizer. Notably, if ABIEncoderV2 is activated, the ABI decoder will now revert on input with dirty higher order bits instead of ignoring those bits. Important Bugfixes: Code Generator: Fix initialization routine of uninitialized internal function pointers in constructor context. Type System: Use correct type name for contracts in event parameters when used in libraries. This affected code generation. Yul Optimizer: Fix SSA transform for multi-assignments. Language Features: ABIEncoderV2: Implement...

Read more

Solidity 0.4.26 Release Announcement

Posted by Solidity Team on April 29, 2019

Releases

This is a bugfix release for the 0.4.x series that contains backported fixes for important bugs that affected code generation. It also contains a fix that makes the emscripten target compatible with newer browser versions. Important Bugfixes: Code Generator: Fix initialization routine of uninitialized internal function pointers in constructor context. Type System: Use correct type name for contracts in event parameters when used in libraries. This affected code generation. Bugfixes: ABIEncoderV2: Refuse to generate code that is known to be potentially buggy. General: Split rule list...

Read more

Solidity Optimizer and ABIEncoderV2 Bugs

Posted by Solidity and Security Team on March 26, 2019

Security Alerts

This post was originally published on the Ethereum blog. Through the Ethereum bug bounty program, we received a report about a flaw within the new experimental ABI encoder (referred to as ABIEncoderV2). Upon investigation, it was found that the component suffers from a few different variations of the same type. The first part of this announcement explains this bug in detail. The new ABI encoder is still marked as experimental, but we nevertheless think that this deserves a prominent announcement since...

Read more

Solidity 0.5.7 Release Announcement

Posted by Solidity Team on March 26, 2019

Releases

This release mainly fixes bugs in the optimizer and in the experimental ABI encoder. For details about the bug, please see the official announcement. Furthermore, this release also allows you to use Yul as a language option (instead of "Solidity") in the standard-json-interface. Important Bugfixes: ABIEncoderV2: Fix bugs related to loading short value types from storage when encoding an array or struct from storage. ABIEncoderV2: Fix buffer overflow problem when encoding packed array from storage. Optimizer: Fix wrong ordering of arguments in byte optimization rule...

Read more

Solidity 0.5.6 Release Announcement

Posted by Solidity Team on March 13, 2019

Releases

This release mainly fixes an optimizer bug related to multiple shift opcodes that was introduced in the previous release. It is unlikely that any existing contracts are affected, but you should still not use Solidity 0.5.5. Apart from that, the support for calldata structs and arrays by ABIEncoderV2 is almost finished now, we added some more optimizer rules and added enums and one-dimensional arrays to the SMT checker. Important Bugfixes: Yul Optimizer: Fix visitation order bug for the structural simplifier. Optimizer: Fix overflow in...

Read more

Solidity 0.5.5 Release Announcement

Posted by Solidity Team on March 5, 2019

Releases

This release focuses on the stabilization of the ABIEncoderV2 and the optimizer. We also prepared for the Petersburg release which is the default EVM now and improved the SMT checker, such that it now reports less false positives when using SafeMath. You can now activate the experimental Yul optimizer using settings: {optimizer: {enabled: true, details: {yul: true}}} or in the commandline via solc optimize-yul. Language Features: Add support for getters of mappings with string or bytes key types. Meta programming: Provide access to the...

Read more

Solidity 0.5.4 Release Announcement

Posted by Solidity Team on February 12, 2019

Releases

This release adds support for calldata structs and packed encoding with ABIEncoderV2. We also introduced some changes to the C API and added support for continuous fuzzing via Google oss-fuzz. In addition to that, we added a new commandline option for improved (colorized) diagnostics formatting. Language Features: Allow calldata structs without dynamically encoded members with ABIEncoderV2. Compiler Features: ABIEncoderV2: Implement packed encoding. C API (libsolc / raw soljson.js): Introduce solidity_free method which releases all internal buffers to save memory. Commandline Interface: Adds new option new-reporter for...

Read more
Newer posts
Older posts

Get involved

GitHub

Twitter

Mastodon

Matrix

Discover more

BlogDocumentationUse casesContributeAboutForum

2025 Solidity Team

Security Policy

Code of Conduct