Oyente Integration

Lity now integrate analysis tool Oyente and generates analysis report after compiling contract if Oyente installed.


Install our lityc and evm.


Execute a python virtualenv

virtualenv -p python3 env
source env/bin/activate

Download Oyente

git clone https://github.com/CyberMiles/oyente.git
cd oyente

Install Oyente requirements

pip install -r requirements.txt

Install Oyente

pip install .


After running lityc, it will automatically invoke oyente command if installed.

$ cat StringReverse.sol

pragma lity ^1.2.4;
contract StringReverse {
  function test() public pure returns (string) {
    string memory ret;
    ret = eni("reverse", "Hello, world");
    return ret;
  function reverse(string src) public pure returns (string) {
    string memory ret;
    ret = eni("reverse", src);
    return ret;
$ lityc --abi StringReverse.sol

======= StringReverse.sol:StringReverse =======
Contract JSON ABI

INFO:root:contract StringReverse.sol:StringReverse:
INFO:oyente.symExec:    ============ Results ===========
INFO:oyente.symExec:      EVM Code Coverage:                     29.8%
INFO:oyente.symExec:      Parity Multisig Bug 2:                 False
INFO:oyente.symExec:      Callstack Depth Attack Vulnerability:  False
INFO:oyente.symExec:      Transaction-Ordering Dependence (TOD): False
INFO:oyente.symExec:      Timestamp Dependency:                  False
INFO:oyente.symExec:      Re-Entrancy Vulnerability:             False
INFO:oyente.symExec:    ====== Analysis Completed ======