Hello!
This repository contains the source code for several Ethereum tools hand-crafted and maintained by DappHub, along with dependency management, courtesy of Nix.
Contents:
- Dapp - all you need Ethereum development tool. Build, test, debug & deploy solidity contracts.
- Seth - Ethereum CLI. Query contracts, send transactions, follow logs, slice & dice data.
- Hevm - Ethereum evaluator. Fully complient Haskell EVM implementation.
- Ethsign - sign Ethereum transactions from a local keystore.
All tools and dependencies can be automaticaly installed by running:
curl https://dapp.tools/install | sh
You may also need to add the nix binaries to your path:
export PATH="$PATH:$HOME/.nix-profile/bin"
For a manual install, please follow the instructions below.
Make sure you are using Nix v2
curl https://nixos.org/nix/install | sh
# Run this or login again to use Nix
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
If you want to cache the binary builds across several computers, Nix provides several ways of doing this, the most convenient being the Cachix service.
We maintain a public cache which you can use by installing Cachix
nix-env -if https://github.com/cachix/cachix/tarball/master --substituters https://cachix.cachix.org --trusted-public-keys cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM=
then running
cachix use dapp
followed by restarting your Nix daemon (if on a multi-user Nix installation)
To install tools from this repository, you need to run
git clone --recursive https://github.com/dapphub/dapptools $HOME/.dapp/dapptools
nix-env -f $HOME/.dapp/dapptools -iA dapp seth solc hevm ethsign
which will build and install these tools into your Nix profile, optionally fetching the binaries from the cache if you have configured it.
For a list of the supported solc
versions, check
./nix/solc-versions.nix
.
You can specify a solc
version to run within dapp
with dapp --use solc:x.y.z test
, but you can also install solc
"standalone" (i.e. add it to
your $PATH
) with:
$ nix-env -f $HOME/.dapp/dapptools -iA solc-versions.solc_0_5_0
Versions of solc
that haven't yet landed in nixpkgs can be found under the
unreleased
key: solc-versions.unreleased.solc_x_y_z
. Again, refer to
./nix/solc/versions.nix
for a list of supported
unreleased versions.
NOTE: not all versions are supported on macOS platforms.
Instructions for adding new versions of solc
can be found at
nix/solc-updates.md