The getContractBalance()
function is documented to reflect the game's available funds (pot + fees), but incorrectly reports raw ETH balance.
This creates financial misrepresentation during critical operations when:
Withdrawals are pending
Claims are in progress
Funds are mid-transfer
Likelihood: High
Occurs during all withdrawal operations
Persists until blockchain state finalization
Impact: Medium
Financial reporting inaccuracies
Could enable withdrawal timing attacks
Breaks accounting invariants
The issue manifests when:
A winner withdraws 1 ETH from pot
getContractBalance()
still shows original amount until TX completes
External contracts may act on stale balance data
This ensures:
Accurate reporting of allocated funds
Immunity to transient balance states
Compliance with documented behavior
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.