@haven-fi/solauto-sdk 1.0.435 → 1.0.436

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,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAajD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoI9C,MAAM,WAAW,eAAe;IAC9B,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;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;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,GACnC,eAAe,CAwDjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CAiF9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA8ChB"}
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,kBAAkB,EAClB,yBAAyB,EACzB,SAAS,EACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAajD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoI9C,MAAM,WAAW,eAAe;IAC9B,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;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;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,GACnC,eAAe,CAwDjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CAqF9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA8ChB"}
@@ -128,12 +128,13 @@ function getFlashLoanDetails(client, values, jupQuote) {
128
128
  (0, generalUtils_2.consoleLog)("Intermediary liq utilization rate:", tempLiqUtilizationRateBps, `$${supplyUsd}`, `$${debtUsd}`, "Max:", maxLiqUtilizationRateBps);
129
129
  let flashLoanToken = undefined;
130
130
  let flashLoanTokenPrice = 0;
131
- const baseUnitAmount = BigInt(parseInt(jupQuote.inAmount));
131
+ const inAmount = BigInt(parseInt(jupQuote.inAmount));
132
+ const outAmount = BigInt(parseInt(jupQuote.outAmount));
132
133
  const sufficientDebtLiquidity = debtAdjustmentUsdAbs * 1.1 <=
133
134
  (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState?.debt.amountCanBeUsed.baseAmountUsdValue ??
134
135
  BigInt(0), generalAccounts_1.USD_DECIMALS);
135
- if (values.rebalanceDirection === generated_1.RebalanceDirection.Boost ||
136
- sufficientDebtLiquidity) {
136
+ const boosting = values.rebalanceDirection === generated_1.RebalanceDirection.Boost;
137
+ if (boosting || sufficientDebtLiquidity) {
137
138
  flashLoanToken = client.solautoPositionState.debt;
138
139
  flashLoanTokenPrice = (0, priceUtils_1.safeGetPrice)(client.debtMint);
139
140
  }
@@ -144,11 +145,13 @@ function getFlashLoanDetails(client, values, jupQuote) {
144
145
  if (jupQuote.swapMode !== "ExactOut" && jupQuote.swapMode !== "ExactIn") {
145
146
  throw new Error("Token ledger swap not currently supported");
146
147
  }
148
+ const useDebtLiquidity = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(flashLoanToken.mint).equals(client.debtMint);
149
+ const baseUnitAmount = boosting || (!boosting && !useDebtLiquidity) ? inAmount : outAmount;
147
150
  return requiresFlashLoan
148
151
  ? {
149
152
  baseUnitAmount,
150
153
  mint: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(flashLoanToken.mint),
151
- useDebtLiquidity: (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(flashLoanToken.mint).equals(client.debtMint),
154
+ useDebtLiquidity,
152
155
  }
153
156
  : undefined;
154
157
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.435",
3
+ "version": "1.0.436",
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",
@@ -295,7 +295,9 @@ export function getFlashLoanDetails(
295
295
  let flashLoanToken: PositionTokenUsage | undefined = undefined;
296
296
  let flashLoanTokenPrice = 0;
297
297
 
298
- const baseUnitAmount = BigInt(parseInt(jupQuote.inAmount));
298
+ const inAmount = BigInt(parseInt(jupQuote.inAmount));
299
+ const outAmount = BigInt(parseInt(jupQuote.outAmount));
300
+
299
301
  const sufficientDebtLiquidity =
300
302
  debtAdjustmentUsdAbs * 1.1 <=
301
303
  fromBaseUnit(
@@ -304,10 +306,8 @@ export function getFlashLoanDetails(
304
306
  USD_DECIMALS
305
307
  );
306
308
 
307
- if (
308
- values.rebalanceDirection === RebalanceDirection.Boost ||
309
- sufficientDebtLiquidity
310
- ) {
309
+ const boosting = values.rebalanceDirection === RebalanceDirection.Boost;
310
+ if (boosting || sufficientDebtLiquidity) {
311
311
  flashLoanToken = client.solautoPositionState!.debt;
312
312
  flashLoanTokenPrice = safeGetPrice(client.debtMint)!;
313
313
  } else {
@@ -319,13 +319,17 @@ export function getFlashLoanDetails(
319
319
  throw new Error("Token ledger swap not currently supported");
320
320
  }
321
321
 
322
+ const useDebtLiquidity = toWeb3JsPublicKey(flashLoanToken.mint).equals(
323
+ client.debtMint
324
+ );
325
+ const baseUnitAmount =
326
+ boosting || (!boosting && !useDebtLiquidity) ? inAmount : outAmount;
327
+
322
328
  return requiresFlashLoan
323
329
  ? {
324
330
  baseUnitAmount,
325
331
  mint: toWeb3JsPublicKey(flashLoanToken.mint),
326
- useDebtLiquidity: toWeb3JsPublicKey(flashLoanToken.mint).equals(
327
- client.debtMint
328
- ),
332
+ useDebtLiquidity,
329
333
  }
330
334
  : undefined;
331
335
  }