{Solidity:log}
The Underhanded Solidity Contest is back!
Posted by Franziska Heintel on September 21, 2020
We're excited to share that the Underhanded Solidity Contest is finally back! Inspired by the Underhanded C Contest and the first Underhanded Solidity Contest, organized in 2017 by Nick Johnson, we decided it is time for a much needed revival. Underhanded Solidity Contest The goal of this contest is to write innocent-looking Solidity code, which pretends to be clear and straightforward, but actually contains malicious behavior or backdoors. By hosting such a contest we aim to: Raise awareness about smart contract security. Uncover language design flaws. Battle-test...
Read moreMeet the Solidity team! 🧑💻👩💻
Posted by Solidity Team on September 18, 2020
As you might know, Solidity is an open-source community project mainly developed and maintained by a core team. Today, we would like to introduce some of our team members and share insights into their professional background, which components of Solidity they mostly work on, what they would like to see in Solidity and in the ecosystem in future and more! Since almost all of our work happens on Github you can find each team member's Github handle next to their name. Before...
Read moreSolidity 0.7.1 Release Announcement
Posted by Solidity Team on September 2, 2020
Solidity v0.7.1 adds functions at file-level and fixes several small bugs. Notable New Features Functions At File-Level Functions can now be defined at file-level. Such functions are called "free functions" (as opposed to functions bound to a specific contract). Free functions are always internal functions and are meant to replace internal library functions and their very special behaviour. A free function behaves like an internal function of the contract that called it. The main difference is that a free function cannot directly access state variables and internal functions of...
Read moreSolidity 0.7.0 Release Announcement
Posted by Solidity Team on July 28, 2020
Solidity 0.7.0 is a breaking release of the Solidity compiler and language. This release does not include many features but rather changes that require a backwards-incompatible adjustment in syntax or semantics. For a detailed explanation, please see the documentation. Most notably, further cleanup of visibility and state mutability has been performed and several unpopular keywords have been removed. Types with mappings in memory are disallowed and shift and exponentiation operations use more reasonable types. Since we usually do not backport bugfixes, it is recommended to upgrade all...
Read moreSolidity 0.6.12 Release Announcement
Posted by Solidity Team on July 22, 2020
Solidity v0.6.12 adds more flexibility when using inheritance with NatSpec comments and introduces many small improvements to the optimizer. Notable New Features NatSpec Inheritance As explained in the Solidity 0.6.11 release announcement, NatSpec comments are now inherited automatically if you do not provide any NatSpec in the derived function. Starting from Solidity 0.6.12, you can explicitly inherit comments from a base contract using the tag @inheritdoc even if you specify some of the tags. The tags that are not given will then be taken from the specified base class' function. //...
Read moreSolidity v0.1.0 turns 5! A walk down memory lane...
Posted by Franziska Heintel on July 8, 2020
Solidity v0.1.0 turns 5 With happiness and a tad of nostalgia, we'd like to share that Solidity v0.1.0 turns 5 years old today! (To be fair, v0.1.0 wasn't an actual release, but it marks the time where the Solidity team started appointing version numbers.) We are puzzled over how fast time flew by. We'd like to use this opportunity to take a look back and walk down the Solidity memory lane together with you. In short: The Solidity language evolved rapidly, the...
Read moreSolidity 0.6.11 Release Announcement
Posted by Solidity Team on July 7, 2020
Solidity v0.6.11 adds inheritance to NatSpec comments, improves debugging data output and fixes some minor issues with opening up calldata for non-external functions. Notable New Features NatSpec Inheritance and on Events NatSpec comments are a way to describe the behaviour of a function to end-users. It also allows to provide more detailed information to developers. One regular use-case is that you document the behaviour of an interface and then implement the interface in a derived contract. Previously, you had to repeat the documentation in the derived contract. This...
Read moreAll you need to know about Sourcify
Posted by Franziska Heintel on June 25, 2020
Welcome to Sourcify's first short FAQ! If your questions around source verification haven't been answered after reading this post, please feel free to drop by the Sourcify Gitter channel and ask us any question there. Also stay tuned on more tutorials and developer focused content to follow here and on the Remix blog! Source Verification What is source verification? Solidity contract source code can be verified by checking whether the on-chain deployed code is matching with published source code files. In order to allow for source...
Read moreSolidity 0.6.x features: inheritance
Posted by Elena Gesheva on June 18, 2020
Similar to object-oriented programming in Solidity - a contract-oriented language - the inheritance and polymorphism features are as widely adopted and critical for the language evolution. There is hardly any Solidity developer who hasn't used these language features in their contracts to decouple logic and increase code reuse. With version 0.6 of the language the main improvements introduced are to make existing rules explicit in addition to introducing interface inheritance and disallowing the dangerous state variable shadowing. The compiler continues...
Read moreSolidity 0.6.10 Release Announcement
Posted by Solidity Team on June 11, 2020
Solidity v0.6.10 fixes an important bug that was introduced in the previous release and adds error codes. Please upgrade if you are using internal library functions with calldata parameters in connection with using for. Important Bugfixes Invalid Access for Calldata Parameters in Internal Library Functions Problem: The previous release, Solidity 0.6.9, introduced the possibility to use calldata types in internal and not, as previously, only in external functions. This resulted in a bug related to calling library functions with calldata parameters via using for. More specifically,...
Read more