@haven-fi/solauto-sdk 1.0.158 → 1.0.160

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.
@@ -336,7 +336,7 @@ class SolautoMarginfiClient extends solautoClient_1.SolautoClient {
336
336
  : undefined,
337
337
  rebalanceType,
338
338
  targetLiqUtilizationRateBps: targetLiqUtilizationRateBps ?? null,
339
- targetInAmountBaseUnit: targetLiqUtilizationRateBps
339
+ targetInAmountBaseUnit: targetLiqUtilizationRateBps && rebalanceStep === "A"
340
340
  ? swapDetails.amount
341
341
  : null,
342
342
  limitGapBps: limitGapBps ?? null,
@@ -157,7 +157,7 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, attem
157
157
  if (txType !== "skip-simulation") {
158
158
  // TODO: we should only retry simulation if it's not a solauto error
159
159
  const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(await (await assembleFinalTransaction(umi.identity, tx, feeEstimate, 1400000).setLatestBlockhash(umi)).build(umi))), 3);
160
- const computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.1);
160
+ const computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.2);
161
161
  console.log("Compute unit limit: ", computeUnitLimit);
162
162
  }
163
163
  if (txType !== "only-simulate") {
@@ -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;AAgJjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,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,CAiEjB;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,CAmE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAqChB"}
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;AA8IjD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,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,CAiEjB;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,CAoE9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAsChB"}
@@ -111,11 +111,12 @@ function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice,
111
111
  debtAdjustmentUsd,
112
112
  amountToDcaIn: amountToDcaIn ?? 0,
113
113
  amountUsdToDcaIn,
114
- dcaTokenType: dca?.tokenType
114
+ dcaTokenType: dca?.tokenType,
115
115
  };
116
116
  }
117
117
  function getFlashLoanDetails(client, values, jupQuote, priceImpactBps) {
118
- let supplyUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.supply.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS) + (values.dcaTokenType === generated_1.TokenType.Supply ? values.amountUsdToDcaIn : 0);
118
+ let supplyUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.supply.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS) +
119
+ (values.dcaTokenType === generated_1.TokenType.Supply ? values.amountUsdToDcaIn : 0);
119
120
  let debtUsd = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState.debt.amountUsed.baseAmountUsdValue, generalAccounts_1.USD_DECIMALS);
120
121
  const debtAdjustmentWithSlippage = Math.abs(values.debtAdjustmentUsd) +
121
122
  Math.abs(values.debtAdjustmentUsd) * (0, numberUtils_1.fromBps)(priceImpactBps);
@@ -141,7 +142,8 @@ function getFlashLoanDetails(client, values, jupQuote, priceImpactBps) {
141
142
  flashLoanToken = client.solautoPositionState.supply;
142
143
  flashLoanTokenPrice = (0, generalUtils_2.safeGetPrice)(client.supplyMint);
143
144
  }
144
- const exactAmountBaseUnit = jupQuote && jupQuote.swapMode === "ExactOut"
145
+ const exactAmountBaseUnit = jupQuote &&
146
+ (jupQuote.swapMode === "ExactOut" || jupQuote.swapMode === "ExactIn")
145
147
  ? BigInt(parseInt(jupQuote.inAmount))
146
148
  : undefined;
147
149
  return requiresFlashLoan
@@ -161,7 +163,8 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
161
163
  const output = values.increasingLeverage
162
164
  ? client.solautoPositionState.supply
163
165
  : client.solautoPositionState.debt;
164
- const usdToSwap = Math.abs(values.debtAdjustmentUsd) + (values.dcaTokenType === generated_1.TokenType.Debt ? values.amountUsdToDcaIn : 0);
166
+ const usdToSwap = Math.abs(values.debtAdjustmentUsd) +
167
+ (values.dcaTokenType === generated_1.TokenType.Debt ? values.amountUsdToDcaIn : 0);
165
168
  const inputPrice = values.increasingLeverage
166
169
  ? (0, generalUtils_2.safeGetPrice)(client.debtMint)
167
170
  : (0, generalUtils_2.safeGetPrice)(client.supplyMint);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.158",
3
+ "version": "1.0.160",
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",
@@ -517,7 +517,7 @@ export class SolautoMarginfiClient extends SolautoClient {
517
517
  : undefined,
518
518
  rebalanceType,
519
519
  targetLiqUtilizationRateBps: targetLiqUtilizationRateBps ?? null,
520
- targetInAmountBaseUnit: targetLiqUtilizationRateBps
520
+ targetInAmountBaseUnit: targetLiqUtilizationRateBps && rebalanceStep === "A"
521
521
  ? swapDetails.amount
522
522
  : null,
523
523
  limitGapBps: limitGapBps ?? null,
@@ -309,7 +309,7 @@ export async function sendSingleOptimizedTransaction(
309
309
  );
310
310
 
311
311
  const computeUnitLimit = Math.round(
312
- simulationResult.value.unitsConsumed! * 1.1
312
+ simulationResult.value.unitsConsumed! * 1.2
313
313
  );
314
314
  console.log("Compute unit limit: ", computeUnitLimit);
315
315
  }
@@ -26,9 +26,7 @@ import {
26
26
  toBaseUnit,
27
27
  } from "../numberUtils";
28
28
  import { USD_DECIMALS } from "../../constants/generalAccounts";
29
- import {
30
- DEFAULT_LIMIT_GAP_BPS,
31
- } from "../../constants/solautoConstants";
29
+ import { DEFAULT_LIMIT_GAP_BPS } from "../../constants/solautoConstants";
32
30
 
33
31
  function getAdditionalAmountToDcaIn(dca: DCASettings): number {
34
32
  if (dca.dcaInBaseUnit === BigInt(0)) {
@@ -125,7 +123,7 @@ function getTargetRateAndDcaAmount(
125
123
  dca: DCASettings | undefined,
126
124
  currentUnixTime: number,
127
125
  targetLiqUtilizationRateBps?: number
128
- ): { targetRateBps: number; amountToDcaIn?: number; } {
126
+ ): { targetRateBps: number; amountToDcaIn?: number } {
129
127
  if (targetLiqUtilizationRateBps !== undefined) {
130
128
  return {
131
129
  targetRateBps: targetLiqUtilizationRateBps,
@@ -238,7 +236,7 @@ export function getRebalanceValues(
238
236
  debtAdjustmentUsd,
239
237
  amountToDcaIn: amountToDcaIn ?? 0,
240
238
  amountUsdToDcaIn,
241
- dcaTokenType: dca?.tokenType
239
+ dcaTokenType: dca?.tokenType,
242
240
  };
243
241
  }
244
242
 
@@ -253,10 +251,12 @@ export function getFlashLoanDetails(
253
251
  jupQuote: QuoteResponse,
254
252
  priceImpactBps: number
255
253
  ): FlashLoanDetails | undefined {
256
- let supplyUsd = fromBaseUnit(
257
- client.solautoPositionState!.supply.amountUsed.baseAmountUsdValue,
258
- USD_DECIMALS
259
- ) + (values.dcaTokenType === TokenType.Supply ? values.amountUsdToDcaIn : 0);
254
+ let supplyUsd =
255
+ fromBaseUnit(
256
+ client.solautoPositionState!.supply.amountUsed.baseAmountUsdValue,
257
+ USD_DECIMALS
258
+ ) +
259
+ (values.dcaTokenType === TokenType.Supply ? values.amountUsdToDcaIn : 0);
260
260
  let debtUsd = fromBaseUnit(
261
261
  client.solautoPositionState!.debt.amountUsed.baseAmountUsdValue,
262
262
  USD_DECIMALS
@@ -299,7 +299,8 @@ export function getFlashLoanDetails(
299
299
  }
300
300
 
301
301
  const exactAmountBaseUnit =
302
- jupQuote && jupQuote.swapMode === "ExactOut"
302
+ jupQuote &&
303
+ (jupQuote.swapMode === "ExactOut" || jupQuote.swapMode === "ExactIn")
303
304
  ? BigInt(parseInt(jupQuote.inAmount))
304
305
  : undefined;
305
306
 
@@ -308,9 +309,7 @@ export function getFlashLoanDetails(
308
309
  baseUnitAmount: exactAmountBaseUnit
309
310
  ? exactAmountBaseUnit +
310
311
  BigInt(
311
- Math.round(
312
- Number(exactAmountBaseUnit) * fromBps(priceImpactBps)
313
- )
312
+ Math.round(Number(exactAmountBaseUnit) * fromBps(priceImpactBps))
314
313
  )
315
314
  : toBaseUnit(
316
315
  debtAdjustmentWithSlippage / flashLoanTokenPrice,
@@ -335,7 +334,8 @@ export function getJupSwapRebalanceDetails(
335
334
  : client.solautoPositionState!.debt;
336
335
 
337
336
  const usdToSwap =
338
- Math.abs(values.debtAdjustmentUsd) + (values.dcaTokenType === TokenType.Debt ? values.amountUsdToDcaIn : 0);
337
+ Math.abs(values.debtAdjustmentUsd) +
338
+ (values.dcaTokenType === TokenType.Debt ? values.amountUsdToDcaIn : 0);
339
339
 
340
340
  const inputPrice = values.increasingLeverage
341
341
  ? safeGetPrice(client.debtMint)