User interface for Tornado Cash Classic.
Go to file
Theo 9e1a3c16d2 Merge pull request 'proposal 44' (#29) from ButterflyEffect/classic-ui:development into master
Reviewed-on: #29
2024-01-02 23:13:15 +01:00
.github Remove unused Alchemy keys & censored Infura links 2023-07-18 23:55:42 -07:00
abis Rename 'gasPrices' scope to 'fees', and use it to estimate all network withdrawal fee 2023-08-22 09:23:18 -07: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 allow wallet withdrawal if no relayers 2023-12-25 13:16:32 +00: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 Rename 'gasPrices' scope to 'fees', and use it to estimate all network withdrawal fee 2023-08-22 09:23:18 -07: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 saving bloom to IDB for sidechains & clarify logs for encrypted notes account loading 2023-08-28 02:54:44 -07:00
pages Change old links & addresses 2023-07-14 11:33:54 -07:00
plugins Fix saving bloom to IDB for sidechains & clarify logs for encrypted notes account loading 2023-08-28 02:54:44 -07:00
scripts fix update script 2023-12-04 15:09:30 +00:00
services Update self-hosted tornado packages 2023-09-18 23:16:52 -07:00
static update cache 2023-12-04 15:09:44 +00:00
store change quorum (proposal 41) 2023-12-19 17:39:47 +00: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 Update tornado-oracles dependency to fix BSC gas price underestimate problem 2023-08-30 08:33:06 -07:00
.npmrc Change Tornado dependencies source to Tornado Git registry 2023-06-04 09:05:53 -07:00
.nvmrc Update tornado-oracles package to fix gas price issues for sidechains & specify explicit node version in .nvmrc 2023-08-28 04:19:45 -07: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 self-hosted tornado packages 2023-09-18 23:16:52 -07: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 add fallback avax rpc 2023-12-19 17:15:46 +00:00
nuxt.config.js Remove unused Alchemy keys & censored Infura links 2023-07-18 23:55:42 -07:00
package.json Update self-hosted tornado packages 2023-09-18 23:16:52 -07:00
yarn.lock Update self-hosted tornado packages 2023-09-18 23:16:52 -07:00

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.
  • 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