I am going to deploy Tornado Cash contract to ZKSync network. In the Tornado Cash constructor, it takes an argument:
Ihasher _hasher;
where the Ihasher is:
interface IHasher {
function MiMCSponge(uint256 in_xL, uint256 in_xR) external pure returns (uint256 xL, uint256 xR);
}
I tried to find this solution at Tornado Cash Hasher contract - circom. Thanks for this blog post. I learned a lot from this answer.
Our project involves deploying a critical smart contract component known as “Hasher”, which is essential to the functionality of our application. This contract was originally designed as EVM bytecode and requires modification or translation to be compatible with the zkSync environment.
The script that Tornado uses to deploy is:
https://github.com/tornadocash/tornado-core/blob/master/scripts/compileHasher.js
I think this script is for Ethereum and not ZkSync. Therefore, you will need to modify your "Hasher" contract or deployment process to ensure compatibility with zkSync, maintain functionality, and ensure successful deployment.
If you have a solution, please kindly teach me.