User interface for Tornado Cash Classic.
Go to file
Theo 1d60b4016e Fix events loading on very fast chains like Avalanche or Gnosis, where web3 provider method 'getBlockNumber' can return not accepted block 2023-07-18 23:45:12 -07:00
.github fix: file format 2022-04-22 16:13:28 +10:00
abis fix: calculate optimism l1 fee 2022-05-30 20:33:54 +10:00
app TC-98 | Add ProposalComments component with tab filters 2022-08-05 17:50:33 +10:00
assets syntax cleanup 2022-11-14 21:25:34 +00:00
components Update docs & redirect link, add Tornado RPC to all chains 2023-06-13 05:57:35 -07:00
constants Change old links & addresses 2023-07-14 11:33:54 -07:00
langs Change old links & addresses 2023-07-14 11:33:54 -07:00
layouts feat: updated gasOracle library 2022-07-11 17:15:23 +10:00
lib depreciate e712 w/ provider signing 2022-11-04 22:03:56 +00:00
middleware fix: audit 2022-06-13 17:58:35 +10:00
modules Fix endless withdrawals events loading when notes saved locally or in encrypted account 2023-07-18 23:43:56 -07:00
pages Change old links & addresses 2023-07-14 11:33:54 -07:00
plugins set proper names for indexed db stores 2023-06-22 22:00:36 +00:00
scripts Enable encrypted notes for all chains & udpate caches 2023-07-18 21:15:47 -07:00
services Fix events loading on very fast chains like Avalanche or Gnosis, where web3 provider method 'getBlockNumber' can return not accepted block 2023-07-18 23:45:12 -07:00
static Enable encrypted notes for all chains & udpate caches 2023-07-18 21:15:47 -07:00
store Fix endless withdrawals events loading when notes saved locally or in encrypted account 2023-07-18 23:43:56 -07:00
utils parallel rpc batching 2022-11-11 02:01:46 +00:00
.babelrc init 2022-04-22 13:14:19 +10:00
.env.example init 2022-04-22 13:14:19 +10:00
.eslintrc.js init 2022-04-22 13:14:19 +10:00
.gitignore Add unarchived .json event files to gitignore 2023-05-09 23:36:54 +03:00
.npmrc Change Tornado dependencies source to Tornado Git registry 2023-06-04 09:05:53 -07:00
.nvmrc init 2022-04-22 13:14:19 +10:00
.prettierrc init 2022-04-22 13:14:19 +10:00
Dockerfile init 2022-04-22 13:14:19 +10:00
LICENSE init 2022-04-22 13:14:19 +10:00
README.md update README 2023-07-04 18:20:44 +00:00
app.html return app.html 2022-06-13 20:49:07 +10:00
jest.config.js init 2022-04-22 13:14:19 +10:00
netlify.toml init 2022-04-22 13:14:19 +10:00
networkConfig.js Enable encrypted notes for all chains & udpate caches 2023-07-18 21:15:47 -07:00
nuxt.config.js Update docs & redirect link, add Tornado RPC to all chains 2023-06-13 05:57:35 -07:00
package.json Bump gas-price-oracle to fix sidechains gas stations error, update UI version to 1.1.0 2023-07-14 11:32:27 -07:00
yarn.lock Bump gas-price-oracle to fix sidechains gas stations error, update UI version to 1.1.0 2023-07-14 11:32:27 -07:00

Tornado Cash Classic UI

Self-hostable Tornado Cash UI software for interacting with the protocol

Building locally

  • Install Node.js version 14
    • If you are using nvm (recommended) running nvm use will automatically choose the right node version for you.
  • 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 with yarn 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 and PINATA_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