tornadocash / tornado-cli Goto Github PK
View Code? Open in Web Editor NEWA command line interface to make transactions in Tornado Cash protocol
A command line interface to make transactions in Tornado Cash protocol
It uses outdated poorly coded merkle tree implementation. fixed-merkle-tree
implementation is much cleaner, example how to use it can be found in https://github.com/tornadocash/tornado-core/blob/master/src/cli.js
One of the main problem for adoption of tornado cash is the gas cost that with the recent congestion of the Ethereum network is getting really high, I think a good feature to add would be to add a function that continuously check if the gas price is under a certain value (set by the user) and when it is, it send the proof for the withdraw to the relayer.
It can be added as parameter to the executable, something like: --gasunder <gas>
As bonus to this you get that you have a withdraw at a random time, so if someone try to analyze the time of withdraw and send to to understand the timezone where the transactions came from it would be useless.
Integrate the Chainlink Oracle to obey sanctions made by Americans.
See also: https://twitter.com/TornadoCash/status/1514904975037669386
Since the blockage of sanctioned addresses is made from frontend ( UI ) not the contract itself, cli should obey the sanctions as well.
so i tried using the tornado cash app ( i am talking about the tornado cash classic ) to test the deposit and withdraw functionality
and at the same time, i submitted some notes in tornado cli
i used the same wallet ( public and private keys ) for both, the app and the cli
however, i was surprised to find that any deposits on the cli are not shown in the tornado cash app ?
are these apps not connected to the same backend ? or are these two different applications ?
i would like to know why there are inconsistencies between the cli and the cash app
Should enable users to sync events faster than web3.
Tornado-CLI should be more user-friendly.
Instead of knowing specific commands for cli, creating prompts to show commands would be an ideal solution and will provide better UX for beginners.
Suggested by @rstormsf
After modulization of the code, adding typescript support would be possible.
TBD
Using RelayerAggregator contract which is deployed on mainnet https://etherscan.io/address/0xE8F47A78A6D52D317D0D2FFFac56739fE14D1b49 & Relayer Subgraph , fetching necessary relayers is possible.
Will work great with the upcoming solution of #42.
Metamask doesn't injects web3.js to window.web3 https://docs.metamask.io/guide/provider-migration.html ( Current code relies on it
Line 896 in 6ea1985
Also adding support for various web3 providers and extensions with demo html page would be good.
Add package.json
"bin"
field for npx support
https://docs.npmjs.com/files/package.json#bin
ideally, the bin name should be the same as the package name
New proxy has deployed to support relayer registry
https://etherscan.io/address/0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b
since Tornado does not have rpcs for different languages, is it possible to make the output of tornado-cli commands ( for example the deposit / withdraw note commands ) into json-string style output
this way, we can execute tornado-cli terminal commands within any coding language and use the json-friendly output in the application logic
Makes the code much simpler
this is another problem related to withdraw, if i try withdrawing with the private key and withdraw to the same wallet as the one used to deposit the note
i get an error saying "Invalid withdraw proof"
i don't understand what proof do i need to resolve this problem since i am using the same private key, the recipient is the same as the depositor and the same note is being used
screenshot of error is below ;
Support faster async call for tornado-cli
Should follow after #23
Also it makes request to etherscan, which is not cool. I think a confirmation popup should be presented before the request.
The IP check contacts a tornado cash domain, and it might do this over the clear net. Either people should be prompted before doing the IP check or we should remove the IP check in totality and prompt if the user is not connecting over a Tor port.
Case: User runs a local node that is not over Tor and connects to it. Boom, without warning tornado-cli contacts a tornado cash domain name and now their system administrator and ISP knows they were using tornado.
Contract address for nova: https://nova-deploy.tornado.cash
ETH:
Deployment Proxy: https://etherscan.io/address/0xd408455e186CD6447A196DdA6BBaFa6556a2555F
L1 Helper: https://etherscan.io/address/0xCa0840578f57fE71599D29375e16783424023357
Gnosis Chain:
Deployment Proxy: https://blockscout.com/xdai/mainnet/address/0xd408455e186CD6447A196DdA6BBaFa6556a2555F
Hasher: https://blockscout.com/xdai/mainnet/address/0x94C92F096437ab9958fC0A37F09348f30389Ae79/contracts
Verifier2: https://blockscout.com/xdai/mainnet/address/0xDF3A408c53E5078af6e8fb2A85088D46Ee09A61b/contracts
Verifier16: https://blockscout.com/xdai/mainnet/address/0x743494b60097A2230018079c02fe21a7B687EAA5/contracts
TornadoCash Nova Implementation: https://blockscout.com/xdai/mainnet/address/0xb71f45676446DeB0baD5e28CdB72b5E7B0666436/contracts
Cross-chain Upgradeable Proxy: https://blockscout.com/xdai/mainnet/address/0xD692Fd2D0b2Fbd2e52CFa5B5b9424bC981C30696/contracts
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.