@@ -390,13 +390,12 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
390390 params
391391 );
392392
393- uint256 newRiskPremium = 0 ;
394393 if (isUserInDeficit) {
395394 _reportDeficit (user);
396395 } else {
397- newRiskPremium = _calculateUserAccountData (user).riskPremium;
396+ uint256 newRiskPremium = _calculateUserAccountData (user).riskPremium;
397+ _notifyRiskPremiumUpdate (user, newRiskPremium);
398398 }
399- _notifyRiskPremiumUpdate (user, newRiskPremium);
400399 }
401400
402401 /// @inheritdoc ISpoke
@@ -862,6 +861,7 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
862861 /// @dev It clears the user position, setting drawn debt, premium debt, and risk premium to zero.
863862 function _reportDeficit (address user ) internal {
864863 PositionStatus storage positionStatus = _positionStatus[user];
864+ positionStatus.riskPremium = 0 ;
865865
866866 uint256 reserveId = _reserveCount;
867867 while ((reserveId = positionStatus.nextBorrowing (reserveId)) != PositionStatusMap.NOT_FOUND) {
@@ -888,6 +888,7 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
888888
889889 emit ReportDeficit (reserveId, user, deficitShares, premiumDelta);
890890 }
891+ emit UpdateUserRiskPremium (user, 0 );
891892 }
892893
893894 function _getReserve (uint256 reserveId ) internal view returns (Reserve storage ) {
0 commit comments