After closePot distributes the manager cut and claimant bonuses, it doesn't zero out remainingRewards or mark the pot as closed. Since the 90-day check still passes on subsequent calls, the owner can call closePot over and over. Each call sends another round of manager cut and claimant payouts from whatever tokens are still in the pot.
This is especially impactful combined with H-01: because H-01 leaves tokens stuck in the pot after the first close, those stuck tokens fund additional rounds of payouts that were never meant to happen.
Likelihood: The owner (trusted) has to call it multiple times. But since there's no guard at all, any compromised admin key or governance mistake triggers this. Also, if closeContest is accidentally called twice, claimants silently get double-paid.
Impact: Claimants receive extra payouts they shouldn't get. The accounting breaks — remainingRewards never reflects reality. Combined with H-01's stuck tokens, the pot can be drained across multiple close calls.
10 players, only player[0] claims. After the first close, 729 tokens are stuck (H-01). The second close succeeds and pays player[0] again.
Zero out remainingRewards after distributing so the if (remainingRewards > 0) guard prevents re-entry.
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.