Reward calculation is faulty in MartenitsaMarketplace::collectReward
function because it is not considering that user can transfer tokens and acquire new ones.
Natspec function comment says: "The user can get for every 3 different MartenitsaTokens 1 HealthToken". Which means user should be able to claim 1 health token for every 3 different Martenitsa tokens.
User has 3 Martenitsa token, and is eligible for reward.
User collects reward by calling MartenitsaMarketplace::collectReward
function.
User transfer those 3 tokens to another address.
User acquires 3 completely different tokens (different token id).
User is not eligible for rewards when calling MartenitsaMarketplace::collectReward
function.
User can be denied rewards that it has rights to because of faulty logic.
Manual review
Make reward collection logic so that is not dependent of how many tokens user has, but of how many token ids it has that were not claimed yet.
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.