Core Contracts

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

controller does not `updatePeriod` on `gauge`

Time period for a gauge can be used to roll over to new period if the current period has elapsed,

/**
* @notice Updates the time period for a gauge
* @dev Rolls over to new period if current period has elapsed
* @param gauge Address of the gauge to update
*/
function updatePeriod(address gauge) external override whenNotPaused {

The issue is that the controller does not updatePeriod() on the gauge itself when updating it's own period.

function updatePeriod() external override onlyController {

Since only they controller Period is updated when called to gaugeController.updatePeriod(gauge) it leaves the guage lagging and with incorrect state.

Impact

guage would be left on the previous period even when the controller has moved to a new period.

Recommendation

Invoke gauge.updatePeriod from the controller.updatePeriod(gauge)

Updates

Lead Judging Commences

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

`setWeeklyEmission`, `setBoostParameters`, `setEmission` and `setInitialWeight` cannot be called due to controller access control - not implemented in controller

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

`setWeeklyEmission`, `setBoostParameters`, `setEmission` and `setInitialWeight` cannot be called due to controller access control - not implemented in controller

Appeal created

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

GaugeController::updatePeriod doesn't call the gauge's updatePeriod function, preventing periodState.distributed from resetting and eventually causing distributeRewards to permanently fail

Support

FAQs

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