Skip to content

Commit 35c94c2

Browse files
committed
feat: substitute calcSlashedAmount for scaleForBurning
1 parent b6cfb82 commit 35c94c2

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/contracts/core/DelegationManager.sol

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ pragma solidity ^0.8.27;
33

44
import "@openzeppelin-upgrades/contracts/proxy/utils/Initializable.sol";
55
import "@openzeppelin-upgrades/contracts/security/ReentrancyGuardUpgradeable.sol";
6+
import "forge-std/console.sol";
67

78
import "../mixins/SignatureUtilsMixin.sol";
89
import "../mixins/PermissionControllerMixin.sol";
@@ -793,8 +794,8 @@ contract DelegationManager is
793794
// less than or equal to MIN_WITHDRAWAL_DELAY_BLOCKS ago. These shares are still slashable.
794795
uint256 scaledSharesAdded = curQueuedScaledShares - prevQueuedScaledShares;
795796

796-
return SlashingLib.scaleForBurning({
797-
scaledShares: scaledSharesAdded,
797+
return SlashingLib.calcSlashedAmount({
798+
operatorShares: scaledSharesAdded.mulWad(prevMaxMagnitude),
798799
prevMaxMagnitude: prevMaxMagnitude,
799800
newMaxMagnitude: newMaxMagnitude
800801
});

src/contracts/libraries/SlashingLib.sol

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,10 @@ library SlashingLib {
178178
uint256 prevMaxMagnitude,
179179
uint256 newMaxMagnitude
180180
) internal pure returns (uint256) {
181+
if (prevMaxMagnitude == 0) {
182+
// TODO: consider throwing an error instead
183+
return 0;
184+
}
181185
// round up mulDiv so we don't overslash
182186
return operatorShares - operatorShares.mulDiv(newMaxMagnitude, prevMaxMagnitude, Math.Rounding.Up);
183187
}

0 commit comments

Comments
 (0)