Skip to content

[VPD-985] feat: add VIP-661 addendum to recover vETH_Core after EBrake incident on testnet#694

Merged
Debugger022 merged 3 commits intofeat/VPD-927from
feat/VPD-985
Apr 7, 2026
Merged

[VPD-985] feat: add VIP-661 addendum to recover vETH_Core after EBrake incident on testnet#694
Debugger022 merged 3 commits intofeat/VPD-927from
feat/VPD-985

Conversation

@Debugger022
Copy link
Copy Markdown
Contributor

@Debugger022 Debugger022 commented Apr 6, 2026

Summary

Adds two follow-up addendums to VIP-661 to recover the vETH_Core market on BSC Testnet after EBrake tightened it during DeviationSentinel testing, and to establish the operational pattern for future incidents.

Addendum 1 — Full Recovery + Permission Setup

One-time VIP that both restores the market and grants Guardian/keeper convenience permissions so future testing iterations don't require a governance VIP.

Actions:

  1. Grant Normal Timelock permission to call resetMarketState on EBrake
  2. Restore vETH_Core collateral factor to 0.8e18 / 0.8e18 (snapshot values from EBrake)
  3. Unpause MINT (supply) on vETH_Core
  4. Clear EBrake's stored snapshot for vETH_Core via resetMarketState
  5. Grant Guardian permission to call _setActionsPaused on comptrollers (testnet convenience)
  6. Grant Guardian permission to call setCollateralFactor on comptrollers (testnet convenience)
  7. Grant Guardian permission to call resetMarketState on EBrake (testnet convenience)

Addendum 2 — Minimal Recovery Reference

After Addendum 1 was executed, a Tenderly web action re-triggered the DeviationSentinel and EBrake tightened vETH_Core a second time. Since all permissions were already in place from Addendum 1 (and from bsctestnet.ts for the original Guardian/EBrake grants), Addendum 2 contains only the three actions strictly necessary to restore a market.

This serves as a reference for the minimal governance footprint required to recover any future EBrake-tightened market.

Actions:

  1. Restore vETH_Core collateral factor to 0.8e18 / 0.8e18
  2. Unpause MINT on vETH_Core
  3. Clear EBrake's stored snapshot via resetMarketState

Supporting Changes

  • Added ERC20, ResilientOracle, and Comptroller ABIs for simulations
  • Updated EBrake ABI with initialize, marketStates, getMarketCFSnapshot, resetMarketState, and MarketStateReset entries

Test Plan

  • Addendum 1 simulation passes: npx hardhat test simulations/vip-661/bsctestnet-addendum.ts --fork bsctestnet
  • Addendum 2 simulation passes: npx hardhat test simulations/vip-661/bsctestnet-addendum-2.ts --fork bsctestnet
  • Addendum 1 executed successfully on BSC Testnet
  • Addendum 2 executed successfully on BSC Testnet

… on testnet

- Restore vETH_Core collateral factor and unpause mint after EBrake
  tightened the market during DeviationSentinel testing
- Clear EBrake snapshot for vETH_Core via resetMarketState
- Grant keeper permissions for _setActionsPaused, setCollateralFactor,
  and resetMarketState on testnet to enable repeatable E2E testing
- Update EBrake ABI with new initialize, marketStates,
  getMarketCFSnapshot, resetMarketState, and MarketStateReset entries
- Add ERC20, ResilientOracle, and Comptroller ABIs for simulation
@Debugger022
Copy link
Copy Markdown
Contributor Author

@Debugger022 Debugger022 marked this pull request as ready for review April 6, 2026 15:01
@Debugger022 Debugger022 self-assigned this Apr 6, 2026
- adds minimal 3-action VIP: restore CF/LT, unpause MINT, clear EBrake snapshot
- no permission grants needed — established by bsctestnet.ts (Guardian/EBrake perms) and addendum 1 (Normal Timelock → resetMarketState)
- simulation forks from block 100233050 (post-addendum-1, second incident active via Tenderly web action)
- serves as reference for minimal governance footprint to recover any future EBrake-tightened market
@Debugger022
Copy link
Copy Markdown
Contributor Author

VIP-661 Addendum 2 execution

@Debugger022 Debugger022 merged commit 0c3d599 into feat/VPD-927 Apr 7, 2026
2 checks passed
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