When it comes time to do the actual minting, it seems that every ERC721 contract out there calls the 2-argument version of the _safeMint() function, which in turn then proceeds to immediately internally call the 3-argument version of _safeMint().
Here's what I mean - this is the code directly from OpenZeppelin's official ERC721.sol contract:
// The 2-argument version: function _safeMint(address to, uint256 quantity) internal { // Immediately call the 3-argument version: _safeMint(to, quantity, ""); } // And here's that 3-argument version: function _safeMint(address to, uint256 quantity, bytes memory _data) internal { // minting logic/code, usually eventually calling: _mint(); } So like I said, I've seen this pattern again and again and again, in pretty much every minting contract out there.
So I'm wondering if there's any reason why we can't just directly call the 3-argument version from our contract and skip that 2-argument version - since it all it seems to do is call the 3-argument version anyway - and be done with it?
Especially if we know we'll never have any real value for the data argument that has to get passed in, and can therefore just happily pass "" for it ourselves?