EVM Toolkit (ETK)
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 (disease
).
ETK is new, and highly experimental. Use at your own risk.
Tools
Assembler: eas
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.
Disassembler: disease
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.
API Documentation
Alongside this book, you can also read the API docs generated by Rustdoc if you would like to use ETK as a library.
Dependencies
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.
License
ETK, all the source code, is released under the Apache License Version 2.0 and under the MIT License.