Title: [RFC] Prepare EVK Factory For Pause Guardians
Author(s): Doug Hoyte
Submission Date: 2024-09-17
Prepare EVK Factory For Pause Guardians
Abstract
Change the upgrade admin of the EVKFactory from the DAO multisig to an EVKFactoryGovernor contract, to support pause guardians.
Motivation
The upgrade admin of the EVKFactory contract has the ability to upgrade the implementation contract backing upgradeable vaults created with the EVK.
The purpose of a governor contract is to allow “pause guardian” addresses to temporarily switch the EVault implementation to a read-only proxy in case of any detected or in-progress hacking attempt on the system. Only the admin of the governor contract (which will remain the EulerDAO multisig) has the ability to actually unpause and/or upgrade the implementation.
At this time no actual pause guardians addresses are enabled. That will come later, pending DAO approval.
Specification
Change the upgrade admin on the EVaultFactory contract (0x29a56a1b8214D9Cf7c5561811750D5cBDb45CC8e). Currently the admin is the DAO multisig, but the transaction changes this to a new contract: EVaultFactoryGovernor (0x799E9b58895d7D10306cA6C4cAb51728B142a224).
The EVaultFactoryGovernor contract was audited by yAudit, report here: evk-periphery/audits/yAudit EVK Periphery Guardians Review.pdf at master · euler-xyz/evk-periphery · GitHub
We have also built a specific test for this upgrade which verifies the pausing/unpausing functionality works, and the EulerDAO multisig can upgrade the implementation: evk-periphery/test/Governor/FactoryGovernor.scripts.t.sol at factory-governor-script-test · euler-xyz/evk-periphery · GitHub