I understand ERC721Enumerable is just a convenience but seems quite a few fairly successful NFT drops I looked as references use it, so I thought it is just a standard practice, but I then ran into an NFT Drop that doesn't use it and the gas cost is 1/3, like ~50 dollars. Why is everyone still using it like it is a standard?
Am I missing something obvious here? I can't be that smart...
I'm with you. Enumerable should ideally not be used. But one reason why I've heard people choose to include it is that Etherscan will not display total supply for an ERC721 if it doesn't include Enumerable.
Ok, so I am not crazy. If you publish the contract code, you can easily see the mint function. How does Etherscan display that? can't we just put a function that returns a constant?
Yes it could be possible to include totalSupply alone without the rest of enumerability. It would add some overhead to minting though (SSTORE is expensive). It's possible that this function would be enough for Etherscan to display the supply, but someone would have to try that.
That said, it's not necessary, Etherscan could get the total supply from the contract events.