A verified charity can use their donated funds to donate to themselves and receive DonationReceipt
tokens in an almost unlimited quantity - limited by the sum of their gas costs vs balance.
There is no check that prevents a charity from donating to itself. Therefore, each charity can mint a DonationReceipt
token as many times as it wants.
The purpose of DonationReceipt
tokens is to identify donors. However, allowing charities to make donations themselves makes the DonationReceipt
obsolete. You don't really know if the address on the receipt actually donated eth to a charity.
Run the following test in the GivingThanks.t.sol
test contract.
Depending on your policy, you may:
prohibit any registered/verified charity from making donations
prohibit any verified charity from making donations to itself.
Likelyhood: Informational/Very low, admin will verified the contract. Impact: High, NFT with real value for free. I accept this one has a Low due to its High Impact.
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.