@@ -96,7 +96,7 @@ contract DelegationManager is
96
96
address initDelegationApprover ,
97
97
uint32 allocationDelay ,
98
98
string calldata metadataURI
99
- ) external {
99
+ ) external nonReentrant {
100
100
require (! isDelegated (msg .sender ), ActivelyDelegated ());
101
101
102
102
allocationManager.setAllocationDelay (msg .sender , allocationDelay);
@@ -110,7 +110,10 @@ contract DelegationManager is
110
110
}
111
111
112
112
/// @inheritdoc IDelegationManager
113
- function modifyOperatorDetails (address operator , address newDelegationApprover ) external checkCanCall (operator) {
113
+ function modifyOperatorDetails (
114
+ address operator ,
115
+ address newDelegationApprover
116
+ ) external checkCanCall (operator) nonReentrant {
114
117
require (isOperator (operator), OperatorNotRegistered ());
115
118
_setDelegationApprover (operator, newDelegationApprover);
116
119
}
@@ -126,7 +129,7 @@ contract DelegationManager is
126
129
address operator ,
127
130
SignatureWithExpiry memory approverSignatureAndExpiry ,
128
131
bytes32 approverSalt
129
- ) public {
132
+ ) public nonReentrant {
130
133
require (! isDelegated (msg .sender ), ActivelyDelegated ());
131
134
require (isOperator (operator), OperatorNotRegistered ());
132
135
@@ -145,7 +148,7 @@ contract DelegationManager is
145
148
/// @inheritdoc IDelegationManager
146
149
function undelegate (
147
150
address staker
148
- ) public returns (bytes32 [] memory withdrawalRoots ) {
151
+ ) public nonReentrant returns (bytes32 [] memory withdrawalRoots ) {
149
152
// Check that the `staker` can undelegate
150
153
require (isDelegated (staker), NotActivelyDelegated ());
151
154
require (! isOperator (staker), OperatorsCannotUndelegate ());
@@ -176,7 +179,7 @@ contract DelegationManager is
176
179
/// @inheritdoc IDelegationManager
177
180
function queueWithdrawals (
178
181
QueuedWithdrawalParams[] calldata params
179
- ) external onlyWhenNotPaused (PAUSED_ENTER_WITHDRAWAL_QUEUE) returns (bytes32 [] memory ) {
182
+ ) external onlyWhenNotPaused (PAUSED_ENTER_WITHDRAWAL_QUEUE) nonReentrant returns (bytes32 [] memory ) {
180
183
bytes32 [] memory withdrawalRoots = new bytes32 [](params.length );
181
184
address operator = delegatedTo[msg .sender ];
182
185
@@ -228,7 +231,7 @@ contract DelegationManager is
228
231
IStrategy strategy ,
229
232
uint256 prevDepositShares ,
230
233
uint256 addedShares
231
- ) external onlyStrategyManagerOrEigenPodManager {
234
+ ) external onlyStrategyManagerOrEigenPodManager nonReentrant {
232
235
/// Note: Unlike `decreaseDelegatedShares`, we don't return early if the staker has no operator.
233
236
/// This is because `_increaseDelegation` updates the staker's deposit scaling factor, which we
234
237
/// need to do even if not delegated.
@@ -252,7 +255,7 @@ contract DelegationManager is
252
255
address staker ,
253
256
uint256 curDepositShares ,
254
257
uint64 beaconChainSlashingFactorDecrease
255
- ) external onlyEigenPodManager {
258
+ ) external onlyEigenPodManager nonReentrant {
256
259
if (! isDelegated (staker)) {
257
260
return ;
258
261
}
@@ -282,7 +285,7 @@ contract DelegationManager is
282
285
IStrategy strategy ,
283
286
uint64 prevMaxMagnitude ,
284
287
uint64 newMaxMagnitude
285
- ) external onlyAllocationManager {
288
+ ) external onlyAllocationManager nonReentrant {
286
289
/// forgefmt: disable-next-item
287
290
uint256 operatorSharesSlashed = SlashingLib.calcSlashedAmount ({
288
291
operatorShares: operatorShares[operator][strategy],
0 commit comments