I have an Ethereum node which I connect using web3j library. In the code I iterate over transactions of a particular block and try to fetch information about ERC721 transfers. In particular, I want to trace the token address.
For example, here is a transaction transferring a token on Etherscan.
Etherscan is able to reference the token address.
By checking topics in the logs of the transactions receipt, I was able to find the token id (which is a number 9984), but not the token address.
Question: How to get a token address from an ERC721 transaction? How does Etherscan do it?