The register function in ThePredicter contract only check pending status. User can register again after being approved by owner.
In register() function, the ThePredicter__CannotParticipateTwice checking only checked the Pending status. Therefore, when approved user could register again.
The missing of checking Status.Approved can make user sign-up again after being approved to predict.
Manual review
The checking statement should be reverted when player status is Pending or Approved.
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.