The URI metadata generated for NFTs in the GivingThanks contract does not include the tokenCounter and charity making it possible for identical donations to result in duplicate URIs.
The _createTokenURI function creates metadata that does not incorporate tokenCounter and charity address, meaning that multiple donations with identical parameters (donor address, timestamp, and amount) could generate duplicate URIs. This undermines the uniqueness of each NFT, a core aspect of its identity and traceability.
Duplicate metadata for NFTs can lead to ambiguity and reduce the reliability of donation receipts as unique records. This could erode trust in the platform and detract from the donor experience.
Manual Code Review
Include tokenCounter and charity as part of the metadata in _createTokenURI to ensure each URI is unique. For example:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.