Decimals are not handled at all in the Auction contract, making it unusable because the price is calculated per wei.
When a user buys tokens, the protocol directly multiplies the token amount by the price, as seen here:
However, the token amount is expressed with 18 decimals, while the price is expressed with 6 decimals (matching USDC’s decimals). This results in the price being applied per wei, leading to a completely incorrect and nonsensical price calculation.
Example:
If the user sets the starting price to 100 USDC, then at the beginning of the auction:
• Buying one Zeno token (which equals 1e18)
• The user would have to pay:
1e18*100 USDC wei = 1e14 USDC tokens
• This results in an enormous and incorrect amount, making the auction contract unusable.
The auction is unusable
Manual review
the protocol should change the buy function to handle decimals :
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.