User interface for Tornado Cash Classic.
Go to file
Theo 50d917a33e Update relayer version checks 2023-07-25 03:45:42 -07:00
.github Remove unused Alchemy keys & censored Infura links 2023-07-18 23:55:42 -07: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 Remove unused Alchemy keys & censored Infura links 2023-07-18 23:55:42 -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 Update relayer version checks 2023-07-25 03:45:42 -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 Remove unused Alchemy keys & censored Infura links 2023-07-18 23:55:42 -07: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 Remove unused Alchemy keys & censored Infura links 2023-07-18 23:55:42 -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