Core Contracts

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

No Check for Zero Amount in buy

Summary

The buy function does not check if the amount is greater than zero.

Users could call the function with amount = 0, wasting gas and potentially causing unintended behavior.

Vulnerability Details

Function buy(uint256 amount) external whenActive {
require(amount <= state.totalRemaining, "Not enough ZENO remaining");
uint256 price = getPrice();
uint256 cost = price * amount;
require(usdc.transferFrom(msg.sender, businessAddress, cost), "Transfer failed");
@> bidAmounts[msg.sender] += amount;
state.totalRemaining -= amount;
state.lastBidTime = block.timestamp;
state.lastBidder = msg.sender;
zeno.mint(msg.sender, amount);
emit ZENOPurchased(msg.sender, amount, price);
}

Impact

dos can happen.

Tools Used

Recommendations

Function buy(uint256 amount) external whenActive nonReentrant {
require(amount > 0, "Amount must be greater than 0");
require(amount <= state.totalRemaining, "Not enough ZENO remaining");
// Existing logic
}
Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity

Support

FAQs

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

Give us feedback!