The EVM Toolkit (or ETK) is a collection of tools for creating and analyzing smart contract programs on the Ethereum Virtual Machine. So far it consists of an assembler (
eas) and a disassembler (
ETK is new, and highly experimental. Use at your own risk.
The assembler lives in the
etk-asm crate, and provides a command-line interface (
eas) and a Rust library. The assembler has a couple notable features:
- Importing multiple files into the same scope, for organization.
- Including files in a separate scope, for constructors and initialization code.
- Automatic push size selection.
- Solidity-style function selectors.
The disassembler lives in the
etk-dasm crate, and also provides a command-line interface (
disease) and a Rust library. The disassembler is much more experimental, and has a limited set of features:
- Disassemble hex or binary encoded instructions into their mnemonics.
- Identify basic blocks.
Alongside this book, you can also read the API docs generated by Rustdoc if you would like to use ETK as a library.
ecfg requires z3 to build
Ubuntu Installation Instructions (example):
sudo apt-get update -y sudo apt-get install -y z3
Check the system logs to confirm that there are no related errors.