{Solidity:log}
Wrapping up the Virtual Solidity Summit 2020
Posted by Franziska Heintel on June 9, 2020
Roughly one month ago, we held the first Solidity Summit - a free interactive forum with discussions and talks on Solidity, Yul, language design and tooling. It took place on April 29-30 and was powered by a virtual meeting infrastructure based on open-source, self-hosted Jitsi video chat rooms. The platform was supplied by Interspace.Chat. Before we dive into the recap: Your input and active participation was much appreciated and we want to take this opportunity to say thank you! We hope...
Read moreSolidity 0.6.9 Release Announcement
Posted by Solidity Team on June 5, 2020
Solidity v0.6.9 adds SMT-checking to solc-js, allows calldata for all variables and provides a mechanism to specify an import directory. Please note that the solc-js / soljson binary includes the Z3 SMT solver built-in, which causes an increase in the binary size. Notable New Features SMTChecker The SMTChecker is a component of the Solidity compiler which has been in development for quite some time now. Its aim is to bring formal verification methods to the Solidity compiler. Solidity implements a formal verification approach based on SMT/Horn...
Read moreSourcify: Towards Safer Contract Interaction for Humans
Posted by Edi Sinovčić, Franziska Heintel on June 2, 2020
tl;dr: Building sensible blockchain applications for humans is hard. You can enhance the user experience of your dapp today by leveraging the power of open source. Increase awareness and give more transparency on what users are actually doing when interacting with your code on the blockchain, i.e. when signing a transaction, by publishing the source code to this decentralized repository and using metadata files, which translate “random” hex strings into human-readable language. Sourcify is a tool to help you do exactly that. If you...
Read moreSolidity 0.6.x features: Array Slices
Posted by Solidity Team on May 26, 2020
Starting from version 0.6.0, Solidity supports array slices. Array slices are handy when you want to reference a contiguous portion of an array but do not want to perform a full copy of that portion. For now, array slices are only supported for calldata arrays. How to use Array Slices The expression x[start:end] references a portion of the calldata array x starting at index start and ending just before index end. Both start and end are optional. If not provided, start defaults to 0 and end defaults...
Read moreSolidity 0.6.8 Release Announcement
Posted by Solidity Team on May 14, 2020
Solidity v0.6.8 fixes three important bugs in the code generator and introduces a recommendation to use SPDX license identifiers. Furthermore, support for WebAssembly has been extended and it is now possible to access the min and max values of an integer type directly. Please upgrade if you are using array slices, backslashes in string literals for ABIEncoderV2 or are concerned about non-payable constructors. Important Bugfixes Please note that the three bugs outlined below have all been rated with a severity level of "very...
Read moreSolidity 0.6.x features: Saving Storage Costs with Immutables
Posted by Daniel Kirchner on May 13, 2020
With version 0.6.5, Solidity introduced the immutable keyword for state variables. Immutable state variables can only be assigned during contract creation, but will remain constant throughout the life-time of a deployed contract. The big advantage of immutables is that reading them is significantly cheaper than reading from regular state variables, since immutables will not be stored in storage, but their values will be directly inserted into the runtime code. How to use Immutables Immutable state variables can be declared using the immutable keyword. They cannot be read...
Read moreSolidity 0.6.7 Release Announcement
Posted by Solidity Team on May 4, 2020
Solidity v0.6.7 introduces support for EIP-165 via type(InterfaceName).interfaceId. Language Features: Add support for EIP 165 interface identifiers with type(I).interfaceId. Allow virtual modifiers inside abstract contracts to have empty body. Compiler Features: Optimizer: Simplify repeated AND and OR operations. Option to specify optimization steps to be performed by Yul optimizer with yul-optimizations in the commandline interface or optimizer.details.yulDetails.optimizerSteps in standard-json. Standard Json Input: Support the prefix file:// in the field urls. Bugfixes: SMTChecker: Fix internal error when fixed points are used. SMTChecker: Fix internal error when using array slices. Type Checker: Disallow...
Read moreSolidity Summit 2020 Goes Interspace
Posted by Franziska Heintel on April 17, 2020
Tl;dr: As already announced on Twitter, we transformed the Solidity Summit, which was initially planned to be an in-person meeting in Berlin, into an online event. Today, we are excited to share that the summit will be powered by Interspace.Chat. Interspace is a virtual meeting infrastructure based on self-hosted Jitsi video chat rooms. Check out the Solidity Summit's preliminary event agenda here and make sure to register if you want to partipate! What is the Solidity Summit? The Solidity Summit is a...
Read moreSolidity 0.6.6 Release Announcement
Posted by Solidity Team on April 9, 2020
This is a small bugfix release that solves an issue with certain tuple assignments. Important Bugfixes: Fix tuple assignments with components occupying multiple stack slots and different stack size on left- and right-hand-side. Bugfixes: AST export: Export immutable property in the field mutability. SMTChecker: Fix internal error in the CHC engine when calling inherited functions internally. Type Checker: Error when trying to encode functions with call options gas and value set. A big thank you to all contributors who helped make this release possible! Download the new version...
Read moreSolidity 0.6.5 Release Announcement
Posted by Solidity Team on April 6, 2020
Version 0.6.5 of Solidity fixes an important bug and introduces immutable as a major feature. The bug concerns the allocation of dynamic memory arrays using e.g. new uint. The bug is considered to have a severity level of "low" but is present in all prior versions of Solidity. Therefore, please read more about how check if your contract is vulnerable in this blog post. The immutable feature supports setting contract-level variables at construction time if they do not change later on. These...
Read more