Skip to content

Commit cf4a600

Browse files
committed
fix test_changeOwnershipToFallback_canRechallenge_succeeds
1 parent 22d8f6b commit cf4a600

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

packages/contracts-bedrock/test/safe/LivenessModule2.t.sol

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ contract LivenessModule2_ChangeOwnershipToFallback_Test is LivenessModule2_TestI
479479
assertEq(_getGuard(safeInstance), address(0));
480480

481481
// Verify extra modules are still enabled
482-
(address[] memory modules, ) = ModuleManager(safeInstance.safe).getModulesPaginated(address(1), 1000);
482+
(address[] memory modules,) = ModuleManager(safeInstance.safe).getModulesPaginated(address(1), 1000);
483483
assertEq(modules.length, 6);
484484
}
485485

@@ -576,6 +576,44 @@ contract LivenessModule2_ChangeOwnershipToFallback_Test is LivenessModule2_TestI
576576
assertEq(newOwners.length, 1);
577577
assertEq(newOwners[0], fallbackOwner);
578578
}
579+
580+
function test_changeOwnershipToFallback_canRechallenge_succeeds() external {
581+
// Start and execute first challenge
582+
vm.prank(fallbackOwner);
583+
livenessModule2.challenge(address(safeInstance.safe));
584+
585+
vm.warp(block.timestamp + CHALLENGE_PERIOD + 1);
586+
vm.prank(fallbackOwner);
587+
livenessModule2.changeOwnershipToFallback(address(safeInstance.safe));
588+
589+
// Re-enable the module
590+
vm.prank(fallbackOwner);
591+
safeInstance.safe.execTransaction(
592+
address(safeInstance.safe),
593+
0,
594+
abi.encodeCall(ModuleManager.enableModule, (address(livenessModule2))),
595+
Enum.Operation.Call,
596+
0,
597+
0,
598+
0,
599+
address(0),
600+
payable(address(0)),
601+
abi.encodePacked(bytes32(uint256(uint160(fallbackOwner))), bytes32(0), uint8(1))
602+
);
603+
604+
// Re-configure the module
605+
vm.prank(address(safeInstance.safe));
606+
livenessModule2.configureLivenessModule(
607+
LivenessModule2.ModuleConfig({ livenessResponsePeriod: CHALLENGE_PERIOD, fallbackOwner: fallbackOwner })
608+
);
609+
610+
// Start a new challenge (as fallback owner)
611+
vm.prank(fallbackOwner);
612+
livenessModule2.challenge(address(safeInstance.safe));
613+
614+
uint256 challengeEndTime = livenessModule2.getChallengePeriodEnd(address(safeInstance.safe));
615+
assertGt(challengeEndTime, 0);
616+
}
579617
}
580618

581619
/// @title LivenessModule2_GetChallengePeriodEnd_Test

0 commit comments

Comments
 (0)