Our service handles thousands (currently 10000+) of users and each user has his own Ethereum deposit address. To detect a new deposit we:
- Scan each block to get a list of transactions
- Get a list of destination addresses for all transactions in the block.
- Filter addresses that belong to our users
- Get transactions for these addresses and handle each transaction
But this does not work if there is a transaction for a contract with the internal transaction (transfer) to one of our deposit address.
So my question is: What is the best way to handle transfers via contracts to thousands of our addresses?
We use Parity wallet with trace mode enabled