@strkfarm/sdk 2.0.0-dev.25 → 2.0.0-dev.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -92620,14 +92620,14 @@ spurious results.`);
92620
92620
  var calculateBTCPriceDelta = (btcPrice, lastBtcPrice) => {
92621
92621
  return (btcPrice - lastBtcPrice) / lastBtcPrice * 100;
92622
92622
  };
92623
- var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice, vesuDebtAmountToBeRepaid) => {
92623
+ var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice) => {
92624
92624
  const extendedLeverage = calculateExtendedLevergae();
92625
92625
  const vesuLeverage = calculateVesuLeverage();
92626
92626
  const extendedAmount = extendedHoldingAmount;
92627
92627
  const extendedAmountInBTC = extendedAmount.dividedBy(collateralPrice);
92628
92628
  const numerator1 = extendedAmount.multipliedBy(extendedLeverage).plus(extendedPositonValue);
92629
92629
  const numerator2 = collateralAmount.multipliedBy(collateralPrice).multipliedBy(-1);
92630
- const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage).plus(vesuDebtAmountToBeRepaid);
92630
+ const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage);
92631
92631
  const vesuAmountInBTC = vesuAmountInUsd.dividedBy(collateralPrice).toFixed(WBTC_TOKEN_DECIMALS);
92632
92632
  return {
92633
92633
  vesuAmountInUsd: vesuAmountInUsd.toFixed(2),
@@ -92637,10 +92637,13 @@ spurious results.`);
92637
92637
  };
92638
92638
  var calculateDeltaDebtAmount = (maxLtv = MAX_LTV_BTC_USDC, existingVesuCollateral, existingVesuDebt, collateralPrice, debtPrice, targetHf = TARGET_HF) => {
92639
92639
  try {
92640
- const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv).dividedBy(targetHf);
92640
+ const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv);
92641
+ logger2.info(`term1: ${term1.toNumber()}`);
92641
92642
  const term2 = existingVesuDebt.multipliedBy(debtPrice).multipliedBy(targetHf).multipliedBy(-1);
92643
+ logger2.info(`term2: ${term2.toNumber()}`);
92642
92644
  const debtAmountToBeRepaid = term1.plus(term2).dividedBy(targetHf);
92643
- return debtAmountToBeRepaid;
92645
+ logger2.info(`debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`);
92646
+ return new Web3Number(debtAmountToBeRepaid.toFixed(USDC_TOKEN_DECIMALS), USDC_TOKEN_DECIMALS);
92644
92647
  } catch (err2) {
92645
92648
  logger2.error(`error calculating delta position: ${err2}`);
92646
92649
  return null;
@@ -92654,7 +92657,6 @@ spurious results.`);
92654
92657
  const unrealisedPnl = new Web3Number(extendedBalance.unrealisedPnl, USDC_TOKEN_DECIMALS);
92655
92658
  const availableForWithdrawal = new Web3Number(extendedBalance.availableForWithdrawal, USDC_TOKEN_DECIMALS);
92656
92659
  const upnlPercent = unrealisedPnl.dividedBy(extendedPosition);
92657
- console.log(`upnlPercent: ${upnlPercent}`);
92658
92660
  const walletBalance = new Web3Number(extendedBalance.balance, USDC_TOKEN_DECIMALS);
92659
92661
  const term1 = marginRequired.minus(walletBalance).minus(availableForWithdrawal).plus(amountToWithdraw).multipliedBy(extendedLeverage);
92660
92662
  const denominator = upnlPercent.multipliedBy(extendedLeverage).plus(1);
@@ -98720,7 +98722,10 @@ spurious results.`);
98720
98722
  debtAmountToBeRepaid: new Web3Number(0, 0)
98721
98723
  };
98722
98724
  }
98723
- const amountToInvestAfterRepayingDebt = amountToInvest.minus(debtAmountToBeRepaid);
98725
+ logger2.info(
98726
+ `${_VesuExtendedMultiplierStrategy.name}::shouldInvest debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`
98727
+ );
98728
+ const amountToInvestAfterRepayingDebt = amountToInvest.plus(debtAmountToBeRepaid);
98724
98729
  const { vesu_amount, extended_amount, extended_leverage, vesu_leverage } = await calculateAmountDistribution(
98725
98730
  amountToInvestAfterRepayingDebt.toNumber(),
98726
98731
  extendedAdapter.client,
@@ -99387,7 +99392,7 @@ spurious results.`);
99387
99392
  avnuAdapter,
99388
99393
  "close" /* CLOSE */
99389
99394
  );
99390
- if (!isPriceDifferenceBetweenAvnuAndExtended) {
99395
+ if (!isPriceDifferenceBetweenAvnuAndExtended && params.cycleType === "WITHDRAWAL" /* WITHDRAWAL */) {
99391
99396
  logger2.warn(
99392
99397
  `price difference between avnu and extended doesn't fit the range for close position, ${avnuAdapter.config.maximumExtendedPriceDifferenceForSwapClosing}`
99393
99398
  );
@@ -28575,14 +28575,14 @@ var calculateExposureDelta = (exposure_extended, exposure_vesu) => {
28575
28575
  var calculateBTCPriceDelta = (btcPrice, lastBtcPrice) => {
28576
28576
  return (btcPrice - lastBtcPrice) / lastBtcPrice * 100;
28577
28577
  };
28578
- var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice, vesuDebtAmountToBeRepaid) => {
28578
+ var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice) => {
28579
28579
  const extendedLeverage = calculateExtendedLevergae();
28580
28580
  const vesuLeverage = calculateVesuLeverage();
28581
28581
  const extendedAmount = extendedHoldingAmount;
28582
28582
  const extendedAmountInBTC = extendedAmount.dividedBy(collateralPrice);
28583
28583
  const numerator1 = extendedAmount.multipliedBy(extendedLeverage).plus(extendedPositonValue);
28584
28584
  const numerator2 = collateralAmount.multipliedBy(collateralPrice).multipliedBy(-1);
28585
- const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage).plus(vesuDebtAmountToBeRepaid);
28585
+ const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage);
28586
28586
  const vesuAmountInBTC = vesuAmountInUsd.dividedBy(collateralPrice).toFixed(WBTC_TOKEN_DECIMALS);
28587
28587
  return {
28588
28588
  vesuAmountInUsd: vesuAmountInUsd.toFixed(2),
@@ -28592,10 +28592,13 @@ var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHold
28592
28592
  };
28593
28593
  var calculateDeltaDebtAmount = (maxLtv = MAX_LTV_BTC_USDC, existingVesuCollateral, existingVesuDebt, collateralPrice, debtPrice, targetHf = TARGET_HF) => {
28594
28594
  try {
28595
- const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv).dividedBy(targetHf);
28595
+ const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv);
28596
+ logger.info(`term1: ${term1.toNumber()}`);
28596
28597
  const term2 = existingVesuDebt.multipliedBy(debtPrice).multipliedBy(targetHf).multipliedBy(-1);
28598
+ logger.info(`term2: ${term2.toNumber()}`);
28597
28599
  const debtAmountToBeRepaid = term1.plus(term2).dividedBy(targetHf);
28598
- return debtAmountToBeRepaid;
28600
+ logger.info(`debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`);
28601
+ return new Web3Number(debtAmountToBeRepaid.toFixed(USDC_TOKEN_DECIMALS), USDC_TOKEN_DECIMALS);
28599
28602
  } catch (err) {
28600
28603
  logger.error(`error calculating delta position: ${err}`);
28601
28604
  return null;
@@ -28609,7 +28612,6 @@ var calculatePositionToCloseToWithdrawAmount = async (extendedBalance, extendedP
28609
28612
  const unrealisedPnl = new Web3Number(extendedBalance.unrealisedPnl, USDC_TOKEN_DECIMALS);
28610
28613
  const availableForWithdrawal = new Web3Number(extendedBalance.availableForWithdrawal, USDC_TOKEN_DECIMALS);
28611
28614
  const upnlPercent = unrealisedPnl.dividedBy(extendedPosition);
28612
- console.log(`upnlPercent: ${upnlPercent}`);
28613
28615
  const walletBalance = new Web3Number(extendedBalance.balance, USDC_TOKEN_DECIMALS);
28614
28616
  const term1 = marginRequired.minus(walletBalance).minus(availableForWithdrawal).plus(amountToWithdraw).multipliedBy(extendedLeverage);
28615
28617
  const denominator = upnlPercent.multipliedBy(extendedLeverage).plus(1);
@@ -34682,7 +34684,10 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
34682
34684
  debtAmountToBeRepaid: new Web3Number(0, 0)
34683
34685
  };
34684
34686
  }
34685
- const amountToInvestAfterRepayingDebt = amountToInvest.minus(debtAmountToBeRepaid);
34687
+ logger.info(
34688
+ `${_VesuExtendedMultiplierStrategy.name}::shouldInvest debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`
34689
+ );
34690
+ const amountToInvestAfterRepayingDebt = amountToInvest.plus(debtAmountToBeRepaid);
34686
34691
  const { vesu_amount, extended_amount, extended_leverage, vesu_leverage } = await calculateAmountDistribution(
34687
34692
  amountToInvestAfterRepayingDebt.toNumber(),
34688
34693
  extendedAdapter.client,
@@ -35349,7 +35354,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
35349
35354
  avnuAdapter,
35350
35355
  "close" /* CLOSE */
35351
35356
  );
35352
- if (!isPriceDifferenceBetweenAvnuAndExtended) {
35357
+ if (!isPriceDifferenceBetweenAvnuAndExtended && params.cycleType === "WITHDRAWAL" /* WITHDRAWAL */) {
35353
35358
  logger.warn(
35354
35359
  `price difference between avnu and extended doesn't fit the range for close position, ${avnuAdapter.config.maximumExtendedPriceDifferenceForSwapClosing}`
35355
35360
  );
package/dist/index.d.ts CHANGED
@@ -2784,7 +2784,7 @@ declare const calculateExposureDelta: (exposure_extended: number, exposure_vesu:
2784
2784
  * @returns {number} The delta percentage
2785
2785
  */
2786
2786
  declare const calculateBTCPriceDelta: (btcPrice: number, lastBtcPrice: number) => number;
2787
- declare const calculateVesUPositionSizeGivenExtended: (extendedPositonValue: number, extendedHoldingAmount: Web3Number, collateralAmount: Web3Number, collateralPrice: number, vesuDebtAmountToBeRepaid: Web3Number) => {
2787
+ declare const calculateVesUPositionSizeGivenExtended: (extendedPositonValue: number, extendedHoldingAmount: Web3Number, collateralAmount: Web3Number, collateralPrice: number) => {
2788
2788
  vesuAmountInUsd: string;
2789
2789
  vesuAmountInBTC: Web3Number;
2790
2790
  extendedAmountInBTC: Web3Number;
package/dist/index.js CHANGED
@@ -28379,14 +28379,14 @@ var calculateExposureDelta = (exposure_extended, exposure_vesu) => {
28379
28379
  var calculateBTCPriceDelta = (btcPrice, lastBtcPrice) => {
28380
28380
  return (btcPrice - lastBtcPrice) / lastBtcPrice * 100;
28381
28381
  };
28382
- var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice, vesuDebtAmountToBeRepaid) => {
28382
+ var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice) => {
28383
28383
  const extendedLeverage = calculateExtendedLevergae();
28384
28384
  const vesuLeverage = calculateVesuLeverage();
28385
28385
  const extendedAmount = extendedHoldingAmount;
28386
28386
  const extendedAmountInBTC = extendedAmount.dividedBy(collateralPrice);
28387
28387
  const numerator1 = extendedAmount.multipliedBy(extendedLeverage).plus(extendedPositonValue);
28388
28388
  const numerator2 = collateralAmount.multipliedBy(collateralPrice).multipliedBy(-1);
28389
- const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage).plus(vesuDebtAmountToBeRepaid);
28389
+ const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage);
28390
28390
  const vesuAmountInBTC = vesuAmountInUsd.dividedBy(collateralPrice).toFixed(WBTC_TOKEN_DECIMALS);
28391
28391
  return {
28392
28392
  vesuAmountInUsd: vesuAmountInUsd.toFixed(2),
@@ -28396,10 +28396,13 @@ var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHold
28396
28396
  };
28397
28397
  var calculateDeltaDebtAmount = (maxLtv = MAX_LTV_BTC_USDC, existingVesuCollateral, existingVesuDebt, collateralPrice, debtPrice, targetHf = TARGET_HF) => {
28398
28398
  try {
28399
- const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv).dividedBy(targetHf);
28399
+ const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv);
28400
+ logger.info(`term1: ${term1.toNumber()}`);
28400
28401
  const term2 = existingVesuDebt.multipliedBy(debtPrice).multipliedBy(targetHf).multipliedBy(-1);
28402
+ logger.info(`term2: ${term2.toNumber()}`);
28401
28403
  const debtAmountToBeRepaid = term1.plus(term2).dividedBy(targetHf);
28402
- return debtAmountToBeRepaid;
28404
+ logger.info(`debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`);
28405
+ return new Web3Number(debtAmountToBeRepaid.toFixed(USDC_TOKEN_DECIMALS), USDC_TOKEN_DECIMALS);
28403
28406
  } catch (err) {
28404
28407
  logger.error(`error calculating delta position: ${err}`);
28405
28408
  return null;
@@ -28413,7 +28416,6 @@ var calculatePositionToCloseToWithdrawAmount = async (extendedBalance, extendedP
28413
28416
  const unrealisedPnl = new Web3Number(extendedBalance.unrealisedPnl, USDC_TOKEN_DECIMALS);
28414
28417
  const availableForWithdrawal = new Web3Number(extendedBalance.availableForWithdrawal, USDC_TOKEN_DECIMALS);
28415
28418
  const upnlPercent = unrealisedPnl.dividedBy(extendedPosition);
28416
- console.log(`upnlPercent: ${upnlPercent}`);
28417
28419
  const walletBalance = new Web3Number(extendedBalance.balance, USDC_TOKEN_DECIMALS);
28418
28420
  const term1 = marginRequired.minus(walletBalance).minus(availableForWithdrawal).plus(amountToWithdraw).multipliedBy(extendedLeverage);
28419
28421
  const denominator = upnlPercent.multipliedBy(extendedLeverage).plus(1);
@@ -34841,7 +34843,10 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
34841
34843
  debtAmountToBeRepaid: new Web3Number(0, 0)
34842
34844
  };
34843
34845
  }
34844
- const amountToInvestAfterRepayingDebt = amountToInvest.minus(debtAmountToBeRepaid);
34846
+ logger.info(
34847
+ `${_VesuExtendedMultiplierStrategy.name}::shouldInvest debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`
34848
+ );
34849
+ const amountToInvestAfterRepayingDebt = amountToInvest.plus(debtAmountToBeRepaid);
34845
34850
  const { vesu_amount, extended_amount, extended_leverage, vesu_leverage } = await calculateAmountDistribution(
34846
34851
  amountToInvestAfterRepayingDebt.toNumber(),
34847
34852
  extendedAdapter.client,
@@ -35508,7 +35513,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
35508
35513
  avnuAdapter,
35509
35514
  "close" /* CLOSE */
35510
35515
  );
35511
- if (!isPriceDifferenceBetweenAvnuAndExtended) {
35516
+ if (!isPriceDifferenceBetweenAvnuAndExtended && params.cycleType === "WITHDRAWAL" /* WITHDRAWAL */) {
35512
35517
  logger.warn(
35513
35518
  `price difference between avnu and extended doesn't fit the range for close position, ${avnuAdapter.config.maximumExtendedPriceDifferenceForSwapClosing}`
35514
35519
  );
package/dist/index.mjs CHANGED
@@ -28231,14 +28231,14 @@ var calculateExposureDelta = (exposure_extended, exposure_vesu) => {
28231
28231
  var calculateBTCPriceDelta = (btcPrice, lastBtcPrice) => {
28232
28232
  return (btcPrice - lastBtcPrice) / lastBtcPrice * 100;
28233
28233
  };
28234
- var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice, vesuDebtAmountToBeRepaid) => {
28234
+ var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHoldingAmount, collateralAmount, collateralPrice) => {
28235
28235
  const extendedLeverage = calculateExtendedLevergae();
28236
28236
  const vesuLeverage = calculateVesuLeverage();
28237
28237
  const extendedAmount = extendedHoldingAmount;
28238
28238
  const extendedAmountInBTC = extendedAmount.dividedBy(collateralPrice);
28239
28239
  const numerator1 = extendedAmount.multipliedBy(extendedLeverage).plus(extendedPositonValue);
28240
28240
  const numerator2 = collateralAmount.multipliedBy(collateralPrice).multipliedBy(-1);
28241
- const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage).plus(vesuDebtAmountToBeRepaid);
28241
+ const vesuAmountInUsd = numerator1.plus(numerator2).dividedBy(vesuLeverage);
28242
28242
  const vesuAmountInBTC = vesuAmountInUsd.dividedBy(collateralPrice).toFixed(WBTC_TOKEN_DECIMALS);
28243
28243
  return {
28244
28244
  vesuAmountInUsd: vesuAmountInUsd.toFixed(2),
@@ -28248,10 +28248,13 @@ var calculateVesUPositionSizeGivenExtended = (extendedPositonValue, extendedHold
28248
28248
  };
28249
28249
  var calculateDeltaDebtAmount = (maxLtv = MAX_LTV_BTC_USDC, existingVesuCollateral, existingVesuDebt, collateralPrice, debtPrice, targetHf = TARGET_HF) => {
28250
28250
  try {
28251
- const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv).dividedBy(targetHf);
28251
+ const term1 = existingVesuCollateral.multipliedBy(collateralPrice).multipliedBy(maxLtv);
28252
+ logger.info(`term1: ${term1.toNumber()}`);
28252
28253
  const term2 = existingVesuDebt.multipliedBy(debtPrice).multipliedBy(targetHf).multipliedBy(-1);
28254
+ logger.info(`term2: ${term2.toNumber()}`);
28253
28255
  const debtAmountToBeRepaid = term1.plus(term2).dividedBy(targetHf);
28254
- return debtAmountToBeRepaid;
28256
+ logger.info(`debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`);
28257
+ return new Web3Number(debtAmountToBeRepaid.toFixed(USDC_TOKEN_DECIMALS), USDC_TOKEN_DECIMALS);
28255
28258
  } catch (err) {
28256
28259
  logger.error(`error calculating delta position: ${err}`);
28257
28260
  return null;
@@ -28265,7 +28268,6 @@ var calculatePositionToCloseToWithdrawAmount = async (extendedBalance, extendedP
28265
28268
  const unrealisedPnl = new Web3Number(extendedBalance.unrealisedPnl, USDC_TOKEN_DECIMALS);
28266
28269
  const availableForWithdrawal = new Web3Number(extendedBalance.availableForWithdrawal, USDC_TOKEN_DECIMALS);
28267
28270
  const upnlPercent = unrealisedPnl.dividedBy(extendedPosition);
28268
- console.log(`upnlPercent: ${upnlPercent}`);
28269
28271
  const walletBalance = new Web3Number(extendedBalance.balance, USDC_TOKEN_DECIMALS);
28270
28272
  const term1 = marginRequired.minus(walletBalance).minus(availableForWithdrawal).plus(amountToWithdraw).multipliedBy(extendedLeverage);
28271
28273
  const denominator = upnlPercent.multipliedBy(extendedLeverage).plus(1);
@@ -34693,7 +34695,10 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
34693
34695
  debtAmountToBeRepaid: new Web3Number(0, 0)
34694
34696
  };
34695
34697
  }
34696
- const amountToInvestAfterRepayingDebt = amountToInvest.minus(debtAmountToBeRepaid);
34698
+ logger.info(
34699
+ `${_VesuExtendedMultiplierStrategy.name}::shouldInvest debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`
34700
+ );
34701
+ const amountToInvestAfterRepayingDebt = amountToInvest.plus(debtAmountToBeRepaid);
34697
34702
  const { vesu_amount, extended_amount, extended_leverage, vesu_leverage } = await calculateAmountDistribution(
34698
34703
  amountToInvestAfterRepayingDebt.toNumber(),
34699
34704
  extendedAdapter.client,
@@ -35360,7 +35365,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
35360
35365
  avnuAdapter,
35361
35366
  "close" /* CLOSE */
35362
35367
  );
35363
- if (!isPriceDifferenceBetweenAvnuAndExtended) {
35368
+ if (!isPriceDifferenceBetweenAvnuAndExtended && params.cycleType === "WITHDRAWAL" /* WITHDRAWAL */) {
35364
35369
  logger.warn(
35365
35370
  `price difference between avnu and extended doesn't fit the range for close position, ${avnuAdapter.config.maximumExtendedPriceDifferenceForSwapClosing}`
35366
35371
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strkfarm/sdk",
3
- "version": "2.0.0-dev.25",
3
+ "version": "2.0.0-dev.26",
4
4
  "description": "STRKFarm TS SDK (Meant for our internal use, but feel free to use it)",
5
5
  "typings": "dist/index.d.ts",
6
6
  "types": "dist/index.d.ts",
@@ -403,8 +403,7 @@ export const calculateVesUPositionSizeGivenExtended = (
403
403
  extendedPositonValue: number,
404
404
  extendedHoldingAmount: Web3Number,
405
405
  collateralAmount: Web3Number,
406
- collateralPrice: number,
407
- vesuDebtAmountToBeRepaid: Web3Number
406
+ collateralPrice: number
408
407
  ) => {
409
408
  const extendedLeverage = calculateExtendedLevergae();
410
409
  const vesuLeverage = calculateVesuLeverage();
@@ -419,7 +418,6 @@ export const calculateVesUPositionSizeGivenExtended = (
419
418
  const vesuAmountInUsd = numerator1
420
419
  .plus(numerator2)
421
420
  .dividedBy(vesuLeverage)
422
- .plus(vesuDebtAmountToBeRepaid);
423
421
  const vesuAmountInBTC = vesuAmountInUsd
424
422
  .dividedBy(collateralPrice)
425
423
  .toFixed(WBTC_TOKEN_DECIMALS);
@@ -451,14 +449,17 @@ export const calculateDeltaDebtAmount = (
451
449
  try {
452
450
  const term1 = existingVesuCollateral
453
451
  .multipliedBy(collateralPrice)
454
- .multipliedBy(maxLtv)
455
- .dividedBy(targetHf);
452
+ .multipliedBy(maxLtv);
453
+
454
+ logger.info(`term1: ${term1.toNumber()}`);
456
455
  const term2 = existingVesuDebt
457
456
  .multipliedBy(debtPrice)
458
457
  .multipliedBy(targetHf)
459
458
  .multipliedBy(-1);
459
+ logger.info(`term2: ${term2.toNumber()}`);
460
460
  const debtAmountToBeRepaid = term1.plus(term2).dividedBy(targetHf);
461
- return debtAmountToBeRepaid;
461
+ logger.info(`debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`);
462
+ return new Web3Number(debtAmountToBeRepaid.toFixed(USDC_TOKEN_DECIMALS), USDC_TOKEN_DECIMALS);
462
463
  } catch (err) {
463
464
  logger.error(`error calculating delta position: ${err}`);
464
465
  return null;
@@ -477,7 +478,6 @@ export const calculatePositionToCloseToWithdrawAmount = async (
477
478
  const unrealisedPnl = new Web3Number(extendedBalance.unrealisedPnl, USDC_TOKEN_DECIMALS);
478
479
  const availableForWithdrawal = new Web3Number(extendedBalance.availableForWithdrawal, USDC_TOKEN_DECIMALS);
479
480
  const upnlPercent = unrealisedPnl.dividedBy(extendedPosition)
480
- console.log(`upnlPercent: ${upnlPercent}`);
481
481
  /**
482
482
  * New Formula
483
483
  */
@@ -503,8 +503,17 @@ export class VesuExtendedMultiplierStrategy<
503
503
  debtAmountToBeRepaid: new Web3Number(0, 0),
504
504
  };
505
505
  }
506
+ logger.info(
507
+ `${
508
+ VesuExtendedMultiplierStrategy.name
509
+ }::shouldInvest debtAmountToBeRepaid: ${debtAmountToBeRepaid.toNumber()}`
510
+ );
511
+ /**
512
+ * Since the debt amount is negative, we need to add it to the amount to invest
513
+ * to maintain the ltv
514
+ */
506
515
  const amountToInvestAfterRepayingDebt =
507
- amountToInvest.minus(debtAmountToBeRepaid);
516
+ amountToInvest.plus(debtAmountToBeRepaid);
508
517
  const { vesu_amount, extended_amount, extended_leverage, vesu_leverage } =
509
518
  await calculateAmountDistribution(
510
519
  amountToInvestAfterRepayingDebt.toNumber(),
@@ -1317,7 +1326,10 @@ export class VesuExtendedMultiplierStrategy<
1317
1326
  avnuAdapter,
1318
1327
  PositionTypeAvnuExtended.CLOSE
1319
1328
  );
1320
- if (!isPriceDifferenceBetweenAvnuAndExtended) {
1329
+ if (
1330
+ !isPriceDifferenceBetweenAvnuAndExtended &&
1331
+ params.cycleType === CycleType.WITHDRAWAL
1332
+ ) {
1321
1333
  logger.warn(
1322
1334
  `price difference between avnu and extended doesn't fit the range for close position, ${avnuAdapter.config.maximumExtendedPriceDifferenceForSwapClosing}`
1323
1335
  );