{Solidity:log}
Solidity 0.4.6 Release Announcement
Posted by Solidity Team on November 22, 2016
Bugfixes: Optimizer: Knowledge about state was not correctly cleared for JUMPDESTs Swarm hash of js compiler: bzzr:/b873fa122233c91b1531527c390f6ca49df4d2a2c5f75706f4b612a0c813cb6a A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Read moreSolidity 0.4.5 Release Announcement
Posted by Solidity Team on November 21, 2016
This Solidity release adds function types. Use-cases include supplying callbacks for asynchronous or off-chain operations or generic library features (for example map-reduce-style programming). This release also improves the safety of enums and sending Ether to a contract constructor. Features: Function types Do-while loops: support for a do while (); control structure Inline assembly: support invalidJumpLabel as a jump label. Type checker: now more eagerly searches for a common type of an inline array with mixed types Code generator: generates a runtime error when an out-of-range...
Read moreAnalysis of Storage Corruption Bug
Posted by Christian Reitwiessner on November 9, 2016
This post was originally published on the Ethereum blog. This blog post provides an update on our findings following the discovery of the storage corruption bug last week. In summary, the bug was much less severe than we initially thought. The small number of affected contracts we found is either only exploitable by the owner, or the exploit can only cause a disruption in the user interface and not in the actual contract logic. All exploitable contracts/dapps we reviewed can be fixed...
Read moreSolidity 0.4.4 Release Announcement
Posted by Solidity Team on November 1, 2016
This is a bugfix release that fixes a storage corruption that appears when multiple variables are stored in the same slot (details). Bugfixes: Type checker: forbid signed exponential that led to an incorrect use of EXP opcode. Code generator: properly clean higher order bytes before storing in storage. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Read moreSecurity Alert: Variables can be overwritten in storage
Posted by Christian Reitwiessner on November 1, 2016
This post was originally published on the Ethereum blog. Summary: In some situations, variables can overwrite other variables in storage. *Affected Solidity compiler versions: *0.1.6 to 0.4.3 (including 0.4.4 pre-release versions) Detailed description: Storage variables that are smaller than 256 bits are packed together into the same 256 bit slot if they can fit. If a value larger than what is allowed by the type is assigned to the first variable, that value will overwrite the second variable. This means if an attacker can cause...
Read moreSolidity 0.4.3 Release Announcement
Posted by Solidity Team on October 25, 2016
This is a real bugfix release as you can see from the changelog below. The most important fix concerns the optimizer which generated invalid code connected to the SHA3 opcode in certain situations. Features: Inline assembly: support both suicide and selfdestruct opcodes (note: suicide is deprecated). Inline assembly: issue warning if stack is not balanced after block. Include keccak256() as an alias to sha3(). Support shifting constant numbers. Bugfixes: Commandline interface: Disallow unknown options in solc. Name resolver: Allow inheritance of enum definitions. Type checker: Proper type checking...
Read moreSolidity 0.4.2 Release Announcement
Posted by Solidity Team on September 17, 2016
Bugfixes: Code Generator: Fix library functions being called from payable functions. Type Checker: Fixed a crash about invalid array types. Code Generator: Fixed a call gas bug that became visible after version 0.4.0 for calls where the output is larger than the input. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Read moreSolidity 0.4.1 Release Announcement
Posted by Solidity Team on September 9, 2016
This is a bugfix release that fixes an error when compiling libraries with the latest version 0.4.0. A big thank you to all contributors who helped make this release possible! Download the new version of Solidity here.
Read moreSolidity 0.4.0 Release Announcement
Posted by Solidity Team on September 8, 2016
Note: Version 0.4.0 is unable to compile libraries. Please upgrade to 0.4.1. This release deliberately breaks backwards compatibility mostly to enforce some safety features. The most important change is that you have to explicitly specify if functions can receive ether via the payable modifier. Furthermore, more situations cause exceptions to be thrown. Minimal changes to be made for upgrade: Add payable to all functions that want to receive Ether (including the constructor and the fallback function). Change ` to ;` in modifiers. Add version pragma...
Read moreDev Update: Formal Methods
Posted by Christian Reitwiessner on September 1, 2016
This post was originally published on the Ethereum blog. Today, I am delighted to announce that Yoichi Hirai (@pirapira on github) is joining the Ethereum project as a formal verification engineer. He holds a PhD from the University of Tokyo on the topic of formalizing communicating parallel processes and created formal verification tools for Ethereum in his spare time. In his own words: I’m joining Ethereum as a formal verification engineer. My reasoning: formal verification makes sense as a profession only in a...
Read more