User interface for Tornado Cash Classic.
|
||
---|---|---|
.github | ||
abis | ||
app | ||
assets | ||
components | ||
constants | ||
langs | ||
layouts | ||
lib | ||
middleware | ||
modules | ||
pages | ||
plugins | ||
scripts | ||
services | ||
static | ||
store | ||
utils | ||
.babelrc | ||
.env.example | ||
.eslintrc.js | ||
.gitignore | ||
.npmrc | ||
.nvmrc | ||
.prettierrc | ||
app.html | ||
Dockerfile | ||
jest.config.js | ||
LICENSE | ||
netlify.toml | ||
networkConfig.js | ||
nuxt.config.js | ||
package.json | ||
README.md | ||
yarn.lock |
Tornado Cash Classic UI
Self-hostable Tornado Cash UI software for interacting with the protocol
Building locally
- Install Node.js version 16
- If you are using nvm (recommended) running
nvm use
will automatically choose the right node version for you.
- If you are using nvm (recommended) running
- Install Yarn
- Install dependencies:
yarn
- Copy the
.env.example
file to.env
- Replace environment variables with your own personal.
- Build the project to the
./dist/
folder withyarn generate
.
Development builds
To start a development build (e.g. with logging and file watching) run yarn dev
.
Deploy on IPFS
- Make sure you set
PINATA_API_KEY
andPINATA_SECRET_API_KEY
environment variables in.env
- To deploy a production build run
yarn deploy-ipfs
.
Architecture
For detailed explanation on how things work, checkout Nuxt.js docs.
Audit
TornadoCash_Classic_dApp_audit_Decurity.pdf
Update cached files
- To update deposit and withdrawal events use
yarn update:events {chainId} {optional: tokenOrEvent} {optional: tokenOrEvent}
- To update encrypted notes use
yarn update:encrypted {chainId}
- To update merkle tree use
yarn update:tree {chainId}
NOTE!
After updating cached files do not forget to use yarn update:zip
.
Example for Ethereum Mainnet:
You may set in networkConfig.js
the blockSyncInterval
(def: 10_000) to the maximum value allowed by your RPC provider. Command usage follows below.
# Updating events with just the required chain id parameter
yarn update:events 1
# Updating events for only one token across all instances on that network
yarn update:events 1 dai
# Updating events for only one event on only some network
yarn update:events 1 deposit
# Both
yarn update:events 1 dai deposit
# Updating encrypted notes for some chain id
yarn update:encrypted 1
# Updating trees for some chain id
yarn update:tree 1
# Finally zips must be updated
yarn update:zip
Example for Binance Smart Chain:
yarn update:events 56
yarn update:events 56 bnb
yarn update:events 56 bnb deposit
yarn update:encrypted 56
yarn update:tree 56
yarn update:zip