Hi @Aizea,
Welcome to the community
I am a Community Manager and not a Security Researcher. I would recommend appropriate testing and auditing.
Thoughts from my perspective as a Community Manager:
My preference is to only include functionality in a token that is required for the life of the token.
I would separate the purchase functionality from the token, as you are only selling tokens up until a fixed cap.
The price of the token is fixed, which may be an issue depending on the expected life of the sale. The fiat value of 0.2 Ether could drastically change (up or down) over a longer period of time.
You are currently setting a token URI when you mint. This increases the cost of minting, when all you appear to be doing is using a URI combining the baseURI, the token ID and metadata.json
, e.g. https://baseURI.com/token/1/metadata.json
. I would look at changing the naming scheme on your server to reduce this cost. See the following example:
Also look at the example in: Create an NFT and deploy to a public testnet, using Truffle