🦥
Cozy Safety Module
  • User Guides
    • Introduction
    • User FAQs
  • Developer Guides
    • Creating a Safety Module
      • Define Safety Module Configuration
      • Deploy a Safety Module
    • Manage a Safety Module
      • Replacing Triggers
    • Safety Module Deposits
    • Safety Module Redemptions / Withdrawals
    • Safety Module States
    • Safety Module Fees
    • Safety Module Slashing
    • Shared Safety Module Functionality
    • Create a Rewards Manager
      • Define a Rewards Manager Configuration
      • Deploy a Rewards Manager
      • Reward Pool Drip Models
    • Manage a Rewards Manager
      • Deposit Rewards
      • Update a Rewards Manager Configuration
    • Stake into a Rewards Manager
      • Stake
      • Claim Rewards
      • Unstake
    • Rewards Manager Accounting
    • Rewards Manager States
    • Create a Trigger
      • UMA Trigger Factory
      • Chainlink Trigger Factory
      • Ownable Trigger Factory
    • Permissions and Authorization
    • Token Integration Guidelines
    • Contract Deployments Registry
    • Payout Vaults
  • FAQ
    • Security FAQ
Powered by GitBook
On this page
  1. Developer Guides

Safety Module States

The Safety Module can be in three states:

enum SafetyModuleState {
  ACTIVE,
  TRIGGERED,
  PAUSED
}

The table below details valid state transitions:

From
To
Notes

ACTIVE

TRIGGERED

ACTIVE

PAUSED

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

TRIGGERED

ACTIVE

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

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

Action / State
Active
Triggered
Paused

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

PreviousSafety Module Redemptions / WithdrawalsNextSafety Module Fees

Last updated 10 months ago

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

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

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

Safety Module Slashing
Safety Module Slashing
Safety Module Slashing