Skip to content

Commit 5c71550

Browse files
committed
docs(audit): note upgrade rescue flow (#1467)
**Motivation:** Missing documentation noting that an upgrade is required to rescue paused funds. **Modifications:** - Update `ISlashEscrowFactory.sol` and `SlashEscrowFactory.md`. **Result:** L-01 resolved.
1 parent 74ab41d commit 5c71550

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

docs/core/SlashEscrowFactory.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ SlashEscrow:
1616
## Overview
1717
The `SlashEscrowFactory` handles the burning or redistribution of slashed funds out of the EigenLayer protocol. The `SlashEscrowFactory` is responsible for (i) enforcing an escrow delay upon an AVS calling [`slashOperator`](./AllocationManager.md#slashoperator), (ii) deploying the `SlashEscrow` for each slash, and (iii) releasing funds from the escrow contract upon completion of a the escrow delay.
1818

19+
> **Note:** If the protocol is paused due to a security incident, slashed funds will remain locked in the `SlashEscrow` contracts. A protocol upgrade would be required to rescue these funds.
20+
1921
## Parameterization
2022
* `DEFAULT_BURN_ADDRESS = 0x00000000000000000000000000000000000E16E4`
2123
* The address to which burnt funds are sent

src/contracts/interfaces/ISlashEscrowFactory.sol

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,17 @@ interface ISlashEscrowFactory is ISlashEscrowFactoryErrors, ISlashEscrowFactoryE
8383
) external;
8484

8585
/**
86-
* @notice Pauses a escrow.
86+
* @notice Pauses an individual slash escrow.
8787
* @param operatorSet The operator set whose escrow is being paused.
8888
* @param slashId The slash ID of the escrow that is being paused.
89+
* @dev Allows governance to pause a specific slash escrow in response to security incidents or other emergencies.
90+
* @dev When paused, the slashed funds become locked and can only be rescued through a protocol upgrade.
91+
* @dev To pause all escrows simultaneously, use the `pauseAll()` function instead.
8992
*/
9093
function pauseEscrow(OperatorSet calldata operatorSet, uint256 slashId) external;
9194

9295
/**
93-
* @notice Unpauses a escrow.
96+
* @notice Unpauses an individual slash escrow.
9497
* @param operatorSet The operator set whose escrow is being unpaused.
9598
* @param slashId The slash ID of the escrow that is being unpaused.
9699
*/

0 commit comments

Comments
 (0)