The ContestManager.sol
and Pot.sol
contracts are not compatible with Fee on transfer tokens, these tokens are tokens that tax each transfer, so the amount received is less than the amount sent.
The vulnerability starts from the ContestManager.sol:fundContest
function, it transfers the totalRewards
to the pot but for Fees on transfer tokens, the amount received is less than the amount sent. This will lead to the pot having less totalRewards
than intended because of this the last set of recipients will not be able to claim.
The Pot.sol
contract uses the _transferReward
function to transfer rewards, this function doesn't support Fees on transfer tokens either.
Some users won't be able to claim their cut as the balance.
The manager will not be able to close the pot.
The manager won't be able to close the pot because the transaction will revert, as the remaining rewards will be greater than the contract's actual balance.
Manual analysis
Do not use Fee on transfer token with the protocol.
Design the protocol to support Fees on transfer tokens.
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.