Skip to content

Commit

Permalink
chore: cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
ypatil12 committed Feb 21, 2025
1 parent d1493e5 commit c050dee
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -39,44 +39,14 @@ contract ExecuteUpgradeAndSetTimestampSubmitter is QueueUnpause, Pause {
}

function testScript() public virtual override(QueueUnpause, Pause) {
// 0. Get Queue Transactions
TimelockController timelock = Env.timelockController();

assertFalse(timelock.isOperationPending(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should not be queued.");
assertFalse(timelock.isOperationReady(QueueUnpause.getTimelockId()), "Transaction should not be ready for execution.");


// 1. Deploy Impls
runAsEOA();

// 2. Queue Upgrade and Set Timestamp Submitter
QueueUpgradeAndTimestampSetter._runAsMultisig();
_unsafeResetHasPranked(); // reset hasPranked so we can use it again

assertTrue(timelock.isOperationPending(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should be queued.");
assertFalse(timelock.isOperationReady(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should NOT be ready for execution.");
assertFalse(timelock.isOperationDone(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should NOT be complete.");

// 3. Queue Unpause
QueueUnpause._runAsMultisig();
_unsafeResetHasPranked(); // reset hasPranked so we can use it again

assertTrue(timelock.isOperationPending(QueueUnpause.getTimelockId()), "Transaction should be queued.");
assertFalse(timelock.isOperationReady(QueueUnpause.getTimelockId()), "Transaction should NOT be ready for execution.");
assertFalse(timelock.isOperationDone(QueueUnpause.getTimelockId()), "Transaction should NOT be complete.");

// 4. Run Pausing Logic
Pause._runAsMultisig();
_unsafeResetHasPranked(); // reset hasPranked so we can use it again

assertTrue(Env.proxy.eigenPodManager().paused(PAUSED_START_CHECKPOINT), "Not paused!");
assertTrue(Env.proxy.eigenPodManager().paused(PAUSED_EIGENPODS_VERIFY_CREDENTIALS), "Not paused!");
// 1-4 are completed in _completeSteps1_4()
_completeSteps1_4();

// Warp past delay
TimelockController timelock = Env.timelockController();
vm.warp(block.timestamp + timelock.getMinDelay()); // 1 tick after ETA
assertEq(timelock.isOperationReady(QueueUpgradeAndTimestampSetter.getTimelockId()), true, "Transaction should be executable.");


// 5. Execute
execute();
assertTrue(timelock.isOperationDone(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should be complete.");
Expand Down Expand Up @@ -119,4 +89,37 @@ contract ExecuteUpgradeAndSetTimestampSubmitter is QueueUnpause, Pause {
eigenPodManager.initialize(address(0), 0);
assertTrue(eigenPodManager.owner() == Env.executorMultisig(), "epm.owner invalid");
}

function _completeSteps1_4() internal {
// 0. Get Queue Transactions
TimelockController timelock = Env.timelockController();
assertFalse(timelock.isOperationPending(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should not be queued.");
assertFalse(timelock.isOperationReady(QueueUnpause.getTimelockId()), "Transaction should not be ready for execution.");

// 1. Deploy Impls
runAsEOA();

// 2. Queue Upgrade and Set Timestamp Submitter
QueueUpgradeAndTimestampSetter._runAsMultisig();
_unsafeResetHasPranked(); // reset hasPranked so we can use it again

assertTrue(timelock.isOperationPending(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should be queued.");
assertFalse(timelock.isOperationReady(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should NOT be ready for execution.");
assertFalse(timelock.isOperationDone(QueueUpgradeAndTimestampSetter.getTimelockId()), "Transaction should NOT be complete.");

// 3. Queue Unpause
QueueUnpause._runAsMultisig();
_unsafeResetHasPranked(); // reset hasPranked so we can use it again

assertTrue(timelock.isOperationPending(QueueUnpause.getTimelockId()), "Transaction should be queued.");
assertFalse(timelock.isOperationReady(QueueUnpause.getTimelockId()), "Transaction should NOT be ready for execution.");
assertFalse(timelock.isOperationDone(QueueUnpause.getTimelockId()), "Transaction should NOT be complete.");

// 4. Run Pausing Logic
Pause._runAsMultisig();
_unsafeResetHasPranked(); // reset hasPranked so we can use it again

assertTrue(Env.proxy.eigenPodManager().paused(PAUSED_START_CHECKPOINT), "Not paused!");
assertTrue(Env.proxy.eigenPodManager().paused(PAUSED_EIGENPODS_VERIFY_CREDENTIALS), "Not paused!");
}
}
24 changes: 6 additions & 18 deletions script/releases/v1.2.0-slashing/7-setProofTimestamp.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {TimelockController} from "@openzeppelin/contracts/governance/TimelockCon


/**
* Purpose: Enqueue a transaction which immediately sets `EigenPodManager.PAUSED_START_CHECKPOINT=true`
* Purpose: Propose a transaction to set the proof timestamp
*/
contract SetProofTimestamp is ExecuteUpgradeAndSetTimestampSubmitter {
using Env for *;
Expand All @@ -28,30 +28,18 @@ contract SetProofTimestamp is ExecuteUpgradeAndSetTimestampSubmitter {
}

function testScript() public virtual override {
TimelockController timelock = Env.timelockController();
// Deploy Impls
_runAsEOA();

// Queue Upgrade and Set Timestamp Submitter
QueueUpgradeAndTimestampSetter._runAsMultisig();
_unsafeResetHasPranked();

// Queue Unpause
QueueUnpause._runAsMultisig();
_unsafeResetHasPranked();

// Run Pausing Logic
Pause._runAsMultisig();
_unsafeResetHasPranked();
// 1-4 are completed in _completeSteps1_4()
_completeSteps1_4();

// Warp past delay
TimelockController timelock = Env.timelockController();
vm.warp(block.timestamp + timelock.getMinDelay()); // 1 tick after ETA

// Execute Upgrade and Set Timestamp Submitter
// 5. Execute Upgrade and Set Timestamp Submitter
ExecuteUpgradeAndSetTimestampSubmitter._runAsMultisig();
_unsafeResetHasPranked();

// Set the proof timestamp
// 6. Set the proof timestamp
proofTimestamp = 1740434112; // Using holesky pectra fork timestamp for testing
execute();

Expand Down
28 changes: 7 additions & 21 deletions script/releases/v1.2.0-slashing/8-executeUnpause.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ import {TimelockController} from "@openzeppelin/contracts/governance/TimelockCon
import {SetProofTimestamp} from "./7-setProofTimestamp.s.sol";
/**
* Purpose: Executes the unpause transaction from step 3
*
*/
*/
contract ExecuteUnpause is SetProofTimestamp {
using Env for *;

Expand All @@ -30,30 +29,18 @@ contract ExecuteUnpause is SetProofTimestamp {
}

function testScript() public virtual override {
TimelockController timelock = Env.timelockController();
// Deploy Impls
_runAsEOA();

// Queue Upgrade and Set Timestamp Submitter
QueueUpgradeAndTimestampSetter._runAsMultisig();
_unsafeResetHasPranked();

// Queue Unpause
QueueUnpause._runAsMultisig();
_unsafeResetHasPranked();

// Run Pausing Logic
Pause._runAsMultisig();
_unsafeResetHasPranked();
// 1-4 are completed in _completeSteps1_4()
_completeSteps1_4();

// Warp past delay - this works for both the upgrade & the unpause
TimelockController timelock = Env.timelockController();
vm.warp(block.timestamp + timelock.getMinDelay()); // 1 tick after ETA

// Execute Upgrade and Set Timestamp Submitter
// 5. Execute Upgrade and Set Timestamp Submitter
ExecuteUpgradeAndSetTimestampSubmitter._runAsMultisig();
_unsafeResetHasPranked();

// Set the proof timestamp
// 7. Set the proof timestamp
SetProofTimestamp.setTimestamp(1740434112); // Using holesky pectra fork timestamp for testing
SetProofTimestamp._runAsMultisig();
_unsafeResetHasPranked();
Expand All @@ -62,8 +49,7 @@ contract ExecuteUnpause is SetProofTimestamp {
assertTrue(timelock.isOperationDone(QueueUpgradeAndTimestampSetter.getTimelockId()), "Predecessor should be done.");
assertTrue(timelock.isOperationReady(QueueUnpause.getTimelockId()), "Transaction should be executable.");


// Execute Unpause
// 8. Execute Unpause
execute();

// Validate that the unpause is successful
Expand Down

0 comments on commit c050dee

Please sign in to comment.