Proposal to decentralize Tornado Cash source code via IPFS on ENS domains
Go to file
2023-10-02 04:56:50 -07:00
data Update generated data about ENS nodes and IPFS CIDs 2023-09-29 23:47:52 -07:00
lib Update IPFS CIDs for proposal 29 2023-08-30 12:05:46 -07:00
scripts Add scripts to calculate all new ENS nodes and IPFS hashes 2023-09-29 05:12:03 -07:00
src Create proposal code and test contracts on Goerli 2023-09-29 23:47:24 -07:00
test Add tests 2023-10-02 04:56:50 -07:00
.env.bat.example Initial commit 2023-07-25 17:39:19 +02:00
.env.example Initial commit 2023-07-25 17:39:19 +02:00
.gitignore Add scripts to calculate all new ENS nodes and IPFS hashes 2023-09-29 05:12:03 -07:00
.gitmodules Initial commit 2023-07-25 17:39:19 +02:00
.nvmrc Add scripts to calculate all new ENS nodes and IPFS hashes 2023-09-29 05:12:03 -07:00
foundry.toml Initial commit 2023-07-25 17:39:19 +02:00
package.json Add tests 2023-10-02 04:56:50 -07:00
README.md Change deployed contract link 2023-10-01 09:59:11 -07:00
remappings.txt Initial commit 2023-07-25 17:39:19 +02:00
tsconfig.json Add proposal code and tests 2023-07-28 05:43:53 -07:00

Proposal to update Tornado IPFS hashes in ENS

Changes / effect description

  • Create new tornadocash.eth subdomains written in contants.ts and set Governance as owner for all
  • Assign corresponding IPFS contenthash to each domain

Requirements

Installation

git clone --recurse-submodules https://git.tornado.ws/Theo/proposal-30-decentralize-sources
cd proposal-30-decentralize-sources
npm install

Testing

npm run test:windows

or

npm run test:linux

Contracts

Proposal deployed contract: 0x775Cf01c12D3E4296c7c9b52C8B835c071068F51

Goerli test ENS address: tornadotest.eth (to see content, you need to connect wallet and switch to Goerli Testnet on app.ens.domains)

Verification

Since the proposal code can be confusing because it relies on numerous specifications and EIPs, users can use scripts to verify the correctness of the data, see the output in the corresponding files, and insert the code directly into Solidity, comparing it with the existing code in the proposal (there should be no discrepancies be).

  1. Verification of the transformation of eth domains into ENS nodes:

    Script source: calculateENSNodes.ts

    Command to run: npm run calculateENS

    Result data: ensNodesDeclarations.txt

  2. Verification of the transformation of IPFS CIDs to ENS content hashes

    Script source: calculateIPFSContenthashes.ts

    Command to run: npm run calculateIpfs

    Result data: ensDomainsIPFSContenthashes.txt

  3. Verification of the equality IPFS CIDs v0 with v1 (because ENS on its interface shows v1 CIDs, but Pinata and contenthash library uses v0)

    Script source: calculateIpfsV1Cids.ts

    Command to run: npm run calculateIpfsV1Cids

    Result data: ipfsV1CIDs.txt