Go to file
2021-02-14 11:02:24 +03:00
abi initial 2020-12-15 18:10:11 +03:00
deployer@c6526c7f02 update salt 2021-02-14 11:02:24 +03:00
src update salt 2021-02-14 11:02:24 +03:00
tornado-core@f5d8f6d971 update salt 2021-02-14 11:02:24 +03:00
.env.example update salt 2021-02-14 11:02:24 +03:00
.eslintrc initial 2020-12-15 18:10:11 +03:00
.gitignore initial 2020-12-15 18:10:11 +03:00
.gitmodules update salt 2021-02-14 11:02:24 +03:00
.prettierrc initial 2020-12-15 18:10:11 +03:00
build.sh update salt 2021-02-14 11:02:24 +03:00
instances.js update salt 2021-02-14 11:02:24 +03:00
package.json update salt 2021-02-14 11:02:24 +03:00
README.md readme 2020-12-18 01:31:35 +03:00
yarn.lock initial 2020-12-15 18:10:11 +03:00

Dependencies

  1. node 12
  2. yarn
  3. zkutil (brew install rust && cargo install zkutil) (needed only for circuit compilation and setup)

Usage

git clone --recursive https://github.com/tornadocash/tornado-deploy
cd tornado-deploy
cp .env.example .env
yarn

# optionally copy production snark circuits
mkdir -p tornado-anonymity-mining/build && cp -R ~/Downloads/circuits ./tornado-anonymity-mining/build

yarn build

Note: build script will globally yarn link torn-token package

Note: build script will not recompile snark circuit if compilation result already exists

The result of the build is actions.json file, that contains everything that is needed to deploy contracts on Ethereum along with expected deploy addresses.

Reproducible build

In order to generate exactly the same actions.json the code has to be compiled in /private/tmp/tornado-deploy dir because solidity compiler includes a hash of full path to files into contact bytecode as swarm hash. If you compile in other dir this swarm hash will be different. It doesn't affect contract execution but your actions.json will have a different hash from the initiation version.

Verify addresses

cat actions.json | jq '.actions[] | {domain,expectedAddress,contract} '