Normal behavior:
Players should risk a positive amount of CRED when entering the arena.
Both defender and challenger should deposit matching stakes to form a prize pool.
Actual behavior:
The function rap_battle::go_on_stage_or_battle
does not validate bet_amount > 0
.
As a result, players can initiate and complete battles with bet = 0, creating battles with no economic value.
Likelihood:
High: every player can call with bet_amount = 0
.
No conditions prevent this; it will always succeed.
Impact:
No funds are lost.
However, battles become meaningless (zero reward, still cost gas).
Players may farm battle stats (wins) without economic risk.
Undermines the credibility of CRED tokenomics.
Note: This issue is independent of the arena initialization bug. Even if the
BattleArena
resource is properly initialized, the function still acceptsbet_amount = 0
, which breaks economic logic.
Test confirms: battle accepts bet_amount = 0
.
Add explicit validation that bets must be strictly positive:
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.