Core Contracts

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

Incorrect Block Time Assumptions in RAACMinter Break L2 Compatibility

Summary

The RAACMinter contract uses hardcoded block time assumptions (12 seconds per block) for calculating daily emission rates and update intervals. This makes the contract incompatible with L2 networks like Arbitrum (0.26s), Optimism (2s), or Polygon zkEVM (7s), potentially breaking the token emission economics when deployed on these chains.

Vulnerability Details

The contract uses block-based calculations with hardcoded assumptions:

uint256 public constant BLOCKS_PER_DAY = 7200; // Assuming 12-second block time
uint256 public constant INITIAL_RATE = 1000 * 1e18; // 1000 RAAC per day
uint256 public constant MAX_BENCHMARK_RATE = 2000 * 1e18 / BLOCKS_PER_DAY;

These assumptions affect critical functions:

  • tick() - Uses block numbers to calculate emission amounts

  • updateEmissionRate() - Uses block-based intervals for rate updates

  • Emergency controls - Use block-based timing for safety measures

Impact

When deployed on L2 networks, the contract will experience:

  • Incorrect Emission Rates:
    Arbitrum: ~46x faster emissions (0.26s vs 12s blocks)
    Optimism: ~6x faster emissions (2s vs 12s blocks)
    Polygon zkEVM: ~1.7x faster emissions (7s vs 12s blocks)

  • Broken Time Controls:
    Update intervals will be drastically shorter than intended

  • Economic Implications:

    • Token supply inflation will be much faster than designed

    • Market stability could be compromised

    • Cross-chain deployments will have inconsistent behavior

Tools Used

  • Manual code review

Recommendations

Replace block-based calculations with time-based ones:

// BEFORE
uint256 public constant BLOCKS_PER_DAY = 7200;
// AFTER
uint256 public constant SECONDS_PER_DAY = 86400;
Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

RAACMinter hardcoded BLOCKS_PER_DAY breaks cross-chain compatibility with variable token emission rates

Known issue LightChaser M12

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Validated
Assigned finding tags:

RAACMinter hardcoded BLOCKS_PER_DAY breaks cross-chain compatibility with variable token emission rates

Known issue LightChaser M12

Appeal created

inallhonesty Lead Judge 6 months ago
Submission Judgement Published
Invalidated
Reason: Design choice
Assigned finding tags:

RAACMinter hardcoded BLOCKS_PER_DAY breaks cross-chain compatibility with variable token emission rates

Known issue LightChaser M12

Support

FAQs

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

Give us feedback!