Popularity
6.3
Declining
Activity
0.0
Stable
16
2
5
Monthly Downloads: 3
Programming language: Haskell
License: Apache License 2.0
Latest version: v3.3.4
ethereum-analyzer alternatives and similar packages
Based on the "ethereum" category.
Alternatively, view ethereum-analyzer alternatives based on common mentions on social networks and blogs.
-
ethereum-client-haskell
A Haskell version of an Ethereum client -
ethereum-merkle-patricia-db
A modified Merkle Patricia DB
Updating dependencies is time-consuming.
Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.
Promo
blog.mergify.com
Do you think we are missing an alternative of ethereum-analyzer or a related project?
README
ethereum-analyzer

Usage
Solidity Control Flow Graph (CFG) Generation
stack build --profile &&\
solc --combined-json ast examples/etherscan.io/CryptoKittiesCore.sol |\
stack exec -- ea-analyze &&\
find work/ -name "*.dot" -exec dot -Tpng -O \{\} \;
generates CFGs like
[Solidity CFG](./doc/img/KittyOwnership.tokensOfOwner.CFG.dot.png)
whose original code looks like
function tokensOfOwner(address _owner) external view returns(uint256[] ownerTokens) {
uint256 tokenCount = balanceOf(_owner);
if (tokenCount == 0) {
return new uint256[](0);
} else {
uint256[] memory result = new uint256[](tokenCount);
uint256 totalCats = totalSupply();
uint256 resultIndex = 0;
uint256 catId;
for (catId = 1; catId <= totalCats; catId++) {
if (kittyIndexToOwner[catId] == _owner) {
result[resultIndex] = catId;
resultIndex++;
}
}
return result;
}
}
Solidity Linter (WIP)
stack build
solc --combined-json ast\
examples/analysis-benchmark/selfdestruct-over-suicide.sol |\
stack exec ea-analyze
EVM CFG Generation
stack build
cat examples/etherscan.io/CryptoKittiesSalesAuction.evm | stack exec -- ea-bytecode-vis --outDot=work/tmp.dot &&\
dot -Tpng work/tmp.dot -O
generates a pretty large CFG for the whole EVM bytecode sequence, part of which looks like
[EVM CFG](./doc/img/CryptoKittiesSalesAuction.evm.part.dot.png)