Skip to content

Commit 1713ec9

Browse files
committed
fix: PR review
1 parent 37e2b93 commit 1713ec9

27 files changed

+109
-101
lines changed

test/base-fork/Aave.t.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ contract AaveV3BaseMarketDepositSuccessTests is AaveV3BaseMarketTestBase {
134134
vm.prank(relayer);
135135
foreignController.depositAave(ATOKEN_USDC, 1_000_000e6);
136136

137-
_assertReeentrancyGuardWrittenToTwice();
137+
_assertReentrancyGuardWrittenToTwice();
138138

139139
assertEq(usdcBase.allowance(address(almProxy), POOL), 0);
140140

@@ -242,7 +242,7 @@ contract AaveV3BaseMarketWithdrawSuccessTests is AaveV3BaseMarketTestBase {
242242
vm.prank(relayer);
243243
assertEq(foreignController.withdrawAave(ATOKEN_USDC, 400_000e6), 400_000e6);
244244

245-
_assertReeentrancyGuardWrittenToTwice();
245+
_assertReentrancyGuardWrittenToTwice();
246246

247247
assertEq(ausdc.balanceOf(address(almProxy)), aTokenBalance - (400_000e6 - 1)); // Rounding
248248
assertEq(usdcBase.balanceOf(address(almProxy)), 400_000e6);

test/base-fork/ForkTestBase.t.sol

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ contract ForkTestBase is Test {
3333
/*** Constants/state variables ***/
3434
/**********************************************************************************************/
3535

36-
bytes32 internal constant _REENTRANCY_GUARD_SLOT = bytes32(uint256(0));
37-
bytes32 internal constant _REENTRANCY_GUARD_ENTERED = bytes32(uint256(2));
36+
bytes32 internal constant _REENTRANCY_GUARD_SLOT = bytes32(uint256(0));
37+
bytes32 internal constant _REENTRANCY_GUARD_NOT_ENTERED = bytes32(uint256(1));
38+
bytes32 internal constant _REENTRANCY_GUARD_ENTERED = bytes32(uint256(2));
3839

3940
bytes32 constant DEFAULT_ADMIN_ROLE = 0x00;
4041

@@ -197,18 +198,19 @@ contract ForkTestBase is Test {
197198
vm.store(address(foreignController), _REENTRANCY_GUARD_SLOT, _REENTRANCY_GUARD_ENTERED);
198199
}
199200

200-
function _assertReeentrancyGuardWrittenToTwice() internal {
201+
function _assertReentrancyGuardWrittenToTwice() internal {
201202
( , bytes32[] memory writeSlots ) = vm.accesses(address(foreignController));
202203

203204
uint256 count = 0;
204205

205-
for ( uint256 i = 0; i < writeSlots.length; ++i ) {
206-
if ( writeSlots[i] != _REENTRANCY_GUARD_SLOT ) continue;
206+
for (uint256 i = 0; i < writeSlots.length; ++i) {
207+
if (writeSlots[i] != _REENTRANCY_GUARD_SLOT) continue;
207208

208209
++count;
209210
}
210211

211212
assertEq(count, 2);
213+
assertEq(vm.load(address(foreignController), _REENTRANCY_GUARD_SLOT), _REENTRANCY_GUARD_NOT_ENTERED);
212214
}
213215

214216
}

test/base-fork/Morpho.t.sol

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ contract MorphoDepositSuccessTests is MorphoBaseTest {
202202
vm.prank(relayer);
203203
assertEq(foreignController.depositERC4626(MORPHO_VAULT_USDS, 1_000_000e18), 1_000_000e18);
204204

205-
_assertReeentrancyGuardWrittenToTwice();
205+
_assertReentrancyGuardWrittenToTwice();
206206

207207
assertEq(usdsVault.convertToAssets(usdsVault.balanceOf(address(almProxy))), 1_000_000e18);
208208
assertEq(IERC20(Base.USDS).balanceOf(address(almProxy)), 0);
@@ -287,22 +287,22 @@ contract MorphoWithdrawSuccessTests is MorphoBaseTest {
287287

288288
deal(Base.USDS, address(almProxy), 1_000_000e18);
289289

290-
vm.record();
291-
292290
vm.prank(relayer);
293291
foreignController.depositERC4626(MORPHO_VAULT_USDS, 1_000_000e18);
294292

295-
_assertReeentrancyGuardWrittenToTwice();
296-
297293
assertEq(usdsVault.convertToAssets(usdsVault.balanceOf(address(almProxy))), 1_000_000e18);
298294
assertEq(IERC20(Base.USDS).balanceOf(address(almProxy)), 0);
299295

300296
assertEq(rateLimits.getCurrentRateLimit(depositKey), 24_000_000e18);
301297
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 10_000_000e18);
302298

299+
vm.record();
300+
303301
vm.prank(relayer);
304302
assertEq(foreignController.withdrawERC4626(MORPHO_VAULT_USDS, 1_000_000e18), 1_000_000e18);
305303

304+
_assertReentrancyGuardWrittenToTwice();
305+
306306
assertEq(rateLimits.getCurrentRateLimit(depositKey), 25_000_000e18);
307307
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 9_000_000e18);
308308

@@ -322,22 +322,22 @@ contract MorphoWithdrawSuccessTests is MorphoBaseTest {
322322

323323
deal(Base.USDC, address(almProxy), 1_000_000e6);
324324

325-
vm.record();
326-
327325
vm.prank(relayer);
328326
foreignController.depositERC4626(MORPHO_VAULT_USDC, 1_000_000e6);
329327

330-
_assertReeentrancyGuardWrittenToTwice();
331-
332328
assertEq(usdcVault.convertToAssets(usdcVault.balanceOf(address(almProxy))), 1_000_000e6);
333329
assertEq(IERC20(Base.USDC).balanceOf(address(almProxy)), 0);
334330

335331
assertEq(rateLimits.getCurrentRateLimit(depositKey), 24_000_000e6);
336332
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 10_000_000e6);
337333

334+
vm.record();
335+
338336
vm.prank(relayer);
339337
assertEq(foreignController.withdrawERC4626(MORPHO_VAULT_USDC, 1_000_000e6), 1_000_000e18);
340338

339+
_assertReentrancyGuardWrittenToTwice();
340+
341341
assertEq(rateLimits.getCurrentRateLimit(depositKey), 25_000_000e6);
342342
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 9_000_000e6);
343343

@@ -439,23 +439,24 @@ contract MorphoRedeemSuccessTests is MorphoBaseTest {
439439

440440
deal(Base.USDS, address(almProxy), 1_000_000e18);
441441

442-
vm.record();
443-
444442
vm.prank(relayer);
445443
foreignController.depositERC4626(MORPHO_VAULT_USDS, 1_000_000e18);
446444

447-
_assertReeentrancyGuardWrittenToTwice();
448-
449445
assertEq(usdsVault.convertToAssets(usdsVault.balanceOf(address(almProxy))), 1_000_000e18);
450446
assertEq(IERC20(Base.USDS).balanceOf(address(almProxy)), 0);
451447

452448
assertEq(rateLimits.getCurrentRateLimit(depositKey), 24_000_000e18);
453449
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 10_000_000e18);
454450

455451
uint256 shares = usdsVault.balanceOf(address(almProxy));
452+
453+
vm.record();
454+
456455
vm.prank(relayer);
457456
assertEq(foreignController.redeemERC4626(MORPHO_VAULT_USDS, shares), 1_000_000e18);
458457

458+
_assertReentrancyGuardWrittenToTwice();
459+
459460
assertEq(rateLimits.getCurrentRateLimit(depositKey), 25_000_000e18);
460461
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 9_000_000e18);
461462

@@ -475,23 +476,24 @@ contract MorphoRedeemSuccessTests is MorphoBaseTest {
475476

476477
deal(Base.USDC, address(almProxy), 1_000_000e6);
477478

478-
vm.record();
479-
480479
vm.prank(relayer);
481480
foreignController.depositERC4626(MORPHO_VAULT_USDC, 1_000_000e6);
482481

483-
_assertReeentrancyGuardWrittenToTwice();
484-
485482
assertEq(usdcVault.convertToAssets(usdcVault.balanceOf(address(almProxy))), 1_000_000e6);
486483
assertEq(IERC20(Base.USDC).balanceOf(address(almProxy)), 0);
487484

488485
assertEq(rateLimits.getCurrentRateLimit(depositKey), 24_000_000e6);
489486
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 10_000_000e6);
490487

491488
uint256 shares = usdcVault.balanceOf(address(almProxy));
489+
490+
vm.record();
491+
492492
vm.prank(relayer);
493493
assertEq(foreignController.redeemERC4626(MORPHO_VAULT_USDC, shares), 1_000_000e6);
494494

495+
_assertReentrancyGuardWrittenToTwice();
496+
495497
assertEq(rateLimits.getCurrentRateLimit(depositKey), 25_000_000e6);
496498
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 9_000_000e6);
497499

test/base-fork/MorphoAllocations.t.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ contract MorphoSetSupplyQueueMorphoSuccessTests is MorphoTestBase {
119119
vm.prank(relayer);
120120
foreignController.setSupplyQueueMorpho(address(morphoVault), supplyQueueUSDC);
121121

122-
_assertReeentrancyGuardWrittenToTwice();
122+
_assertReentrancyGuardWrittenToTwice();
123123

124124
assertEq(morphoVault.supplyQueueLength(), 2);
125125

@@ -172,7 +172,7 @@ contract MorphoUpdateWithdrawQueueMorphoSuccessTests is MorphoTestBase {
172172
vm.prank(relayer);
173173
foreignController.updateWithdrawQueueMorpho(address(morphoVault), withdrawQueueUsdc);
174174

175-
_assertReeentrancyGuardWrittenToTwice();
175+
_assertReentrancyGuardWrittenToTwice();
176176

177177
assertEq(morphoVault.withdrawQueueLength(), 2);
178178

@@ -264,7 +264,7 @@ contract MorphoReallocateMorphoSuccessTests is MorphoTestBase {
264264
vm.prank(relayer);
265265
foreignController.reallocateMorpho(address(morphoVault), reallocations);
266266

267-
_assertReeentrancyGuardWrittenToTwice();
267+
_assertReentrancyGuardWrittenToTwice();
268268

269269
// NOTE: No interest is accrued because deposit coverered all markets and is atomic
270270
assertEq(positionAssets(usdcCBBTC), positionCBBTC);

test/base-fork/PsmCalls.t.sol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ contract ForeignControllerDepositPSMTests is ForeignControllerPSMSuccessTestBase
120120
vm.prank(relayer);
121121
uint256 shares = foreignController.depositPSM(address(usdsBase), 100e18);
122122

123-
_assertReeentrancyGuardWrittenToTwice();
123+
_assertReentrancyGuardWrittenToTwice();
124124

125125
assertEq(shares, 100e18);
126126

@@ -157,7 +157,7 @@ contract ForeignControllerDepositPSMTests is ForeignControllerPSMSuccessTestBase
157157
vm.prank(relayer);
158158
uint256 shares = foreignController.depositPSM(address(usdcBase), 100e6);
159159

160-
_assertReeentrancyGuardWrittenToTwice();
160+
_assertReentrancyGuardWrittenToTwice();
161161

162162
assertEq(shares, 100e18);
163163

@@ -194,7 +194,7 @@ contract ForeignControllerDepositPSMTests is ForeignControllerPSMSuccessTestBase
194194
vm.prank(relayer);
195195
uint256 shares = foreignController.depositPSM(address(susdsBase), 100e18);
196196

197-
_assertReeentrancyGuardWrittenToTwice();
197+
_assertReentrancyGuardWrittenToTwice();
198198

199199
assertEq(shares, 100.343092065533568746e18); // Sanity check conversion at fork block
200200

@@ -349,7 +349,7 @@ contract ForeignControllerWithdrawPSMTests is ForeignControllerPSMSuccessTestBas
349349
vm.prank(relayer);
350350
uint256 amountWithdrawn = foreignController.withdrawPSM(address(usdsBase), 100e18);
351351

352-
_assertReeentrancyGuardWrittenToTwice();
352+
_assertReentrancyGuardWrittenToTwice();
353353

354354
assertEq(amountWithdrawn, 100e18);
355355

@@ -388,7 +388,7 @@ contract ForeignControllerWithdrawPSMTests is ForeignControllerPSMSuccessTestBas
388388
vm.prank(relayer);
389389
uint256 amountWithdrawn = foreignController.withdrawPSM(address(usdcBase), 100e6);
390390

391-
_assertReeentrancyGuardWrittenToTwice();
391+
_assertReentrancyGuardWrittenToTwice();
392392

393393
assertEq(amountWithdrawn, 100e6);
394394

@@ -429,7 +429,7 @@ contract ForeignControllerWithdrawPSMTests is ForeignControllerPSMSuccessTestBas
429429
vm.prank(relayer);
430430
uint256 amountWithdrawn = foreignController.withdrawPSM(address(susdsBase), 100e18);
431431

432-
_assertReeentrancyGuardWrittenToTwice();
432+
_assertReentrancyGuardWrittenToTwice();
433433

434434
assertEq(amountWithdrawn, 100e18 - 1); // Rounding
435435

test/base-fork/SparkVault.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ contract ForeignControllerTakeFromSparkVaultTests is ForeignControllerTakeFromSp
139139
vm.prank(relayer);
140140
foreignController.takeFromSparkVault(address(sparkVault), 1_000_000e6);
141141

142-
_assertReeentrancyGuardWrittenToTwice();
142+
_assertReentrancyGuardWrittenToTwice();
143143

144144
testState.rateLimit -= 1_000_000e6; // Rate limit goes down
145145
testState.usdcAlm += 1_000_000e6; // The almProxy receives the taken amount

test/base-fork/TransferAsset.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ contract ForeignControllerTransferAssetSuccessTests is TransferAssetBaseTest {
105105
vm.prank(relayer);
106106
foreignController.transferAsset(address(usdcBase), receiver, 1_000_000e6);
107107

108-
_assertReeentrancyGuardWrittenToTwice();
108+
_assertReentrancyGuardWrittenToTwice();
109109

110110
assertEq(usdcBase.balanceOf(address(receiver)), 1_000_000e6);
111111
assertEq(usdcBase.balanceOf(address(almProxy)), 0);

test/mainnet-fork/4626Calls.t.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ contract MainnetControllerDepositERC4626Tests is SUSDSTestBase {
134134
vm.prank(relayer);
135135
uint256 shares = mainnetController.depositERC4626(address(susds), 1e18);
136136

137-
_assertReeentrancyGuardWrittenToTwice();
137+
_assertReentrancyGuardWrittenToTwice();
138138

139139
assertEq(shares, SUSDS_CONVERTED_SHARES);
140140

@@ -230,7 +230,7 @@ contract MainnetControllerWithdrawERC4626Tests is SUSDSTestBase {
230230
vm.prank(relayer);
231231
uint256 shares = mainnetController.withdrawERC4626(address(susds), 1e18 - 1); // Rounding
232232

233-
_assertReeentrancyGuardWrittenToTwice();
233+
_assertReentrancyGuardWrittenToTwice();
234234

235235
assertEq(rateLimits.getCurrentRateLimit(depositKey), 4_999_999e18 + (1e18 - 1));
236236
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 5_000_000e18 - (1e18 - 1));
@@ -351,7 +351,7 @@ contract MainnetControllerRedeemERC4626Tests is SUSDSTestBase {
351351
vm.prank(relayer);
352352
uint256 assets = mainnetController.redeemERC4626(address(susds), SUSDS_CONVERTED_SHARES);
353353

354-
_assertReeentrancyGuardWrittenToTwice();
354+
_assertReentrancyGuardWrittenToTwice();
355355

356356
assertEq(rateLimits.getCurrentRateLimit(depositKey), 4_999_999e18 + (1e18 - 1));
357357
assertEq(rateLimits.getCurrentRateLimit(withdrawKey), 5_000_000e18 - (1e18 - 1));

test/mainnet-fork/Aave.t.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ contract AaveV3MainMarketDepositSuccessTests is AaveV3MainMarketBaseTest {
185185
vm.prank(relayer);
186186
mainnetController.depositAave(ATOKEN_USDS, 1_000_000e18);
187187

188-
_assertReeentrancyGuardWrittenToTwice();
188+
_assertReentrancyGuardWrittenToTwice();
189189

190190
assertEq(usds.allowance(address(almProxy), POOL), 0);
191191

@@ -208,7 +208,7 @@ contract AaveV3MainMarketDepositSuccessTests is AaveV3MainMarketBaseTest {
208208
vm.prank(relayer);
209209
mainnetController.depositAave(ATOKEN_USDC, 1_000_000e6);
210210

211-
_assertReeentrancyGuardWrittenToTwice();
211+
_assertReentrancyGuardWrittenToTwice();
212212

213213
assertEq(usdc.allowance(address(almProxy), POOL), 0);
214214

@@ -326,7 +326,7 @@ contract AaveV3MainMarketWithdrawSuccessTests is AaveV3MainMarketBaseTest {
326326
vm.prank(relayer);
327327
assertEq(mainnetController.withdrawAave(ATOKEN_USDS, 400_000e18), 400_000e18);
328328

329-
_assertReeentrancyGuardWrittenToTwice();
329+
_assertReentrancyGuardWrittenToTwice();
330330

331331
assertEq(ausds.balanceOf(address(almProxy)), aTokenBalance - 400_000e18);
332332
assertEq(usds.balanceOf(address(almProxy)), 400_000e18);

test/mainnet-fork/CCTPCalls.t.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ contract USDCToCCTPIntegrationTests is BaseChainUSDCToCCTPTestBase {
486486
vm.prank(relayer);
487487
mainnetController.transferUSDCToCCTP(1e6, CCTPForwarder.DOMAIN_ID_CIRCLE_BASE);
488488

489-
_assertReeentrancyGuardWrittenToTwice();
489+
_assertReentrancyGuardWrittenToTwice();
490490

491491
assertEq(usdc.balanceOf(address(almProxy)), 0);
492492
assertEq(usdc.balanceOf(address(mainnetController)), 0);
@@ -596,7 +596,7 @@ contract USDCToCCTPIntegrationTests is BaseChainUSDCToCCTPTestBase {
596596
vm.prank(relayer);
597597
foreignController.transferUSDCToCCTP(1e6, CCTPForwarder.DOMAIN_ID_CIRCLE_ETHEREUM);
598598

599-
_assertReeentrancyGuardWrittenToTwice(address(foreignController));
599+
_assertReentrancyGuardWrittenToTwice(address(foreignController));
600600

601601
assertEq(usdcBase.balanceOf(address(foreignAlmProxy)), 0);
602602
assertEq(usdcBase.balanceOf(address(foreignController)), 0);

0 commit comments

Comments
 (0)