This project implements a method that gives that users could mint according to an authorization signed by the contract authorizer. Therefore saving gas and money. I'm using the Elliptic curve digital signature algorithm which encryption native to the blockchain.
This code was made following the studies and examples according to these good articles below:
🔗 EIP-712
🔗 sign-it-like-you-mean-it-creating-and-verifying-ethereum-signatures
🔗 signing-and-verifying-messages-in-ethereum
🔗 ECDSA
The token (ERC721) contains a method that expects some parameters, and it has the purpose to check if the authorization is valid or not.
Another very important feature is that the token can be changed your details attributes (bytes6) and using a dictionary to represent some information you could store more data.
✅ Solidity code
✅ Unit tests
✅ Authorizer script
Replace the values in the unit tests (/test) by the generated values
npm run mint
npm run test