Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Openzeppelin Contracts | 21,813 | 51 | 1,033 | 21 hours ago | 63 | September 07, 2022 | 180 | mit | JavaScript | |
OpenZeppelin Contracts is a library for secure smart contract development. | ||||||||||
Smart Contract Best Practices | 6,529 | 3 months ago | 22 | |||||||
A guide to smart contract security best practices | ||||||||||
Capstone | 6,265 | 2 | 2 days ago | 2 | April 12, 2022 | 349 | other | C | ||
Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings. | ||||||||||
Awesome Solidity | 5,801 | 4 days ago | 7 | |||||||
⟠ A curated list of awesome Solidity resources, libraries, tools and more | ||||||||||
Quorum | 4,319 | 2 | 21 hours ago | 200 | March 14, 2022 | 26 | lgpl-3.0 | Go | ||
A permissioned implementation of Ethereum supporting data privacy | ||||||||||
Meshbird | 3,446 | 2 months ago | January 30, 2016 | 12 | apache-2.0 | Go | ||||
Distributed private networking | ||||||||||
Manticore | 3,371 | 1 | 1 | 8 days ago | 723 | July 07, 2022 | 261 | agpl-3.0 | Python | |
Symbolic execution tool | ||||||||||
Mythril | 3,083 | 8 | 3 | 10 days ago | 292 | June 20, 2022 | 92 | mit | Python | |
Security analysis tool for EVM bytecode. Supports smart contracts built for Ethereum, Hedera, Quorum, Vechain, Roostock, Tron and other EVM-compatible blockchains. | ||||||||||
Lighthouse | 2,269 | 20 hours ago | 1 | December 29, 2021 | 271 | apache-2.0 | Rust | |||
Ethereum consensus client in Rust | ||||||||||
Echidna | 2,017 | 18 hours ago | 128 | agpl-3.0 | Solidity | |||||
Ethereum smart contract fuzzer |
Generates a DOT graph that visualizes function control flow of a Solidity contract and highlights potential security vulnerabilities.
Legend:
Generated from contract:
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;
}
}
npm install -g solgraph
Depending on your permissions, you may need to add the unsafe-perm
flag:
sudo npm install -g solgraph --unsafe-perm=true --allow-root
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 have graphviz installed (brew install graphviz
) to render the DOT file as an image:
dot -Tpng MyContract.dot -o MyContract.png
A nice example of piping contract source that is in your clipboard through solgraph, dot, and preview: (Use whatever image previewer is available on your system; Preview.app is available on Mac)
pbpaste | solgraph | dot -Tpng | open -f -a /Applications/Preview.app
import { readFileSync } from 'fs'
import solgraph from 'solgraph'
const dot = solgraph(fs.readFileSync('./Simple.sol'))
console.log(dot)
/*
Foo
Bar
Foo -> Bar
*/
ISC © Raine Revere