@@ -27,6 +27,7 @@ contract JITpilot {
2727 // Constants
2828 uint256 private constant WINDOW_SIZE = 100 ;
2929 uint256 private constant PRECISION = 1e18 ;
30+
3031 enum RebalancingStatus {
3132 NOT_REBALANCING,
3233 REBALANCING
@@ -152,7 +153,6 @@ contract JITpilot {
152153 data.startBlock = block .number ;
153154 data.rebalanceThreshold = _hfDesired;
154155 data.rebalanceDesired = _hfDesired;
155-
156156
157157 emit LPConfigured (lp, _hfMin, _hfDesired);
158158 }
@@ -298,13 +298,13 @@ contract JITpilot {
298298 function calculateRebalanceThreshold (address lp ) internal view returns (uint256 ) {
299299 LPData storage data = lpData[lp];
300300 if (! data.initialized) return 0 ;
301-
301+
302302 // Placeholder implementation - to be researched and implemented
303303 // Should calculate threshold based on hfMin as main parameter
304304 // with thresholdSafetyMargin for fine-tuning
305305 return data.hfDesired; // Default hfDesired for now
306306 }
307-
307+
308308 /**
309309 * @dev Calculate dynamic rebalance desired target based on LP configuration (placeholder)
310310 * @param lp LP address
@@ -313,7 +313,7 @@ contract JITpilot {
313313 function calculateRebalanceDesired (address lp ) internal view returns (uint256 ) {
314314 LPData storage data = lpData[lp];
315315 if (! data.initialized) return 0 ;
316-
316+
317317 // Placeholder implementation - to be researched and implemented
318318 // Should calculate target based on hfDesired and yieldTarget as main parameters
319319 // with desiredTargetRatio for fine-tuning
@@ -494,13 +494,19 @@ contract JITpilot {
494494 (uint256 collateralValueTotal , uint256 debtValue ) = _getDepositValue (lp);
495495 uint256 depositValue = collateralValueTotal - debtValue;
496496
497- uint256 asset0Scale = FixedPointMathLib.rpow (10e18 , IERC20 (IEVault (eulerSwapData.params.vault0).asset ()).decimals (), 1e18 ) / 1e18 ;
498- uint256 asset1Scale = FixedPointMathLib.rpow (10e18 , IERC20 (IEVault (eulerSwapData.params.vault1).asset ()).decimals (), 1e18 ) / 1e18 ;
497+ uint256 asset0Scale =
498+ FixedPointMathLib.rpow (10e18 , IERC20 (IEVault (eulerSwapData.params.vault0).asset ()).decimals (), 1e18 ) / 1e18 ;
499+ uint256 asset1Scale =
500+ FixedPointMathLib.rpow (10e18 , IERC20 (IEVault (eulerSwapData.params.vault1).asset ()).decimals (), 1e18 ) / 1e18 ;
499501 uint256 asset0PriceUsd = IPriceOracle (IEVault (eulerSwapData.params.vault0).oracle ()).getQuote (
500- asset0Scale, IEVault (eulerSwapData.params.vault0).asset (), IEVault (eulerSwapData.params.vault0).unitOfAccount ()
502+ asset0Scale,
503+ IEVault (eulerSwapData.params.vault0).asset (),
504+ IEVault (eulerSwapData.params.vault0).unitOfAccount ()
501505 );
502506 uint256 asset1PriceUsd = IPriceOracle (IEVault (eulerSwapData.params.vault1).oracle ()).getQuote (
503- asset1Scale, IEVault (eulerSwapData.params.vault1).asset (), IEVault (eulerSwapData.params.vault1).unitOfAccount ()
507+ asset1Scale,
508+ IEVault (eulerSwapData.params.vault1).asset (),
509+ IEVault (eulerSwapData.params.vault1).unitOfAccount ()
504510 );
505511
506512 // Calculate balancedEquilibriumReserves given current depositValue
@@ -512,20 +518,18 @@ contract JITpilot {
512518 // we've chosen an arbitrary amount of 3x deltaReserves and a 99.3% concentration to prevent over-borrowing and allow for arbitrage
513519 desiredEqRsvDebtAsset = deltaReservesValueUsd * 3 * asset0Scale / asset0PriceUsd;
514520
515- uint256 balEqRsv1 = depositValue * 1e4 / (1e4 - eulerSwapData.borrowLTV01) * asset1Scale / asset1PriceUsd;
516- desiredEqRsvCollateralAsset = balEqRsv1
517- + depositValue * asset1Scale / 2 / asset1PriceUsd
518- + debtValue * asset1Scale / asset1PriceUsd
519- - deltaReservesValueUsd * asset1Scale / asset1PriceUsd;
521+ uint256 balEqRsv1 =
522+ depositValue * 1e4 / (1e4 - eulerSwapData.borrowLTV01) * asset1Scale / asset1PriceUsd;
523+ desiredEqRsvCollateralAsset = balEqRsv1 + depositValue * asset1Scale / 2 / asset1PriceUsd
524+ + debtValue * asset1Scale / asset1PriceUsd - deltaReservesValueUsd * asset1Scale / asset1PriceUsd;
520525 } else {
521526 // we've chosen an arbitrary amount of 3x deltaReserves and a 99% concentration to prevent over-borrowing and allow for arbitrage
522527 desiredEqRsvDebtAsset = deltaReservesValueUsd * 3 * asset1Scale / asset1PriceUsd;
523528
524- uint256 balEqRsv0 = depositValue * 1e4 / (1e4 - eulerSwapData.borrowLTV01) * asset0Scale / asset0PriceUsd;
525- desiredEqRsvCollateralAsset = balEqRsv0
526- + depositValue * asset0Scale / 2 / asset0PriceUsd
527- + debtValue * asset0Scale / asset0PriceUsd
528- - deltaReservesValueUsd * asset0Scale / asset0PriceUsd;
529+ uint256 balEqRsv0 =
530+ depositValue * 1e4 / (1e4 - eulerSwapData.borrowLTV01) * asset0Scale / asset0PriceUsd;
531+ desiredEqRsvCollateralAsset = balEqRsv0 + depositValue * asset0Scale / 2 / asset0PriceUsd
532+ + debtValue * asset0Scale / asset0PriceUsd - deltaReservesValueUsd * asset0Scale / asset0PriceUsd;
529533 }
530534 }
531535 uint256 concentrationDebtAsset = 99.3 * 1e16 ;
@@ -557,8 +561,7 @@ contract JITpilot {
557561 // $\Delta L = \frac{\frac{HF'}{LLTV} \cdot L - C}{\frac{HF'}{LLTV} - 1}$
558562 uint256 hfPrime = lpData[lp].hfDesired;
559563 address controllerVault = _getCurrentControllerVault (lp);
560- address collateralVault =
561- controllerVault == poolParams.vault0 ? poolParams.vault1 : poolParams.vault0;
564+ address collateralVault = controllerVault == poolParams.vault0 ? poolParams.vault1 : poolParams.vault0;
562565 uint256 lltv = uint256 (IEVault (controllerVault).LTVLiquidation (collateralVault)) * 1e18 / 1e4 ;
563566
564567 uint256 collateralValue = _getPositionValue (lp, collateralVault, false );
@@ -673,7 +676,7 @@ contract JITpilot {
673676 function getRebalanceThreshold (address lp ) external view returns (uint256 ) {
674677 return lpData[lp].rebalanceThreshold;
675678 }
676-
679+
677680 /**
678681 * @dev Get rebalance desired target for an LP
679682 * @param lp LP address
@@ -682,7 +685,7 @@ contract JITpilot {
682685 function getRebalanceDesired (address lp ) external view returns (uint256 ) {
683686 return lpData[lp].rebalanceDesired;
684687 }
685-
688+
686689 /**
687690 * @dev Get all key metrics for an LP in one call
688691 * @param lp LP address
@@ -691,12 +694,11 @@ contract JITpilot {
691694 * @return desired Rebalance target
692695 * @return needsRebalance Whether LP currently needs rebalancing
693696 */
694- function getLPMetrics (address lp ) external view returns (
695- uint256 compositeScore ,
696- uint256 threshold ,
697- uint256 desired ,
698- bool needsRebalance
699- ) {
697+ function getLPMetrics (address lp )
698+ external
699+ view
700+ returns (uint256 compositeScore , uint256 threshold , uint256 desired , bool needsRebalance )
701+ {
700702 LPData storage data = lpData[lp];
701703 compositeScore = this .getCompositeScore (lp);
702704 threshold = data.rebalanceThreshold;
0 commit comments