Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/holiman/goevmlab
Evm laboratory
https://github.com/holiman/goevmlab
Last synced: 6 days ago
JSON representation
Evm laboratory
- Host: GitHub
- URL: https://github.com/holiman/goevmlab
- Owner: holiman
- License: lgpl-3.0
- Created: 2019-08-23T07:29:23.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-01T12:53:34.000Z (about 1 month ago)
- Last Synced: 2024-11-21T08:14:51.192Z (22 days ago)
- Language: Go
- Size: 85.9 MB
- Stars: 247
- Watchers: 6
- Forks: 46
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
- Library-of-Ethereum - Go EVMLab - This project is inspired by EVMlab, which was written in Python (EVM / Cairo)
README
# Go evmlab
This project is inspired by [EVMlab](https://github.com/ethereum/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](examples/calltree/README.md) 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.
![tracediff](docs/tracediff.png)
![tracediff](docs/tracediff2.png)## Traceview
Traceview allows you to analyse an evm trace file
![traceview](docs/traceview.png)
## Trophy list
Bugs found via the fuzzer or via tests generated using go-evmlab in general
- Nethermind erroneous gas in BLS-multiexp: https://github.com/NethermindEth/nethermind/issues/2208
- Geth error calculating BLS gas: https://github.com/ethereum/go-ethereum/pull/21253
- Besu error on EIP-2929 [bug](https://github.com/holiman/goevmlab/issues/24) and [fix](https://github.com/hyperledger/besu/pull/1468)