The constructor accepts any amount of ETH via the payable keyword without validating that the contract receives sufficient funds to cover the expected treasure rewards. The protocol documentation states the contract should be funded with 100 ETH (10 treasures x 10 ETH), but there is no on-chain enforcement of this minimum.
Likelihood:
Reason 1: the owner initiates the TreasureHunt contract with less than 100 ETH
Impact:
Impact: Contract can be deployed with insufficient funds (e.g., 1 ETH instead of 100 ETH)
Early claimants may successfully claim treasures but later claimants find the contract has insufficient balance
Creates a "race to claim" dynamic where late participants are denied their expected rewards
Damages protocol credibility and trust
A owner funds the TreasureHunt contract with 85 Eth.
8 hunters successfully claimed the rewards.
There is no other hunters can successfully claim rewards due to lack of funds.
Add a minimum funding check in the contract constructor:
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.
The contest is complete and the rewards are being distributed.