Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: medium
Invalid

Inconsistent ZENO token price peg between auction minting and redemption

Summary

Inconsistent ZENO token price peg between auction minting and redemption. Auction sells ZENO at a variable price, while redemption is fixed at a 1:1 USDC ratio, potentially creating an unintended discrepancy.

Vulnerability Details

The Auction.sol contract mints ZENO tokens at a dynamic price that decreases over time, starting from startingPrice down to reservePrice. This minting price is not fixed at a 1:1 ratio with USDC. However, the ZENO.sol contract redeems ZENO tokens at a fixed 1:1 ratio for USDC in the redeem and redeemAll functions, regardless of the original purchase price.

Code Snippets:

Auction.sol (getPrice function - dynamic minting price):

function getPrice() public view returns (uint256) {
if (block.timestamp < state.startTime) return state.startingPrice;
if (block.timestamp >= state.endTime) return state.reservePrice;
return state.startingPrice - (
(state.startingPrice - state.reservePrice) *
(block.timestamp - state.startTime) /
(state.endTime - state.startTime)
);
}

ZENO.sol (redeem function - fixed 1:1 redemption):

function redeem(uint amount) external nonReentrant {
// ...
USDC.safeTransfer(msg.sender, amount); // 1:1 USDC transfer for 'amount' ZENO
}

This discrepancy means users might purchase ZENO at a price lower than 1 USDC per ZENO during the auction, but are guaranteed a 1:1 redemption rate at maturity.

Impact

  • Potential Arbitrage/Economic Imbalance: The fixed 1:1 redemption after a potentially lower auction price could create arbitrage opportunities or unintended economic consequences.

  • Unclear Intended Behavior: It's unclear if this 1:1 redemption is intentional despite the dynamic auction price, or if it's an oversight in the design.

Tools Used

Manual code review.

Recommendations

Clarify the intended behavior regarding ZENO price peg between auction and redemption.

  1. Reconsider Redemption Logic: If the 1:1 redemption is not intended, or if the discrepancy creates undesirable economic effects, reconsider the redemption logic in ZENO.sol to align it with the auction's pricing mechanism or the overall project goals.

Updates

Lead Judging Commences

inallhonesty Lead Judge 3 months ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.