solgraph
Generates a DOT graph that visualizes function control flow of a Solidity contract and highlights potential security vulnerabilities.
Install
$ npm install --save -g solgraph
Usage
$ cat solgraph MyContract.sol > MyContract.dot
strict digraph {
MyContract
Mint [color=gray]
Withdraw [color=red]
UNTRUSTED
GetBalance [color=blue]
MyContract -> Mint
Withdraw -> UNTRUSTED
}
You have to install graphviz to render the DOT file as an image:
$ dot -Tpng MyContract.dot > MyContract.png
The above example uses the following MyContract.sol:
contract MyContract {
uint balance;
function MyContract() {
Mint(1000000);
}
function Mint(uint amount) internal {
balance = amount;
}
function Withdraw() {
msg.sender.send(balance);
}
function GetBalance() constant returns(uint) {
return balance;
}
}
Node Module
import { readFileSync } from 'fs'
import solgraph from 'solgraph'
const dot = solgraph(fs.readFileSync('./Simple.sol'))
console.log(dot)
License
ISC © Raine Revere