Core Contracts

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

Missing Delegation Support in veRAACToken Governance System

Summary

The veRAACToken contract lacks essential delegation functionality that is crucial for modern DeFi governance systems. This omission prevents token holders from delegating their voting power and limits participation options for smart contract wallets, potentially impacting governance efficiency and participation rates.

Vulnerability Details

The veRAACToken contract is missing critical delegation components:

// Missing functions
function delegate(address delegatee) public virtual {}
function delegateBySig(
address delegatee,
uint256 nonce,
uint256 expiry,
uint8 v,
bytes32 r,
bytes32 s
) public virtual {}

There is no delegation state tracking:

// Missing state variables
mapping(address => address) private _delegates;
mapping(address => Checkpoint[]) private _checkpoints;

In a nutshell, veRAACToken doesn't support for EIP-5805 "Voting with delegation"

We can see the reference to this implementation in the OpenZeppelin Governor and Votescontracts:

Impact

  • Reduced governance participation as token holders cannot delegate their voting power to active community members

  • Smart contract wallets are limited in their governance participation options due to missing delegateBySig

  • Higher difficulty in reaching quorum for governance decisions due to requiring direct participation from all voters

Tools Used

Manual Review

Recommendations

The OpenZeppelin Votes.sol implementation provides a complete reference for proper delegation support. Consider using it integrated with the Governor.sol to fully support delegation/delegationBySig.

Updates

Lead Judging Commences

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

Support

FAQs

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

Give us feedback!