I’m currently looking at the raw Event data of the differerent Tornado Cash contracts and there is something I don’t understand:
Let’s take the 0.1 ETH contract as an example for the following…
I expected that every deposit must be attached with 0.1 ETH which is not the case. For example transactions like this one trigger various Deposit Events without having ETH attached to them.
How is this possible, or in other words, how does a deposit works from the contract’s perspective?
I have not yet digged deeper into the fallback function or functions like “migrateState” and would be happy if someone already knows TornadoCash by heart and could explain this to me!
What would be important for me to know is:
Is it legitimate to assume that every Deposit Event truely indicates a deposit into the contract, even though it is triggered together with hundreds of other Deposit Events within the same transaction and even though no value is transferred in the respective transaction?
The same for withdrawals: Can it be assumed that every time a Withdrawal Event is triggerd, 0.1 ETH left the contract?
I’m working on a Tornado Cash dashboard but this logic-barriers make it difficult for me.