The Auction contract mints ZENO tokens on the auction price, while the ZENO token contract redeems tokens at a fixed 1:1 ratio with USDC. This discrepancy enables buyers to incur significant losses or exploit arbitrage opportunities, thereby breaking the intended economic model of the auction.
When a buyer participates in the auction, the buy function calculates the cost based on the price and then mints amount ZENO tokens to the buyer:
Here, the auction price is only used to determine the USDC cost, not to adjust the number of tokens minted.
Redemption Logic in ZENO Contract:
In the ZENO contract, tokens are redeemed for USDC on a 1:1 basis:
This means that regardless of the auction price at which the tokens were minted, each token will always be redeemed for 1 USDC.
Resulting Discrepancy:
There is a fundamental mismatch between the auction price and the redemption ratio. Buyers who purchase tokens at a higher auction price are guaranteed to redeem tokens at a much lower value.
Scenario 1: Low Auction Price
Auction Parameters:
Auction price: 10 USDC per token.
Buyer purchases: 1 token.
Auction Execution:
Cost calculated: 10 USDC x 1 = 10 USDC
1 ZENO token is minted.
Redemption Outcome:
Redemption transfers 1 USDC for the token.
Net Result: Buyer loses 10 - 1 = 9 USDC per token.
Scenario 2: High Auction Price
Auction Parameters:
Auction price: 100 USDC per token.
Buyer purchases: 1 token.
Auction Execution:
Cost calculated: 100 USDC x 1 = 100 USDC
1 ZENO token is minted.
Redemption Outcome:
Redemption transfers 1 USDC for the token.
Net Result: Buyer loses 100 - 1 = 99 USDC per token.
In both scenarios, the buyer redeems tokens at a fixed 1:1 ratio (1 USDC per token), regardless of the auction price, causing significant financial loss.
Buyers paying a premium in the auction will experience massive losses upon redemption due to the fixed 1:1 redemption ratio.
Manual Review
Adjust the Auction contract's minting mechanism so that the number of ZENO tokens minted reflects the auction price.
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.