Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft of signalling escrow rotation feature #198

Closed
wants to merge 1 commit into from

Conversation

Psirex
Copy link
Contributor

@Psirex Psirex commented Nov 18, 2024

No description provided.

Comment on lines +271 to +275
function recoverStETH() external returns (uint256 unlockedStETHShares) {
_escrowState.checkRotatedEscrow();
unlockedStETHShares = _accounting.accountStETHSharesUnlock(msg.sender).toUint256();
ST_ETH.transferShares(msg.sender, unlockedStETHShares);
}

Check warning

Code scanning / Slither

Unused return Medium

Comment on lines +277 to +282
function recoverWstETH() external returns (uint256 wstETHUnlocked) {
_escrowState.checkRotatedEscrow();
SharesValue unlockedStETHShares = _accounting.accountStETHSharesUnlock(msg.sender);
wstETHUnlocked = WST_ETH.wrap(ST_ETH.getPooledEthByShares(unlockedStETHShares.toUint256()));
WST_ETH.transfer(msg.sender, wstETHUnlocked);
}

Check failure

Code scanning / Slither

Unchecked transfer High

@Psirex
Copy link
Contributor Author

Psirex commented Nov 27, 2024

The implementation of the signalling escrow rotation feature was discarded because its outcome is effectively equivalent to deploying a new instance of the DualGovernance contract by the DAO. The primary purpose of the rotation was to allow the DAO to update the instance of the SignallingEscrow in scenarios where the first seal threshold amount becomes “lost” (i.e., locked indefinitely) within the existing SignallingEscrow. However, the probability of such a scenario is considered extremely low.

In the rare event that this occurs, the DAO can deploy a new instance of the DualGovernance contract and replace the SignallingEscrow containing the forgotten tokens using the EmergencyProtectedTimelock.updateGovernance() method. Users who intentionally locked their tokens in the previous SignallingEscrow will still have the ability to transfer them to the new SignallingEscrow instance after the DualGovernance update.

@Psirex Psirex closed this Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant