{Solidity:log}
Launching the Solidity Developer Survey 2020
Posted by Franziska Heintel on December 9, 2020
Today we are launching the Solidity Developer Survey 2020. It is the first time we share a proper language survey and we hope to turn this into an annual tradition moving forward. You might remember the small feedback survey we did this year as part of the Solidity Summit registration in which we asked you for the most liked and dreaded Solidity features. If you're curious to revisit the results of that click here. Help shape the future of Solidity 🔮 So why...
Read moreAnnouncing the Winners of the Underhanded Solidity Contest 👨💻🏅
Posted by Franziska Heintel on December 3, 2020
After thorough assessment of all submissions, we are happy to share the winners of this year's Underhanded Solidity Contest! If you are not familiar with it, please read the announcement from September. Before we dive into the winning submissions, we'd like to thank all participants for taking part. In total, we received 16 qualifying submissions which you can find in this repo. All 16 submissions are eligible for a "qualified submission" Underhanded Solidity POAP NFT - winners will receive an additional "Winners"...
Read moreSolidity 0.7.5 Release Announcement
Posted by Solidity Team on November 18, 2020
Solidity v0.7.5 adds the ability so select the ABI coder via pragma abicoder v1 and pragma abicoder v2 in preparation for making ABI coder v2 the default for 0.8.0 and introduces --experimental-via-ir which compiles via the new experimental Yul-based compiler pipeline. Full Changelog Language Features: Ability to select the abi coder using pragma abicoder v1 and pragma abicoder v2. Inline Assembly: Use .offset and .length for calldata variables of dynamic array type to access their calldata offset and length (number of elements). Both of...
Read moreAsk the Solidity Team Anything #1 Recap
Posted by Solidity Team on November 4, 2020
We hosted our very first Solidity team AMA on Reddit last week! We would like to take the opportunity to summarize the most interesting and most upvoted questions & answers in this post. If you are interested in going through the full AMA thread you can do so here. General Questions Roadmap Outlook: What does the Solidity team see as its most important feature goals in the medium-long term and what are the biggest blockers to achieving those goals? As far as the compiler...
Read moreSolidity 0.8.x Preview Release
Posted by Solidity Team on October 28, 2020
With the Solidity 0.8.x series being just around the corner, we would like to provide insights into the upcoming breaking changes that will come with it. We want to provide a preview release binary for everyone to try out so that you can give your feedback. The main change for 0.8.x is the switch to checked arithmetic operations by default. This means that x + y will throw an exception on overflow. In other words: You will not need SafeMath anymore! Since the scope...
Read moreSolidity 0.7.4 Release Announcement
Posted by Solidity Team on October 19, 2020
Solidity v0.7.4 fixes a storage corruption bug of medium severity. To learn more about the bug and to check if your contract is vulnerable please read this post with further details about the bug. The bug has been reported by John Toman of the Certora development team. Additionally, v0.7.4 adds constants at file-level. Important Bugfixes Code Generator: Fix data corruption bug when copying empty byte arrays from memory or calldata to storage. Read more here. Notable New Features Constants at File-Level In order to make functions at...
Read moreSolidity Empty Byte Array Copy Bug
Posted by Solidity Team on October 19, 2020
On October 14, 2020, a bug in the Solidity code generator was reported by John Toman of the Certora development team. Certora's bug disclosure post can be found here. The bug is fixed with Solidity version 0.7.4 released on October 19, 2020. The bug is present in all prior versions of Solidity. We assigned the bug a severity level of "medium". Who should be concerned This bug can cause newly created elements of bytes or string arrays in storage to be initialized by a non-zero value. For...
Read moreSolidity Dynamic Array Cleanup Bug
Posted by Solidity Team on October 7, 2020
On September 17, 2020, a bug in the Solidity code generator was found. The bug is fixed with version 0.7.3 released on October 7, 2020. The bug is present in all prior versions of Solidity. We assigned the bug a severity level of "medium". Technical Details of the Bug Summary: For a dynamically-sized storage-array with types of size at most 16 bytes, assignments that require deleting slots did not zero out the deleted slots properly. Consider a dynamically-sized array in storage whose base-type is small enough...
Read moreSolidity 0.7.3 Release Announcement
Posted by Solidity Team on October 7, 2020
Solidity v0.7.3 fixes a bug in the dynamic-array cleanup. To learn more about the bug and check if your contract is vulnerable please read this post with further details about the bug. Additionally, v0.7.3 adds the option to stop compilation after the parsing stage using solc --stop-after parsing. Important Bugfixes Code Generator: Properly cleanup after copying dynamic-array to storage for packed types. Read more here. Notable New Features Stop Compilation after Parsing solc --stop-after parsing (or settings.stopAfter = 'parsing' in standard-json) can now be used to instruct...
Read moreSolidity 0.7.2 Release Announcement
Posted by Solidity Team on September 28, 2020
Solidity v0.7.2 fixes a bug in free functions, which had been introduced with v0.7.1, and adds compiler-generated utility file export. Furthermore, it comes with a considerably broadened language support of the SMTChecker. Important Bugfixes Free Function Overloading Checks Free functions were introduced in the previous release (Solidity v0.7.1). It turned out that it was possible to define a function with the same name multiple times, even containing the same parameter types. Allowing two functions with the same name, but different parameter types is called "overloading" and...
Read more