After the timelimit users can exchange their ZENO(tokens that they previously bought) for their USDC, but they will not receive the correct amount, because of the Redeem or RedeemAll function.
In the Auction contract you can buy Zeno tokens in exchange for USDC, which they will be returned to you after the time(MATURITY_DATE), by the function redeem.
First lets look at the Buy function in the Auction contract
As we can see the user has to set an amount that will be multiplied by the price of the Auction and then only the amount is going to be minted to the user.
Now lets see the Redeem function ->
When the user tries to exchange their ZENO tokens for their USDC, they will only receive the amount they bought, but not multiplied by the Price.
Here is an example ->
In the docs it is stated that the zeno tokens are fully backed by USDC, which means 1:1
the price of the Auction right now is = 100 $
Alice wants to buy 10 tokens of zeno from this auction, she will use buy(10) and transfer 1000 $ of USDC and will receive only 10 zeno tokens
The block.timestamp is bigger than the maturity date and Alice now can exchange her ZENO tokens for USDC
She uses redeemAll or redeem, but only receive 10 USDC
lost of funds for the users
In redeemAll and redeem multiply the amount by the price of the auction
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.