@@ -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