@@ -3,64 +3,86 @@ pragma solidity 0.8.29;
33
44import  { IProtocolManager } from  "@ssv/src/core/interfaces/IProtocolManager.sol " ;
55import  { ProtocolStorageLib } from  "@ssv/src/core/libraries/ProtocolStorageLib.sol " ;
6+ import  { ISSVBasedApps } from  "@ssv/src/core/interfaces/ISSVBasedApps.sol " ;
67
78contract  ProtocolManager  is  IProtocolManager  {
89    uint32  private constant  SLASHING_DISABLED =  1  <<  0 ;
910    uint32  private constant  WITHDRAWALS_DISABLED =  1  <<  1 ;
1011
12+     uint32  private constant  MIN_TIME_LOCK_PERIOD =  1  days ;
13+     uint32  private constant  MIN_EXPIRE_TIME =  1  hours ;
14+ 
1115    function updateFeeTimelockPeriod  (uint32  feeTimelockPeriod ) external  {
16+         if  (feeTimelockPeriod <  MIN_TIME_LOCK_PERIOD)
17+             revert  ISSVBasedApps.InvalidFeeTimelockPeriod ();
1218        ProtocolStorageLib.load ().feeTimelockPeriod =  feeTimelockPeriod;
1319        emit  FeeTimelockPeriodUpdated (feeTimelockPeriod);
1420    }
1521
1622    function updateFeeExpireTime  (uint32  feeExpireTime ) external  {
23+         if  (feeExpireTime <  MIN_EXPIRE_TIME)
24+             revert  ISSVBasedApps.InvalidFeeExpireTime ();
1725        ProtocolStorageLib.load ().feeExpireTime =  feeExpireTime;
1826        emit  FeeExpireTimeUpdated (feeExpireTime);
1927    }
2028
2129    function updateWithdrawalTimelockPeriod  (
2230        uint32  withdrawalTimelockPeriod 
2331    ) external  {
32+         if  (withdrawalTimelockPeriod <  MIN_TIME_LOCK_PERIOD)
33+             revert  ISSVBasedApps.InvalidWithdrawalTimelockPeriod ();
2434        ProtocolStorageLib
2535            .load ()
2636            .withdrawalTimelockPeriod =  withdrawalTimelockPeriod;
2737        emit  WithdrawalTimelockPeriodUpdated (withdrawalTimelockPeriod);
2838    }
2939
3040    function updateWithdrawalExpireTime  (uint32  withdrawalExpireTime ) external  {
41+         if  (withdrawalExpireTime <  MIN_EXPIRE_TIME)
42+             revert  ISSVBasedApps.InvalidWithdrawalExpireTime ();
3143        ProtocolStorageLib.load ().withdrawalExpireTime =  withdrawalExpireTime;
3244        emit  WithdrawalExpireTimeUpdated (withdrawalExpireTime);
3345    }
3446
3547    function updateObligationTimelockPeriod  (
3648        uint32  obligationTimelockPeriod 
3749    ) external  {
50+         if  (obligationTimelockPeriod <  MIN_TIME_LOCK_PERIOD)
51+             revert  ISSVBasedApps.InvalidObligationTimelockPeriod ();
3852        ProtocolStorageLib
3953            .load ()
4054            .obligationTimelockPeriod =  obligationTimelockPeriod;
4155        emit  ObligationTimelockPeriodUpdated (obligationTimelockPeriod);
4256    }
4357
4458    function updateObligationExpireTime  (uint32  obligationExpireTime ) external  {
59+         if  (obligationExpireTime <  MIN_EXPIRE_TIME)
60+             revert  ISSVBasedApps.InvalidObligationExpireTime ();
4561        ProtocolStorageLib.load ().obligationExpireTime =  obligationExpireTime;
4662        emit  ObligationExpireTimeUpdated (obligationExpireTime);
4763    }
4864
4965    function updateTokenUpdateTimelockPeriod  (
5066        uint32  tokenUpdateTimelockPeriod 
5167    ) external  {
68+         if  (tokenUpdateTimelockPeriod <  MIN_TIME_LOCK_PERIOD)
69+             revert  ISSVBasedApps.InvalidTokenUpdateTimelockPeriod ();
5270        ProtocolStorageLib
5371            .load ()
5472            .tokenUpdateTimelockPeriod =  tokenUpdateTimelockPeriod;
5573        emit  TokenUpdateTimelockPeriodUpdated (tokenUpdateTimelockPeriod);
5674    }
5775
5876    function updateMaxShares  (uint256  maxShares ) external  {
77+         if  (maxShares <  1e38 ) revert  ISSVBasedApps.InvalidMaxShares ();
5978        ProtocolStorageLib.load ().maxShares =  maxShares;
6079        emit  StrategyMaxSharesUpdated (maxShares);
6180    }
6281
6382    function updateMaxFeeIncrement  (uint32  maxFeeIncrement ) external  {
83+         if  (maxFeeIncrement <  50 )
84+             // 0.5% increment 
85+             revert  ISSVBasedApps.InvalidMaxFeeIncrement ();
6486        ProtocolStorageLib.load ().maxFeeIncrement =  maxFeeIncrement;
6587        emit  StrategyMaxFeeIncrementUpdated (maxFeeIncrement);
6688    }
0 commit comments