Skip to content

Instantly share code, notes, and snippets.

View Mayur1496's full-sized avatar
:atom:
Working

Suraj Gour Mayur1496

:atom:
Working
View GitHub Profile
@Mayur1496
Mayur1496 / Contract.sol
Created September 2, 2020 16:42
Sample Smart Contract
//https://solidity.readthedocs.io/en/v0.5.3/solidity-by-example.html
pragma solidity >=0.4.22 <0.6.0;
/// @title Voting with delegation.
contract Ballot {
// This declares a new complex type which will
// be used for variables later.
// It will represent a single voter.
struct Voter {
uint weight; // weight is accumulated by delegation
@Mayur1496
Mayur1496 / output
Created September 2, 2020 16:46
Result of oyente on Contract.sol
WARNING:root:You are using an untested version of z3. 4.5.1 is the officially tested version
WARNING:root:You are using evm version 1.8.16. The supported version is 1.7.3
WARNING:root:You are using solc version 0.5.4, The latest supported version is 0.4.19
incomplete push instruction at 3101
INFO:root:contract ./contracts/i.sol:Ballot:
INFO:symExec: ============ Results ===========
INFO:symExec: EVM Code Coverage: 93.3%
INFO:symExec: Integer Underflow: False
INFO:symExec: Integer Overflow: True
INFO:symExec: Parity Multisig Bug 2: False
@Mayur1496
Mayur1496 / Contract_lib.sol
Created September 25, 2020 07:56
Sample Solidity Contract
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.6.0 <0.8.0;
// This is the same code as before, just without comments
struct Data { mapping(uint => bool) flags; }
library Set {
function insert(Data storage self, uint value)
public
@Mayur1496
Mayur1496 / Contract_lib2.sol
Created September 25, 2020 11:16
Sample Solidity Contract
pragma solidity ^0.5.5;
library Search {
function indexOf(uint[] storage self, uint value) public view returns (uint) {
for (uint i = 0; i < self.length; i++) if (self[i] == value) return i;
return uint(-1);
}
}
contract Test {
uint[] data;
pragma solidity >=0.4.22 <0.7.0;
/// @title Voting with delegation.
contract Ballot {
// This declares a new complex type which will
// be used for variables later.
// It will represent a single voter.
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
WARNING:root:You are using an untested version of z3. 4.5.1 is the officially tested version
WARNING:root:You are using evm version 1.8.16. The supported version is 1.7.3
WARNING:root:You are using solc version 0.5.0, The latest supported version is 0.4.19
INFO:root:contract ./contracts/1.sol:Ballot:
INFO:symExec: ============ Results ===========
INFO:symExec: EVM Code Coverage: 93.0%
INFO:symExec: Integer Underflow: False
INFO:symExec: Integer Overflow: True
INFO:symExec: Parity Multisig Bug 2: False
INFO:symExec: Callstack Depth Attack Vulnerability: False
pragma solidity ^0.5.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP. Does not include
* the optional functions; to access them see `ERC20Detailed`.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
WARNING:root:You are using an untested version of z3. 4.5.1 is the officially tested version
WARNING:root:You are using evm version 1.8.16. The supported version is 1.7.3
WARNING:root:You are using solc version 0.5.5, The latest supported version is 0.4.19
INFO:root:contract ./contracts/2.sol:ERC20:
INFO:symExec: ============ Results ===========
INFO:symExec: EVM Code Coverage: 98.3%
INFO:symExec: Integer Underflow: False
INFO:symExec: Integer Overflow: False
INFO:symExec: Parity Multisig Bug 2: False
INFO:symExec: Callstack Depth Attack Vulnerability: False
pragma solidity >=0.4.11 <0.6.0;
contract C {
function f(uint x) public view returns (uint r) {
assembly {
r := extcodehash(x)
}
}
}
WARNING:root:You are using an untested version of z3. 4.5.1 is the officially tested version
WARNING:root:You are using evm version 1.8.16. The supported version is 1.7.3
WARNING:root:You are using solc version 0.5.5, The latest supported version is 0.4.19
INFO:root:contract ./contracts/3.sol:C:
INFO:symExec: ============ Results ===========
INFO:symExec: EVM Code Coverage: 98.9%
INFO:symExec: Integer Underflow: False
INFO:symExec: Integer Overflow: False
INFO:symExec: Parity Multisig Bug 2: False
INFO:symExec: Callstack Depth Attack Vulnerability: False