(ERC721A doc: https://chiru-labs.github.io/ERC721A/#/erc721a?id=_mint)
ERC721A repo: https://github.com/chiru-labs/ERC721A)
I have a collection where my whitelist with around 200 users will hand pick the tokens they want before the contract is deployed
They will pay zero fee for the minting, only the gas price
Since ERC721A does not implement the mint function with a tokenID (amount instead) there is no straightforward way for me to deliver these specific tokens to my whitelist
Could someone suggest a safe approach to do so?
I will have knowledge of both the tokenIDs and their corresponding addresses, I just need to find a way to call some other custom mint/transfer function when they connect to my minting dapp
Initially I was thinking to create the collection with a max supply that does not include the 200 for the whitelist, and leave them as the last tokens on list, for example, say the entire collection has 1000 tokens, I'd put the max supply as 800, and deal with those 200 in a different way.
The easiest obvious way that I thought was to call a transfer function since I'll have their addresses, but paying gas myself for minting the 200 and then also for the transactions is a no go.
Looking at the ERC721A docs I see that the approve function could be used so that they get approved for their specific tokens and then pay for the transfer to themselves, but I would be the one to issue all the 200 approve calls and I bet this would have similar or same gas fee. I would do so only if the fees are zero or irrelevant, but I don't think I can count with that.
Also, I'm not sure if approve could work since I'd have to approve for a token that has never been minted before.