In the constructor, if initialSwapTaxRate or initialBurnTaxRate is set to 0, the contract forces a default value (100 for swap tax and 50 for burn tax). However, in _setTaxRate(), the function allows setting both tax rates to 0. This creates an inconsistency where the tax rate cannot be initially set to 0, but can later be changed to 0.
As seen above, the constructor enforces a minimum swap tax of 1% and a burn tax of 0.5% if 0 is provided.
However, _setTaxRate() allows setting these values to 0, meaning the tax can be removed later.
Inconsistency in tax logic: There's no technical vulnerability, but the logic is not uniform across the contract.
manual
Maintain the consistency in tax logic.
Allow setting 0 in the constructor or Disallow 0 in _setTaxRate()
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.