Go evmlab
This project is inspired by EVMlab, which was
written in Python. EVMlab featured a minimal "compiler", along with some tooling
to view traces in a UI, and execute scripts against EVMs (parity and geth).
This is a golang rewrite from scratch of that same project, this time in go-lang to be more stable
and nice to use.
Status
So far, it only contains
- a minimal "compiler", which is not a proper compiler, but it can be used to create EVM bytecode and do some basic higher level operations.
- Some infrastructure for writing EVM-based fuzzers
Examples
See [examples/calltree](the calltree example) to get an idea of how to use this
thing, along with an analysis done using
this framework.
Utilities
There are a few different utilities in this repo, based on this library.
Tracediff
Tracediff allows you to load evm (jsonl) files and find differences.
Traceview
Traceview allows you to analyse an evm trace file
Trophy list
Bugs found via the fuzzer or via tests generated using go-evmlab in general