@@ -556,7 +556,6 @@ contract StrategyManager is ReentrancyGuardTransient, IStrategyManager {
556556 revert BAppNotOptedIn ();
557557 }
558558
559- //if (obligationPercentage > MAX_PERCENTAGE) revert ICore.InvalidPercentage();
560559 ValidationLib.validatePercentage (obligationPercentage);
561560
562561 if (
@@ -774,7 +773,7 @@ contract StrategyManager is ReentrancyGuardTransient, IStrategyManager {
774773 address receiver;
775774 bool exit;
776775 bool success;
777-
776+ uint32 obligationPercentage;
778777 if (_isBApp (bApp)) {
779778 (success, receiver, exit) = IBasedApp (bApp).slash (
780779 strategyId,
@@ -785,9 +784,11 @@ contract StrategyManager is ReentrancyGuardTransient, IStrategyManager {
785784 );
786785 if (! success) revert IStrategyManager.BAppSlashingFailed ();
787786
788- if (exit) _exitStrategy (s, strategyId, bApp, token);
789- else
790- _adjustObligation (
787+ if (exit) {
788+ _exitStrategy (s, strategyId, bApp, token);
789+ obligationPercentage = 0 ;
790+ } else
791+ obligationPercentage = _adjustObligation (
791792 s,
792793 strategyId,
793794 bApp,
@@ -818,6 +819,13 @@ contract StrategyManager is ReentrancyGuardTransient, IStrategyManager {
818819 percentage,
819820 receiver
820821 );
822+
823+ emit IStrategyManager.ObligationUpdated (
824+ strategyId,
825+ bApp,
826+ token,
827+ obligationPercentage
828+ );
821829 }
822830
823831 function _exitStrategy (
@@ -827,8 +835,6 @@ contract StrategyManager is ReentrancyGuardTransient, IStrategyManager {
827835 address token
828836 ) private {
829837 s.obligations[strategyId][bApp][token].percentage = 0 ;
830-
831- emit IStrategyManager.ObligationUpdated (strategyId, bApp, token, 0 );
832838 }
833839
834840 function _adjustObligation (
@@ -838,7 +844,7 @@ contract StrategyManager is ReentrancyGuardTransient, IStrategyManager {
838844 address token ,
839845 uint256 amount ,
840846 ICore.Shares storage strategyTokenShares
841- ) internal {
847+ ) internal returns ( uint32 obligationPercentage ) {
842848 ICore.Obligation storage obligation = s.obligations[strategyId][bApp][
843849 token
844850 ];
@@ -849,19 +855,14 @@ contract StrategyManager is ReentrancyGuardTransient, IStrategyManager {
849855 uint256 postSlashObligatedBalance = currentObligatedBalance - amount;
850856 if (postSlashStrategyBalance == 0 ) {
851857 obligation.percentage = 0 ;
852- emit IStrategyManager. ObligationUpdated (strategyId, bApp, token, 0 ) ;
858+ return 0 ;
853859 } else {
854860 uint32 postSlashObligationPercentage = uint32 (
855861 (postSlashObligatedBalance / postSlashStrategyBalance) *
856862 MAX_PERCENTAGE
857863 );
858864 obligation.percentage = postSlashObligationPercentage;
859- emit IStrategyManager.ObligationUpdated (
860- strategyId,
861- bApp,
862- token,
863- postSlashObligationPercentage
864- );
865+ return postSlashObligationPercentage;
865866 }
866867 }
867868
0 commit comments