{ skip to content }

{Solidity:​log}

Latest News & Announcements

Releases
Security Alerts
Announcements
Explainers

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

Solidity 0.5.3 Release Announcement

Posted by Solidity Team on January 22, 2019

Releases

This release adds support for accessing the code of a contract type, which will hopefully make the new CREATE2 opcode easier to use. We also added some static analysis features to the compiler, but most changes were done "under the hood" to pave the way for using the new Yul-based optimizer with ABIEncoderV2. Language Features: Provide access to creation and runtime code of contracts via type(C).creationCode / type(C).runtimeCode. Compiler Features: Control Flow Graph: Warn about unreachable code. SMTChecker: Support basic typecasts without truncation. SMTChecker: Support external...

Read more

Solidity 0.5.2 Release Announcement

Posted by Solidity Team on December 19, 2018

Releases

This release of the Solidity compiler includes several performance optimizations. These include faster compilation time but also cheaper contracts in some situations. This version also checks for all instances of uninitialized storage references, has some improved error messages and other checks. You can now create complete contracts in Yul through the support of the Yul object format and the special functions datasize, dataoffset and datacopy. A big thank you to all contributors who helped make this release possible! Download the new version of...

Read more

Solidity 0.5.1 Release Announcement

Posted by Solidity Team on December 3, 2018

Releases

This release improves the usability of interfaces, fixes some bugs, extends the SMT checker and provides an early preview of the Yul optimizer. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.

Read more

Solidity 0.5.0 Release Announcement

Posted by Solidity Team on November 13, 2018

Releases

This is a major breaking release of the Solidity language and compiler that includes many new safety features. In general, programmers have to be more explicit, some weird edge-cases are removed from the language and the low-level compiler interface is much simpler. This release was long overdue and as a result has amassed an incredibly long list of changes. Please refer to the "Solidity v0.5.0 Breaking Changes” section in the documentation about a good description of what has changed and how...

Read more

Solidity Bugfix Release

Posted by Solidity Team on September 13, 2018

Security Alerts

This post was originally published on the Ethereum blog. The latest version 0.4.25 release of Solidity fixes two important bugs. Another important bug has already been fixed in version 0.4.22 but it was only discovered recently that the bug existed. Note that the Ethereum Foundation runs a bounty program for the code generator part of Solidity. Cleanup of Exponent in Exponentiation Likelihood of occurrence: very low Exploitability: high Discoverability by tests: low Fixed in version: 0.4.25 Summary: Using short types in the exponent of an exponentiation operation can lead to...

Read more
Newer posts
Older posts

Get involved

GitHub

Twitter

Mastodon

Matrix

Discover more

BlogDocumentationUse casesContributeAboutForum

2024 Solidity Team

Security Policy

Code of Conduct