I'm building a few contracts to complete a Web3 eco system.
For this we have a minting contract that allows users to mint NFTs through our dapp.
The idea is that the user "creates" their NFT on the front-end, but the NFT gets minted only once the buyer is ready to pay.
We have implemented this using the signing of transaction following EIP-712.
So we sign the NFT data from the creator at the time of creating the NFT, and the buyer needs to use that sign to call the contract.
Here are a few questions:
- Should we create some kind of unique value/code every time the creator signs? (Like a nonce, but can be another random value also.)
- Can/Should we update the domain and version?
- Are there any updated best practices when it comes to implementing EIP-712?
This implementation has been done using the OZ EIP712 and ECDSA Cryptography/Utility contracts.