The claimThrone()
function calculates the next claim fee based on the minimum required fee rather than the actual amount sent by the player. This creates an economic vulnerability where players can invest large amounts but the next challenger only needs to pay a small increase based on the original minimum fee, making strategic overpayment worthless and breaking the core "Last Man Standing" game mechanics.
The vulnerability exists in the fee calculation logic within claimThrone()
The Problem:
Player pays significantly more than required (strategic overpayment)
All excess payment goes to pot/fees but provides no strategic protection
Next challenger only pays a small increase based on the original minimum
Large investments become economically irrational and strategically worthless
Expected Behavior (Last Man Standing Games):
The next claim fee should be based on what was actually paid, making overpayment strategically valuable by creating higher barriers for challengers.
Current Broken Behavior:
Overpayments are wasted, providing no protection against dethroning despite players investing significantly more.
Economic Irrationality: Large investments provide minimal protection, making strategic overpayment worthless
Broken Game Mechanics: "Last Man Standing" escalation doesn't work as intended
User Financial Loss: Players waste significant ETH on overpayments that provide no benefit
Recommended Fix: Base Fee Calculation on Actual Payment
In this implementation `feeIncreasePercentage` will act as min increase amount above current king payed amount
Another Fix:Don't allow excess payments
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.