Exited
Event v154 → current #2Emitted when safe-mode ends, either by timeout or force.
View events on chainUseful for: validatorsdevelopersanalytics
The Big Picture
The end of safe-mode. The 'reason' field tells you whether it ended naturally (Timeout) or was ended early by governance (Force). Either way, normal network operations resume.
Why This Matters
Your dApp can resume full functionality. Users can perform operations that were blocked during safe-mode.
Example Scenario
When Exited fires with reason=Timeout, you remove the 'safe-mode active' banner and re-enable all features. Log the total duration for incident post-mortem.
Use Cases
- Detect when normal operations can resume
- Update dashboards to show network is operational
- Track incident resolution timing
How to Use This Event
- → Trigger 'all clear' notifications to users
- → Resume paused automated operations
- → Log incident duration for analysis
From Chain Metadata
Exited the safe-mode for a specific reason.
Triggers
Emitted by
Preconditions
- Safe-mode was entered
Effects
Storage Modified
Postconditions
- Safe-mode is no longer active
- EnteredUntil storage cleared
- Normal network operations resume
Side Effects
- Deposits remain reserved until ReleaseDelay passes
Event Data
| # | Name | Type | Description |
|---|---|---|---|
| 0 | reason | ExitReason | Exit reason: Timeout (natural expiry) or Force (governance) |
Code Examples
import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";
const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });
// Subscribe to Exited events
api.query.system.events((events) => {
events
.filter(({ event }) =>
event.section === stringCamelCase("SafeMode") &&
event.method === "Exited"
)
.forEach(({ event }) => {
console.log("Exited:", event.data.toHuman());
});
});Runtime Info
- Pallet Index
- 20
- Event Index
- 2
- First Version
- v154
- Current Version
- v393