A winner blacklisted by reward token could either block rewards distribution or denied receiving their rewards.
Distributor._distribute() loops through array of winners[] to distribute JPYC to winners. but tokens like USDC/USDT have a blacklist that could block the winner from sending or receiving tokens. if any of the winner happens to be blacklisted this could block reward distribution, or user would be unable to receive their reward if they are excluded from the array and percentage recalculated.
https://github.com/Cyfrin/2023-08-sparkn/blob/main/src/Distributor.sol#L147
blocklisted winner could block/denied reward distribution
Manual Review
Use pull over push in reward distribution.
distribute_ could store rewards for winners in a mapping, then create a function for winners to claim their rewards to arbitrary address and reset the mapping afterwards.
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.