closePot() performs the final settlement, but it never marks the pot as settled, and claimCut() has no awareness of it.
According to the protocol description, the 90-day window exists so that the manager can take a cut and distribute the remainder "equally to those who claimed in time". Players who miss the window are meant to be excluded.
They are not. After the settlement, every player who did not claim still has a non-zero entry in playersToRewards and can call claimCut() to withdraw their full original reward from the same balance that was just used for the settlement. The late claim is indistinguishable from a timely one, so the funds that the settlement was about to redistribute are taken by players the settlement was supposed to exclude.
Likelihood: High. Any player who did not claim before the deadline can claim immediately after the settlement, at a point where the pot still holds the undistributed remainder. No special conditions are required.
Impact: Medium. Rewards reserved for the settlement are drained by late claimants, so players who claimed in time receive less than the settlement computes, and the manager's cut is taken from a pool that then shrinks. The documented settlement rule is violated in every contest where a player misses the deadline.
Four players with 100 each, pool of 400. One player claims, the contest is settled after 91 days, and a player who did not claim then withdraws the full 100 anyway.
Mark the pot as settled and reject any claim once that flag is set, so the 90-day window is enforced.
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.