setCountry::BriVault does not have any timestamp check, admin can manipulate list of countries anytime between the event, leading to centralization risk and result manipulation.In setCountry::BriVault function, there is no check for deadline of setting final list of countries.
Admin can manipulate and change the list/order of countries.
This can lead to potential loss of asset for users who are betting on a specific country .
Likelihood: High
It is highly possible that some dishonest admin can manipulate the list of countries in between or after the event.
It is also possible that admin might also have set a bet on a country and that country is not winning, so admin can change the order to get the Incentive.
Impact: High
Loss of funds for users who have bet on the actual winner country .
Suppose a list of countries is uploaded initially : string[48] countries=["United States","Canada","Mexico",......];.
All the users have joined the event and the event started.
owner has also joined the event .
Suppose there are 3 users for example with the countries they have bet on-> 1. owner(United States) 2. alice(Canada) 3. bob(Mexico).
All three have deposited 5e18 .
In actual, Canada won the event and the event is ended.
But the owner bet on United States ,so admin will call the function setCountry with this new updated list of countries: string[48] countriesManipulated=["Canada","United States", "Mexico",.....] .
Now owner called the function setWinner with countryIndex as 1.
It is highly recommended to include a check in the starting of the setCountry function to strictly set the countries 1 day before the eventStartDate.
This is owner action.
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.