Skip to content

Commit 14a824b

Browse files
authored
chore: cleanup bounds on dyn config tests (#886)
1 parent 849c300 commit 14a824b

File tree

3 files changed

+36
-35
lines changed

3 files changed

+36
-35
lines changed

tests/unit/Spoke/Liquidations/Spoke.LiquidationCall.Base.t.sol

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -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);

tests/unit/Spoke/Liquidations/Spoke.LiquidationCall.Premium.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ contract SpokeLiquidationCallPremiumTest is SpokeLiquidationCallHelperTest {
2929
uint256 liquidationFee = vm.randomUint(MIN_LIQUIDATION_FEE, MAX_LIQUIDATION_FEE);
3030
_updateLiquidationFee(spoke, collateralReserveId, liquidationFee.toUint16());
3131

32-
uint256 liquidationBonus = vm.randomUint(MIN_LIQUIDATION_BONUS, MAX_LIQUIDATION_BONUS);
32+
uint256 liquidationBonus = _randomMaxLiquidationBonus(spoke, collateralReserveId);
3333
_updateMaxLiquidationBonus(spoke, collateralReserveId, liquidationBonus.toUint32());
3434

3535
_updateCollateralRisk(

tests/unit/Spoke/Spoke.DynamicConfig.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ contract SpokeDynamicConfigTest is SpokeBase {
324324
? spoke1
325325
.getDynamicReserveConfig(reserveId, vm.randomUint(0, dynamicConfigKey - 1).toUint16())
326326
.collateralFactor
327-
: _randomBps();
327+
: _randomCollateralFactor(spoke1, reserveId);
328328

329329
vm.expectEmit(address(spoke1));
330330
emit ISpoke.AddDynamicReserveConfig(reserveId, dynamicConfigKey, dynConf);

0 commit comments

Comments
 (0)