solidity icon indicating copy to clipboard operation
solidity copied to clipboard

This is solc-verify, a modular verifier for Solidity.

Results 46 solidity issues
Sort by recently updated
recently updated
newest added
trafficstars

``` pragma solidity ^0.5.0; contract test { function g() public returns (uint) { return block.timestamp; } } ----------------- test::[implicit_constructor]: OK test::g: SKIPPED Use --show-warnings to see 2 warnings. Some functions...

Currently the helper function for default values returns simply an expression. However, in many cases default values have side effects: e.g., allocation, element/member initialization, which is currently done "manually" all...

enhancement

```solidity pragma solidity ^0.5.0; contract Test { function test(uint n) public pure { require(n > 0); int[] memory a = new int[](1); delete a; assert(a.length == 0); } } ```...

enhancement

```solidity contract Test { struct S { int x; } function test() { S[2][3] memory a; assert(a.length == 3); assert(a[0].length == 2); assert(a[1].length == 2); assert(a[0][0].x == 0); assert(a[1][0].x ==...

enhancement

How can I write solc-verify annotations for the following function to specify that the function reverts when `a>=10`? ``` contract test { function add(uint256 a) public pure returns (uint256) {...

enhancement
question

Can solc-verify handle the [ecrecover](https://solidity.readthedocs.io/en/latest/units-and-global-variables.html#mathematical-and-cryptographic-functions) function? For example, how I can write annotations that specify that this function returns the recovered address if the signature components are valid and otherwise...

enhancement
question

``` $ cat a.sol && solc-verify.py a.sol pragma solidity ^0.5.0; contract A { /// @notice postcondition address(this).balance >= __verifier_old_uint(address(this).balance) function f1() public payable { } } A::f1: ERROR - a.sol:6:5:...

enhancement

While #57 was fixed by havocing the variables, the developer can still introduce inconsistencies (e.g. by mistake) with the postconditions of unimplemented/skipped functions: ```solidity contract C { int x; function...

question

```solidity pragma solidity >=0.5.0; contract Test { struct S { int x; } S[] m_a; function test() external view { S[] memory a; a = m_a; } } ``` Gives...

enhancement

When we resize an array by assigning to length, the new elements are not set to their default value (except in the constructor). We should give at least give a...

wontfix