Zeno token are bought via auction, where the early buyer pays higher amount than those whole late, in hope of getting the full USDC back later at redemption. But the redeem
logic does not calculate this price and always redeem at 1:1 for zeno:usdc, resulting loss to all buyer.
notice that in above code that the amount
is checked against user balance and then burned, this amount is also get sent to redeemer. in fact these two token is not always 1:1 because the bidder have different price when bidding zeno token. also they have different decimals.
buying then redeeming zeno token would result in loss even when the zeno token already matured
manual review
fix the redeeming logic so it benefit those who buy early by considering the price at bidding, also the decimals difference between two tokens.
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.