The current implementation of Auction.sol
and ZENO.sol
has a decimal mismatch issue between USDC (6 decimals) and ZENO (18 decimals). This leads to incorrect pricing calculations in the buy(...)
function, causing users to pay an excessively large amount of USDC. Similarly, in the redeem(...)
function of ZENO.sol
, the redemption amount is incorrectly calculated, making conversions between ZENO and USDC inaccurate.
The issue arises due to the difference in decimal precision between USDC and ZENO, without proper scaling applied in the buy(...)
function:
Here, the cost
is calculated as price * amount
, where price
is the USDC price per ZENO token, and amount
is the number of ZENO tokens being purchased. Since ZENO has 18 decimals, the resulting USDC amount becomes unrealistically large, preventing users from making valid purchases.
A similar issue exists in the redeem(...)
function in ZENO.sol
, where ZENO tokens are incorrectly converted into USDC, again failing due to the decimal mismatch.
Users may be unable to purchase ZENO tokens due to an excessively large USDC cost.
Redemption of ZENO for USDC does not work as expected, preventing proper token conversion.
The contract does not function as intended, blocking core functionalities of the auction and redemption process.
N/A
Apply proper decimal scaling inside Auction.sol
to ensure correct USDC and ZENO conversions.
Alternatively, modify the ZENO token to have 6 decimals to match USDC and avoid conversion issues.
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.