KittyConnect::mintCatToNewOwner
checks that catOwner
is not a shop partner, but KittyConnect::safeTransferFrom
does not.
Shop partner could create a smart contract whose owner is themselves, so that they will have full control of it. After they can mint any number of cats to these contracts, call approve()
from that contract to their own address and after use KittyConnect::safeTransferFrom
to get the cat. This can be repeated any number of times.
The protocol will be breaken if some user is able to get any number of cats for free with no limit.
Manual review
Foundry testing
There must be a check in the KittyConnect::safeTransferFrom
which prevents a shop partner from getting cats to their address:
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.