The Auction::buy function fails to account for the 12-order-of-magnitude decimal mismatch between USDC (6 decimals) and ZENO (18 decimals). This creates a critical precision inversion:
When purchasing amount=1 ZENO at price=1:
Actual Transfer: 1e-6 USDC (1 microdollar)
Minted Value: 1e-18 ZENO
Subsequent ZENO::redeemAll operations only transfer 1e-18 USDC instead of the correct 1e-6 USDC.
Incorrect transfers result in user fund loss.
Manual Review
Add precision conversion.
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.