implement GUARDIAN_ROLE

This commit is contained in:
Filip Pajic
2025-08-28 13:43:35 +02:00
parent b565e148f0
commit b9381af1b2
2 changed files with 5 additions and 6 deletions

View File

@@ -78,8 +78,11 @@ contract StakeManager is
bool public emergencyModeEnabled;
address public guardian;
/// @notice Operator role keccak256("GUARDIAN_ROLE")
bytes32 public constant GUARDIAN_ROLE = 0x55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041;
modifier onlyAdminOrGuardian() {
if (msg.sender != guardian && !hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) {
if (!hasRole(GUARDIAN_ROLE, msg.sender) && !hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) {
revert StakeManager__Unauthorized();
}
_;
@@ -145,10 +148,6 @@ contract StakeManager is
rewardsSupplier = _rewardsSupplier;
}
function setGuardian(address _guardian) external onlyRole(DEFAULT_ADMIN_ROLE) onlyNotEmergencyMode {
guardian = _guardian;
}
/**
* @notice Registers a vault with its owner. Called by the vault itself during initialization.
* @dev Only callable by contracts with trusted codehash

View File

@@ -52,7 +52,7 @@ contract StakeManagerTest is StakeMath, Test {
vm.startPrank(admin);
karma.addRewardDistributor(address(streamer));
streamer.setRewardsSupplier(address(karma));
streamer.setGuardian(address(guardian));
streamer.grantRole(streamer.GUARDIAN_ROLE(), address(guardian));
vm.stopPrank();
address[4] memory accounts = [alice, bob, charlie, dave];