ZENO.redeem()
is transferring the wrong amount to the user since USDC has 6 decimals.
The prices of ZENO tokens (in USDC) is handling USDC decimals, see these values from Integration.test.js
:
But in the redeem function the amount of USDC being sent to the user is the same amount of ZENO being burned.
See the ZENO.redeem()
function:
USDC has 6 decimals, this way if a user redeems 10 ZENOs
he will get 0.00001 USDC
in return.
This will lead to users losing funds, and the protocol losing trust.
no one will be buying ZENOs.
Manual Review.
USDC or other ERC20 usable in Zeno, but also within the pools.
Zeno bond should be compatible with other stablecoins, this info was taken from the README/Compatibilities.
Since the Zeno bond can use others ERC20 than USDC here is a proper implementation of both redeem()
and redeemAll()
:
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.