@@ -380,11 +380,11 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
380380 int256 realizedDelta = (userPremiumDebt - userDebtPosition.realizedPremium).toInt256 () -
381381 premiumDebtRestored.toInt256 ();
382382 vm.expectCall (
383- address (params.spoke. getReserve ( params.debtReserveId).hub ),
383+ address (_hub ( params.spoke, params.debtReserveId)),
384384 abi.encodeCall (
385385 IHubBase.restore,
386386 (
387- params.spoke. getReserve ( params.debtReserveId).assetId ,
387+ _assetId ( params.spoke, params.debtReserveId),
388388 liquidationMetadata.debtToLiquidate - premiumDebtRestored,
389389 premiumDebtRestored,
390390 IHubBase.PremiumDelta ({
@@ -398,11 +398,11 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
398398 );
399399
400400 vm.expectCall (
401- address (params.spoke. getReserve ( params.collateralReserveId).hub ),
401+ address (_hub ( params.spoke, params.collateralReserveId)),
402402 abi.encodeCall (
403403 IHubBase.remove,
404404 (
405- params.spoke. getReserve ( params.collateralReserveId).assetId ,
405+ _assetId ( params.spoke, params.collateralReserveId),
406406 liquidationMetadata.collateralToLiquidator,
407407 params.liquidator
408408 )
@@ -412,7 +412,7 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
412412 // PayFee call is partially checked, as conversion from assets to shares might differ due to restore donation
413413 if (liquidationMetadata.collateralToLiquidate > liquidationMetadata.collateralToLiquidator) {
414414 vm.expectCall (
415- address (params.spoke. getReserve ( params.collateralReserveId).hub ),
415+ address (_hub ( params.spoke, params.collateralReserveId)),
416416 abi.encodeWithSelector (IHubBase.payFeeShares.selector )
417417 );
418418 }
@@ -433,28 +433,35 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
433433 reserveId,
434434 params.user
435435 );
436- (uint256 userReserveDrawnDebt , uint256 userReservePremiumDebt ) = params.spoke.getUserDebt (
437- reserveId,
438- params.user
439- );
436+ uint256 assetId = _assetId (params.spoke, reserveId);
440437 if (reserveId == params.debtReserveId) {
441- uint256 premiumDebtRestored = _min (
442- liquidationMetadata.debtToLiquidate,
443- userReservePremiumDebt
444- );
445- userReservePremiumDebt -= premiumDebtRestored;
446- userReserveDrawnDebt -= liquidationMetadata.debtToLiquidate - premiumDebtRestored ;
438+ userReservePosition.drawnShares -= _hub (params.spoke, reserveId)
439+ . previewRestoreByAssets (
440+ assetId,
441+ liquidationMetadata.debtToLiquidate - premiumDebtRestored
442+ )
443+ . toUint128 () ;
447444 userReservePosition.premiumShares = 0 ;
448445 userReservePosition.premiumOffset = 0 ;
449446 userReservePosition.realizedPremium = (userReservePosition.realizedPremium.toInt256 () +
450447 realizedDelta).toUint256 ().toUint128 ();
451448 }
449+ uint256 userReserveDrawnDebt = _hub (params.spoke, reserveId).previewRestoreByShares (
450+ assetId,
451+ userReservePosition.drawnShares
452+ );
453+ uint256 userReservePremiumDebt = _hub (params.spoke, reserveId).previewRestoreByShares (
454+ assetId,
455+ userReservePosition.premiumShares
456+ ) -
457+ userReservePosition.premiumOffset +
458+ userReservePosition.realizedPremium;
452459 vm.expectCall (
453- address (params.spoke. getReserve ( reserveId).hub ),
460+ address (_hub ( params.spoke, reserveId)),
454461 abi.encodeCall (
455462 IHubBase.reportDeficit,
456463 (
457- params.spoke. getReserve (reserveId). assetId,
464+ assetId,
458465 userReserveDrawnDebt,
459466 userReservePremiumDebt,
460467 IHubBase.PremiumDelta ({
@@ -492,14 +499,14 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
492499 addr
493500 ),
494501 suppliedInSpoke: spoke.getUserSuppliedAssets (collateralReserveId, addr),
495- addedInHub: spoke. getReserve ( collateralReserveId).hub .getSpokeAddedAssets (
496- spoke. getReserve ( collateralReserveId).assetId ,
502+ addedInHub: _hub (spoke, collateralReserveId).getSpokeAddedAssets (
503+ _assetId (spoke, collateralReserveId),
497504 addr
498505 ),
499506 debtErc20Balance: getAssetUnderlyingByReserveId (spoke, debtReserveId).balanceOf (addr),
500507 borrowedFromSpoke: spoke.getUserTotalDebt (debtReserveId, addr),
501508 drawnFromHub: _hub (spoke, debtReserveId).getSpokeTotalOwed (
502- spoke. getReserve ( debtReserveId).assetId ,
509+ _assetId (spoke, debtReserveId),
503510 addr
504511 )
505512 });
@@ -519,13 +526,13 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
519526 ),
520527 collateralHubBalanceInfo: _getBalanceInfo (
521528 params.spoke,
522- address (params.spoke. getReserve ( params.collateralReserveId).hub ),
529+ address (_hub ( params.spoke, params.collateralReserveId)),
523530 params.collateralReserveId,
524531 params.debtReserveId
525532 ),
526533 debtHubBalanceInfo: _getBalanceInfo (
527534 params.spoke,
528- address (params.spoke. getReserve ( params.debtReserveId).hub ),
535+ address (_hub ( params.spoke, params.debtReserveId)),
529536 params.collateralReserveId,
530537 params.debtReserveId
531538 ),
@@ -727,8 +734,8 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
727734 );
728735
729736 // Hubs
730- address collateralHub = address (params.spoke. getReserve ( params.collateralReserveId).hub );
731- address debtHub = address (params.spoke. getReserve ( params.debtReserveId).hub );
737+ address collateralHub = address (_hub ( params.spoke, params.collateralReserveId));
738+ address debtHub = address (_hub ( params.spoke, params.debtReserveId));
732739 if (collateralHub == debtHub && params.collateralReserveId == params.debtReserveId) {
733740 assertEq (
734741 accountsInfoAfter.collateralHubBalanceInfo.collateralErc20Balance,
@@ -1031,19 +1038,13 @@ contract SpokeLiquidationCallBaseTest is LiquidationLogicBaseTest {
10311038 if (logs[i].topics[0 ] == IHubBase.TransferShares.selector ) {
10321039 transferSharesEventCount += 1 ;
10331040
1034- assertEq (
1035- uint256 (logs[i].topics[1 ]),
1036- params.spoke.getReserve (params.collateralReserveId).assetId
1037- );
1041+ assertEq (uint256 (logs[i].topics[1 ]), _assetId (params.spoke, params.collateralReserveId));
10381042 address sender = address (uint160 (uint256 (logs[i].topics[2 ])));
10391043 address receiver = address (uint160 (uint256 (logs[i].topics[3 ])));
10401044 uint256 shares = abi.decode (logs[i].data, (uint256 ));
1041- uint256 expectedShares = params
1042- .spoke
1043- .getReserve (params.collateralReserveId)
1044- .hub
1045+ uint256 expectedShares = _hub (params.spoke, params.collateralReserveId)
10451046 .previewRemoveByAssets (
1046- params.spoke. getReserve ( params.collateralReserveId).assetId ,
1047+ _assetId ( params.spoke, params.collateralReserveId),
10471048 liquidationMetadata.collateralToLiquidate - liquidationMetadata.collateralToLiquidator
10481049 );
10491050 assertApproxEqAbs (shares, expectedShares, 1 );
0 commit comments