@@ -311,19 +311,26 @@ contract LiquidityHubSupplyTest is LiquidityHubBase {
311311 }
312312
313313 /// @dev User makes a first supply, shares and assets amounts are correct, no precision loss
314- function test_supply_fuzz_single_asset (uint256 assetId , uint256 amount ) public {
314+ function test_supply_fuzz_single_asset (uint256 assetId , address user , uint256 amount ) public {
315+ vm.assume (user != address (0 ) && user != address (hub));
316+
315317 assetId = bound (assetId, 0 , hub.assetCount () - 2 ); // Exclude duplicated DAI
316318 amount = bound (amount, 1 , MAX_SUPPLY_AMOUNT);
317319
318320 uint256 expectedSupplyShares = hub.convertToSuppliedShares (daiAssetId, amount);
319321 IERC20 asset = hub.assetsList (assetId);
322+
323+ deal (address (asset), user, MAX_SUPPLY_AMOUNT);
324+ vm.prank (user);
325+ asset.approve (address (hub), amount);
326+
320327 vm.expectEmit (address (asset));
321- emit IERC20 .Transfer (alice , address (hub), amount);
328+ emit IERC20 .Transfer (user , address (hub), amount);
322329 vm.expectEmit (address (hub));
323330 emit ILiquidityHub.Add (assetId, address (spoke1), amount, amount);
324331
325332 vm.prank (address (spoke1));
326- hub.add (assetId, amount, alice );
333+ hub.add (assetId, amount, user );
327334
328335 // hub
329336 assertEq (hub.getAssetSuppliedAmount (assetId), amount, 'hub asset suppliedAmount after ' );
@@ -344,7 +351,7 @@ contract LiquidityHubSupplyTest is LiquidityHubBase {
344351 );
345352 assertEq (hub.getAsset (assetId).lastUpdateTimestamp, vm.getBlockTimestamp ());
346353 // token balance
347- assertEq (asset.balanceOf (alice ), MAX_SUPPLY_AMOUNT - amount, 'user token balance post-supply ' );
354+ assertEq (asset.balanceOf (user ), MAX_SUPPLY_AMOUNT - amount, 'user token balance post-supply ' );
348355 assertEq (asset.balanceOf (address (spoke1)), 0 , 'spoke token balance post-supply ' );
349356 assertEq (asset.balanceOf (address (hub)), amount, 'hub token balance post-supply ' );
350357 }
@@ -508,6 +515,13 @@ contract LiquidityHubSupplyTest is LiquidityHubBase {
508515 hub.add (daiAssetId, supplyAmount, alice);
509516 }
510517
518+ function test_supply_revertsWith_InvalidAddFromHub () public {
519+ vm.expectRevert (ILiquidityHub.InvalidAddFromHub.selector , address (hub));
520+
521+ vm.prank (address (spoke1));
522+ hub.add (daiAssetId, 100e18 , address (hub));
523+ }
524+
511525 function test_supply_with_increased_index () public {
512526 uint256 daiAmount = 100e18 ;
513527
0 commit comments