TempleGold

TempleDAO
Foundry
25,000 USDC
View results
Submission Details
Severity: medium
Invalid

Bidders may bid at a high price and can not revoke

Summary

In DaiGoldAuction and SpiceAuction, the current bidding mechanism allows users to bid a certain amount of bidToken to the auction. After the auction ends, the number of auctionToken they receive depends on their share of the totalBidTokenAmount. This mechanism could be unfair to users, as they cannot foresee the total amount of bidToken that will be bid (there’s no fixed hardcap), and they cannot revoke their bid**. As a result, users could end up bidding at a much higher price if they receive fewer auctionToken than anticipated.

Vulnerability Details

In DaiGoldAuction and SpiceAuction, the current bidding mechanism operates as follows:

  • Users bid a certain amount of bidToken to the auction:

function bid(uint256 amount) external virtual override {
...
@=> depositors[msg.sender][epochId] += amount;
@=> info.totalBidTokenAmount += amount;
emit Deposit(msg.sender, epochId, amount);
}
  • After the auction ends, the number of auctionToken users receive depends on their share in the totalBidTokenAmount

function claim(uint256 epochId) external virtual override {
...
@=> uint256 claimAmount = bidTokenAmount.mulDivRound(info.totalAuctionTokenAmount, info.totalBidTokenAmount, false);
...
}

The current mechanism lacks a hardcap for each auction, preventing users from predicting the total amount of bidToken that will be bid and the number of auctionToken they will receive.

Furthermore, users cannot revoke their bid if the exchange ratio exceeds their expectations. This lack of control over slippage means that if a large bidder (whale) participates, all users end up paying a higher price.

Impact

The lack of protection disincentivizes users from bidding. Additionally, users who bid may end up bidding at a higher price than expected, with no ability to revoke their bid.

Tools Used

Manual

Recommendations

  • Add hardcap and softcap limits to the auction.

  • Allow users to revoke their bids if certain conditions are met.

Updates

Lead Judging Commences

inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Appeal created

jesjupyter Submitter
about 1 year ago
inallhonesty Lead Judge
about 1 year ago
inallhonesty Lead Judge about 1 year ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

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