@haven-fi/solauto-sdk 1.0.171 → 1.0.172

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.
@@ -1 +1 @@
1
- {"version":3,"file":"rebalanceUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/rebalanceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,aAAa,EAEb,yBAAyB,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA+IjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,yBAAyB,GAAG,SAAS,EAC/C,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CAmEjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,MAAM,GACrB,gBAAgB,GAAG,SAAS,CAgE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA4ChB"}
1
+ {"version":3,"file":"rebalanceUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/rebalanceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,aAAa,EAEb,yBAAyB,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA+IjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,yBAAyB,GAAG,SAAS,EAC/C,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,2BAA2B,CAAC,EAAE,MAAM,EACpC,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CAoEjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,MAAM,GACrB,gBAAgB,GAAG,SAAS,CA0D9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAyChB"}
@@ -120,16 +120,11 @@ function getFlashLoanDetails(client, values, jupQuote, priceImpactBps) {
120
120
  let supplyUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.supply.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS) +
121
121
  (values.dcaTokenType === generated_1.TokenType.Supply ? values.amountUsdToDcaIn : 0);
122
122
  let debtUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.debt.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS);
123
- const debtAdjustmentWithSlippage = Math.abs(values.debtAdjustmentUsd) +
124
- Math.abs(values.debtAdjustmentUsd) * (0, numberUtils_1.fromBps)(priceImpactBps);
123
+ const debtAdjustmentUsd = Math.abs(values.debtAdjustmentUsd);
125
124
  supplyUsd =
126
- values.debtAdjustmentUsd < 0
127
- ? supplyUsd - debtAdjustmentWithSlippage
128
- : supplyUsd;
125
+ values.debtAdjustmentUsd < 0 ? supplyUsd - debtAdjustmentUsd : supplyUsd;
129
126
  debtUsd =
130
- values.debtAdjustmentUsd > 0
131
- ? debtUsd + debtAdjustmentWithSlippage
132
- : debtUsd;
127
+ values.debtAdjustmentUsd > 0 ? debtUsd + debtAdjustmentUsd : debtUsd;
133
128
  const tempLiqUtilizationRateBps = (0, numberUtils_1.getLiqUtilzationRateBps)(supplyUsd, debtUsd, client.solautoPositionState.liqThresholdBps);
134
129
  const requiresFlashLoan = supplyUsd <= 0 ||
135
130
  tempLiqUtilizationRateBps >
@@ -151,7 +146,7 @@ function getFlashLoanDetails(client, values, jupQuote, priceImpactBps) {
151
146
  ? {
152
147
  baseUnitAmount: exactAmountBaseUnit
153
148
  ? exactAmountBaseUnit
154
- : (0, numberUtils_1.toBaseUnit)(debtAdjustmentWithSlippage / flashLoanTokenPrice, flashLoanToken.decimals),
149
+ : (0, numberUtils_1.toBaseUnit)(debtAdjustmentUsd / flashLoanTokenPrice, flashLoanToken.decimals),
155
150
  mint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(flashLoanToken.mint),
156
151
  }
157
152
  : undefined;
@@ -166,7 +161,12 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
166
161
  const usdToSwap = Math.abs(values.debtAdjustmentUsd) +
167
162
  (values.dcaTokenType === generated_1.TokenType.Debt ? values.amountUsdToDcaIn : 0);
168
163
  const inputAmount = (0, numberUtils_1.toBaseUnit)(usdToSwap / (0, generalUtils_2.safeGetPrice)(input.mint), input.decimals);
169
- const outputAmount = (0, numberUtils_1.toBaseUnit)(usdToSwap / (0, generalUtils_2.safeGetPrice)(output.mint), output.decimals);
164
+ const outputAmount = targetLiqUtilizationRateBps === 0
165
+ ? output.amountUsed.baseUnit +
166
+ BigInt(Math.round(Number(output.amountUsed.baseUnit) *
167
+ // Add this small percentage to account for the APR on the debt between now and the transaction
168
+ 0.0001))
169
+ : (0, numberUtils_1.toBaseUnit)(usdToSwap / (0, generalUtils_2.safeGetPrice)(output.mint), output.decimals);
170
170
  const exactOut = targetLiqUtilizationRateBps === 0 || values.repayingCloseToMaxLtv;
171
171
  const exactIn = !exactOut;
172
172
  return {
@@ -174,14 +174,7 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
174
174
  outputMint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(output.mint),
175
175
  destinationWallet: client.solautoPosition,
176
176
  slippageIncFactor: 0.5 + (attemptNum ?? 0) * 0.2,
177
- amount: exactOut
178
- ? outputAmount +
179
- (targetLiqUtilizationRateBps === 0
180
- ? BigInt(Math.round(Number(outputAmount) *
181
- // Add this small percentage to account for the APR on the debt between now and the transaction
182
- 0.0001))
183
- : BigInt(0))
184
- : inputAmount,
177
+ amount: exactOut ? outputAmount : inputAmount,
185
178
  exactIn: exactIn,
186
179
  exactOut: exactOut,
187
180
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.171",
3
+ "version": "1.0.172",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "description": "Typescript SDK for the Solauto program on the Solana blockchain",
@@ -237,7 +237,8 @@ export function getRebalanceValues(
237
237
  return {
238
238
  increasingLeverage,
239
239
  debtAdjustmentUsd,
240
- repayingCloseToMaxLtv: state.liqUtilizationRateBps > maxRepayTo && targetRateBps >= maxRepayTo,
240
+ repayingCloseToMaxLtv:
241
+ state.liqUtilizationRateBps > maxRepayTo && targetRateBps >= maxRepayTo,
241
242
  amountToDcaIn: amountToDcaIn ?? 0,
242
243
  amountUsdToDcaIn,
243
244
  dcaTokenType: dca?.tokenType,
@@ -266,17 +267,11 @@ export function getFlashLoanDetails(
266
267
  USD_DECIMALS
267
268
  );
268
269
 
269
- const debtAdjustmentWithSlippage =
270
- Math.abs(values.debtAdjustmentUsd) +
271
- Math.abs(values.debtAdjustmentUsd) * fromBps(priceImpactBps);
270
+ const debtAdjustmentUsd = Math.abs(values.debtAdjustmentUsd);
272
271
  supplyUsd =
273
- values.debtAdjustmentUsd < 0
274
- ? supplyUsd - debtAdjustmentWithSlippage
275
- : supplyUsd;
272
+ values.debtAdjustmentUsd < 0 ? supplyUsd - debtAdjustmentUsd : supplyUsd;
276
273
  debtUsd =
277
- values.debtAdjustmentUsd > 0
278
- ? debtUsd + debtAdjustmentWithSlippage
279
- : debtUsd;
274
+ values.debtAdjustmentUsd > 0 ? debtUsd + debtAdjustmentUsd : debtUsd;
280
275
 
281
276
  const tempLiqUtilizationRateBps = getLiqUtilzationRateBps(
282
277
  supplyUsd,
@@ -312,7 +307,7 @@ export function getFlashLoanDetails(
312
307
  baseUnitAmount: exactAmountBaseUnit
313
308
  ? exactAmountBaseUnit
314
309
  : toBaseUnit(
315
- debtAdjustmentWithSlippage / flashLoanTokenPrice,
310
+ debtAdjustmentUsd / flashLoanTokenPrice,
316
311
  flashLoanToken.decimals
317
312
  ),
318
313
  mint: toWeb3JsPublicKey(flashLoanToken.mint),
@@ -341,12 +336,20 @@ export function getJupSwapRebalanceDetails(
341
336
  usdToSwap / safeGetPrice(input.mint)!,
342
337
  input.decimals
343
338
  );
344
- const outputAmount = toBaseUnit(
345
- usdToSwap / safeGetPrice(output.mint)!,
346
- output.decimals
347
- );
348
-
349
- const exactOut = targetLiqUtilizationRateBps === 0 || values.repayingCloseToMaxLtv;
339
+ const outputAmount =
340
+ targetLiqUtilizationRateBps === 0
341
+ ? output.amountUsed.baseUnit +
342
+ BigInt(
343
+ Math.round(
344
+ Number(output.amountUsed.baseUnit) *
345
+ // Add this small percentage to account for the APR on the debt between now and the transaction
346
+ 0.0001
347
+ )
348
+ )
349
+ : toBaseUnit(usdToSwap / safeGetPrice(output.mint)!, output.decimals);
350
+
351
+ const exactOut =
352
+ targetLiqUtilizationRateBps === 0 || values.repayingCloseToMaxLtv;
350
353
  const exactIn = !exactOut;
351
354
 
352
355
  return {
@@ -354,18 +357,7 @@ export function getJupSwapRebalanceDetails(
354
357
  outputMint: toWeb3JsPublicKey(output.mint),
355
358
  destinationWallet: client.solautoPosition,
356
359
  slippageIncFactor: 0.5 + (attemptNum ?? 0) * 0.2,
357
- amount: exactOut
358
- ? outputAmount +
359
- (targetLiqUtilizationRateBps === 0
360
- ? BigInt(
361
- Math.round(
362
- Number(outputAmount) *
363
- // Add this small percentage to account for the APR on the debt between now and the transaction
364
- 0.0001
365
- )
366
- )
367
- : BigInt(0))
368
- : inputAmount,
360
+ amount: exactOut ? outputAmount : inputAmount,
369
361
  exactIn: exactIn,
370
362
  exactOut: exactOut,
371
363
  };