Safety Module States

The Safety Module can be in three states:

enum SafetyModuleState {
  ACTIVE,
  TRIGGERED,
  PAUSED
}

The table below details valid state transitions:

FromToNotes

ACTIVE

TRIGGERED

Occurs when SafetyModule.trigger(trigger_) is executed with a valid trigger and the SafetyModule is not PAUSED (see Safety Module Slashing).

ACTIVE

PAUSED

Occurs when either the protocol owner or pauser or the SafetyModule owner or pauser pauses the SafetyModule.

TRIGGERED

ACTIVE

Occurs when all payout handlers that are entitled to slash assets have slashed (see Safety Module Slashing).

TRIGGERED

PAUSED

Occurs when either the protocol pauser or SafetyModule pauser pauses the SafetyModule.

PAUSED

ACTIVE

Occurs when either the protocol owner or the SafetyModule owner unpauses the SafetyModule.

PAUSED

TRIGGERED

Occurs when either the protocol owner or the SafetyModule owner unpauses the SafetyModule and SafetyModule.numPendingSlashes > 0 (see Safety Module Slashing).

The table below details which actions are allowed in each of these states:

Action / StateActiveTriggeredPaused

Deposit Reserve Assets

Y

Y

N

Queue Redeem Reserve Assets

Y

N

N

Complete Redeem Reserve Assets

Y

N

N

Instant Redeem Reserve Assets

N

N

Y

Trigger

Y

Y

Y

Slash

N

Y

N

Queue Update Configs

Y

N

Y

Finalize Update Configs

Y

N

Y

Pause

Y

Y

N

Unpause

N

N

Y

Fees Drip

Y

N

N

Claim Fees

Y

Y

Y

Last updated