The fundContest function does not check if a contest has already been funded. An owner can accidentally call this function multiple times for the same index, draining their own wallet and trapping excess tokens in the Pot contract.
The function logic is:
There is no state variable (like mapping(address -> bool) isFunded) to track if the transfer has already occurred. Since the Pot logic is strictly based on the totalRewards value set at construction, any extra tokens sent to the Pot are not accounted for in remainingRewards and cannot be claimed or distributed
Likelihood:
Operational errors are common especially for unware users
Impact:
Funds are trapped in the child Pot contracts with no way to recover
Add a tracking mechanism to ensure each contest is funded exactly once.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.