{ skip to content }

{Solidity:​log}

Latest News & Announcements

Releases
Security Alerts
Announcements
Explainers

Solidity 0.8.6 Release Announcement

Posted by Solidity Team on June 22, 2021

Releases

Solidity v0.8.6 fixes some non-critical but annoying bugs, especially a warning about unreachable code that is in fact reachable. Bugfixes Unreachable Warning With Solidity 0.8.5, we released a new feature that detects if code is unreachable because a called function always reverts before the code is executed. This detection contained a bug in connection with nested calls to internal library functions where the "reverting behaviour" of a function was not properly updated after a function called by it was determined to be not always reverting. Because the bug was rather...

Read more

Solidity 0.8.5 Release Announcement

Posted by Solidity Team on June 10, 2021

Releases

Solidity v0.8.5 allows conversions from bytes to bytesNN values, adds the verbatim builtin function to inject arbitrary bytecode in Yul and fixes several smaller bugs. Notable New Features Bytes Conversion Find the complete feature documentation here. This release introduces the ability to convert bytes and bytes slices to fixed bytes types bytes1 / ... / bytes32. While conversion between fixed-length bytes types has always been possible, it is now also possible to convert dynamically-sized bytes types to fixed-length bytes types. In case a byte array is longer...

Read more

What Happened with Solidity-related Domains?

Posted by Franziska Heintel on May 3, 2021

Explainers

Some time ago we decided to get a domain that the Solidity team has easy access to in order to streamline efforts and initiatives that were hosted on other domains before. And so soliditylang.org was born! 🎉 We announced most of these domain changes individually on Twitter, but we want to take a moment to also officially announce it here on the blog and explain the various subdomains we have now, what they are for and which older domains may be deprecated in the future. In short,...

Read more

Solidity 0.8.4 Release Announcement

Posted by Solidity Team on April 21, 2021

Releases

Solidity v0.8.4 adds custom structured errors, bytes.concat(...), allows more flexible configuration of the SMT checker and fixes a bug in the Solidity ABI decoder v2. Important Bugfixes: On April 5th, 2021, a bug in the Solidity ABI decoder v2 was reported by John Toman of the Certora development team. For two-dimensional arrays and specially crafted data in memory, the result of abi.decode can depend on data elsewhere in memory. Calldata decoding is not affected. The bug is present in all prior versions of...

Read more

Solidity ABI Decoder Bug For Multi-Dimensional Memory Arrays

Posted by Solidity Team on April 21, 2021

Security Alerts

On April 5th, 2021, a bug in the Solidity ABI decoder v2 was reported by John Toman of the Certora development team. Certora's bug disclosure post can be found here: Memory Isolation Violation in Deserialization Code. The bug is fixed with Solidity version 0.8.4 released on April 21st, 2021. The bug is present in all prior versions of ABI coder v2. We assigned the bug a severity level of "very low", mainly due to the fact that it is very hard to exploit the bug. We are...

Read more

Custom Errors in Solidity

Posted by Solidity Team on April 21, 2021

Explainers

Starting from Solidity v0.8.4, there is a convenient and gas-efficient way to explain to users why an operation failed through the use of custom errors. Until now, you could already use strings to give more information about failures (e.g., revert("Insufficient funds.");), but they are rather expensive, especially when it comes to deploy cost, and it is difficult to use dynamic information in them. Custom errors are defined using the error statement, which can be used inside and outside of contracts (including interfaces and libraries). Example The following contract...

Read more

Announcing Solidity Version Collectibles & Community Governance 💎

Posted by Franziska Heintel on April 1, 2021

Announcements

⚠️ Attention: This post is an April Fools' Day joke. Please consume it at your own risk. We will not distribute any Solidity NFTs in the foreseeable future. Stay safe. Today, we are excited to announce a little surprise we’ve been working on silently for the last couple of weeks. We heard that you really like crypto-related collectibles and we listened. You will soon be able to own a digital piece of Solidity’s history: We’re tokenizing each Solidity version as an NFT!...

Read more

Solidity 0.8.3 Release Announcement

Posted by Solidity Team on March 23, 2021

Releases

Solidity v0.8.3 fixes the Solidity Optimizer Keccak Caching Bug, which is present in all prior versions of Solidity, and, in addition, includes two improvements to the optimizer which can provide a big gas benefit when writing structs that cover a full storage slot to storage. Important Bugfixes Solidity Optimizer Keccak Caching Bug On March 20, 2021, a bug in Solidity’s bytecode optimizer was found by differential fuzzing. The bug is fixed with this version. The bug is present in all prior versions of...

Read more

Solidity Optimizer Keccak Caching Bug

Posted by Solidity Team on March 23, 2021

Security Alerts

On March 20, 2021, a bug in Solidity's bytecode optimizer was found by differential fuzzing. The bug is fixed with version 0.8.3 released on March 23, 2021. The bug is present in all prior versions of Solidity. We assigned the bug a severity level of "medium". Technical Details Summary: The bytecode optimizer incorrectly re-used previously evaluated Keccak-256 hashes. You are unlikely to be affected if you do not compute Keccak-256 hashes in inline assembly. Solidity's bytecode optimizer has a step that can compute Keccak-256 hashes, if the...

Read more

Solidity 0.8.2 Release Announcement

Posted by Solidity Team on March 2, 2021

Releases

Solidity v0.8.2 adds an optimizer stage that can inline small amounts of code to save gas and provides more means to work with code documentation by exporting inline comments and allowing custom natspec tags. Notable New Features Inliner This release adds a simple inliner to the low-level optimizer of Solidity. It can inline short functions that do not contain control-flow branches or opcodes with side-effects. If you want to learn more about the inliner, read this post. Custom Natspec and Exported Documentation It is now possible to use documentation...

Read more
Newer posts
Older posts

Get involved

GitHub

Twitter

Mastodon

Matrix

Discover more

BlogDocumentationUse casesContributeAboutForum

2024 Solidity Team

Security Policy

Code of Conduct