@haven-fi/solauto-sdk 1.0.492 → 1.0.494

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":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAEL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAc7D,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAMjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IARtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACjB,WAAW,EAAE,OAAO,CAAS;gBAG3B,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AA0FD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAe,EAC3B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IAwCrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAiBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IA2GzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YAkCxB,6BAA6B;YAsI7B,qBAAqB;YAoDrB,eAAe;YA0Df,eAAe;CA4D9B"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAMzD,OAAO,EAEL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAc7D,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAMjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IARtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACjB,WAAW,EAAE,OAAO,CAAS;gBAG3B,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AA0FD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EAAE,CAAC;AAEJ,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAe,EAC3B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IAwCrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAiBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IA4GzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YAkCxB,6BAA6B;YAsI7B,qBAAqB;YAoDrB,eAAe;YA0Df,eAAe;CA4D9B"}
@@ -271,6 +271,7 @@ class TransactionsManager {
271
271
  for (const item of items) {
272
272
  await item.initialize();
273
273
  }
274
+ // TODO: need better fix here
274
275
  const allAccounts = items.flatMap((item) => {
275
276
  return (item.tx
276
277
  ?.getInstructions()
@@ -1 +1 @@
1
- {"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgBD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAqH7B;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO;;GA0B5E"}
1
+ {"version":3,"file":"jupiterUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jupiterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EAGL,aAAa,EACd,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgBD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,iBAAiB,EAAE,kBAAkB,CAAC;IACtC,aAAa,EAAE,kBAAkB,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,cAAc,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAoH7B;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO;;GA0B5E"}
@@ -27,14 +27,8 @@ async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
27
27
  constants_1.TOKEN_INFO[swapDetails.outputMint.toString()].isMeme;
28
28
  const tokensWithLowAccounts = [constants_1.PYTH, constants_1.INF];
29
29
  // TEMP REVERT ME
30
- // const useLowAccounts =
31
- // tokensWithLowAccounts.find((x) =>
32
- // swapDetails.inputMint.equals(new PublicKey(x))
33
- // ) ||
34
- // tokensWithLowAccounts.find((x) =>
35
- // swapDetails.outputMint.equals(new PublicKey(x))
36
- // );
37
- const useLowAccounts = true;
30
+ const useLowAccounts = tokensWithLowAccounts.find((x) => swapDetails.inputMint.equals(new web3_js_1.PublicKey(x))) ||
31
+ tokensWithLowAccounts.find((x) => swapDetails.outputMint.equals(new web3_js_1.PublicKey(x)));
38
32
  const quoteResponse = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await jupApi.quoteGet({
39
33
  amount: Number(swapDetails.amount),
40
34
  inputMint: swapDetails.inputMint.toString(),
@@ -80,7 +74,7 @@ async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
80
74
  (0, generalUtils_1.consoleLog)("Increased price impact bps:", finalPriceImpactBps);
81
75
  if (swapDetails.addPadding) {
82
76
  (0, generalUtils_1.consoleLog)("Raw inAmount:", quoteResponse.inAmount);
83
- const inc = Math.max((0, numberUtils_1.fromBps)(finalPriceImpactBps) * 1.1, (0, numberUtils_1.fromBps)(finalPriceSlippageBps) * 0.03);
77
+ const inc = Math.max((0, numberUtils_1.fromBps)(finalPriceImpactBps) * 1.1, (0, numberUtils_1.fromBps)(finalPriceSlippageBps) * 0.05);
84
78
  (0, generalUtils_1.consoleLog)("Inc:", inc);
85
79
  quoteResponse.inAmount = Math.round(parseInt(quoteResponse.inAmount) + parseInt(quoteResponse.inAmount) * inc).toString();
86
80
  (0, generalUtils_1.consoleLog)("Increased inAmount:", quoteResponse.inAmount);
@@ -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;AAcjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA4I9C,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;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;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,CA4EjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe;;;EAsDxB;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,CAgC9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA2DhB"}
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;AAcjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA4I9C,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;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;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,CA6EjB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe;;;EAsDxB;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,CAgC9B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CAoEhB"}
@@ -183,16 +183,19 @@ function getJupSwapRebalanceDetails(client, values, targetLiqUtilizationRateBps,
183
183
  const usdToSwap = Math.abs(values.debtAdjustmentUsd) +
184
184
  (values.dcaTokenType === generated_1.TokenType.Debt ? values.amountUsdToDcaIn : 0);
185
185
  const inputAmount = (0, numberUtils_1.toBaseUnit)(usdToSwap / (0, priceUtils_1.safeGetPrice)(input.mint), input.decimals);
186
+ const highLiquidity = (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState?.netWorth.baseAmountUsdValue ?? BigInt(0), generalAccounts_1.USD_DECIMALS) > 10000;
187
+ const usingMajor = (0, generalUtils_2.tokenInfo)(client.supplyMint).isMajor || (0, generalUtils_2.tokenInfo)(client.debtMint).isMajor;
188
+ const debtPadding = !usingMajor && highLiquidity ? 0.001 : 0.0001;
186
189
  const outputAmount = targetLiqUtilizationRateBps === 0
187
190
  ? output.amountUsed.baseUnit +
188
191
  BigInt(Math.round(Number(output.amountUsed.baseUnit) *
189
192
  // Add this small percentage to account for the APR on the debt between now and the transaction
190
- 0.0001))
193
+ debtPadding))
191
194
  : (0, numberUtils_1.toBaseUnit)(usdToSwap / (0, priceUtils_1.safeGetPrice)(output.mint), output.decimals);
192
195
  const repaying = values.rebalanceDirection === generated_1.RebalanceDirection.Repay;
193
196
  const { requiresFlashLoan, useDebtLiquidity } = rebalanceRequiresFlashLoan(client, values);
194
197
  const flashLoanRepayFromDebt = repaying && requiresFlashLoan && useDebtLiquidity;
195
- const exactOut = targetLiqUtilizationRateBps === 0 ||
198
+ const exactOut = (targetLiqUtilizationRateBps === 0 && highLiquidity && usingMajor) ||
196
199
  // values.repayingCloseToMaxLtv ||
197
200
  flashLoanRepayFromDebt;
198
201
  const exactIn = !exactOut;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.492",
3
+ "version": "1.0.494",
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",
@@ -435,6 +435,7 @@ export class TransactionsManager {
435
435
  await item.initialize();
436
436
  }
437
437
 
438
+ // TODO: need better fix here
438
439
  const allAccounts = items.flatMap((item) => {
439
440
  return (
440
441
  item.tx
@@ -62,14 +62,13 @@ export async function getJupSwapTransaction(
62
62
 
63
63
  const tokensWithLowAccounts = [PYTH, INF];
64
64
  // TEMP REVERT ME
65
- // const useLowAccounts =
66
- // tokensWithLowAccounts.find((x) =>
67
- // swapDetails.inputMint.equals(new PublicKey(x))
68
- // ) ||
69
- // tokensWithLowAccounts.find((x) =>
70
- // swapDetails.outputMint.equals(new PublicKey(x))
71
- // );
72
- const useLowAccounts = true;
65
+ const useLowAccounts =
66
+ tokensWithLowAccounts.find((x) =>
67
+ swapDetails.inputMint.equals(new PublicKey(x))
68
+ ) ||
69
+ tokensWithLowAccounts.find((x) =>
70
+ swapDetails.outputMint.equals(new PublicKey(x))
71
+ );
73
72
 
74
73
  const quoteResponse = await retryWithExponentialBackoff(
75
74
  async () =>
@@ -139,7 +138,7 @@ export async function getJupSwapTransaction(
139
138
  consoleLog("Raw inAmount:", quoteResponse.inAmount);
140
139
  const inc = Math.max(
141
140
  fromBps(finalPriceImpactBps) * 1.1,
142
- fromBps(finalPriceSlippageBps) * 0.03
141
+ fromBps(finalPriceSlippageBps) * 0.05
143
142
  );
144
143
  consoleLog("Inc:", inc);
145
144
  quoteResponse.inAmount = Math.round(
@@ -16,7 +16,7 @@ import {
16
16
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
17
17
  import { QuoteResponse } from "@jup-ag/api";
18
18
  import { JupSwapDetails } from "../jupiterUtils";
19
- import { consoleLog, currentUnixSeconds } from "../generalUtils";
19
+ import { consoleLog, currentUnixSeconds, tokenInfo } from "../generalUtils";
20
20
  import {
21
21
  fromBaseUnit,
22
22
  fromBps,
@@ -247,6 +247,7 @@ export function getRebalanceValues(
247
247
  targetRateBps,
248
248
  maxBoostToBps(state.maxLtvBps, state.liqThresholdBps)
249
249
  );
250
+
250
251
  const maxRepayTo = maxRepayToBps(state.maxLtvBps, state.liqThresholdBps);
251
252
  return {
252
253
  debtAdjustmentUsd,
@@ -392,6 +393,15 @@ export function getJupSwapRebalanceDetails(
392
393
  usdToSwap / safeGetPrice(input.mint)!,
393
394
  input.decimals
394
395
  );
396
+
397
+ const highLiquidity =
398
+ fromBaseUnit(
399
+ client.solautoPositionState?.netWorth.baseAmountUsdValue ?? BigInt(0),
400
+ USD_DECIMALS
401
+ ) > 10_000;
402
+ const usingMajor =
403
+ tokenInfo(client.supplyMint).isMajor || tokenInfo(client.debtMint).isMajor;
404
+ const debtPadding = !usingMajor && highLiquidity ? 0.001 : 0.0001;
395
405
  const outputAmount =
396
406
  targetLiqUtilizationRateBps === 0
397
407
  ? output.amountUsed.baseUnit +
@@ -399,7 +409,7 @@ export function getJupSwapRebalanceDetails(
399
409
  Math.round(
400
410
  Number(output.amountUsed.baseUnit) *
401
411
  // Add this small percentage to account for the APR on the debt between now and the transaction
402
- 0.0001
412
+ debtPadding
403
413
  )
404
414
  )
405
415
  : toBaseUnit(usdToSwap / safeGetPrice(output.mint)!, output.decimals);
@@ -414,7 +424,7 @@ export function getJupSwapRebalanceDetails(
414
424
  repaying && requiresFlashLoan && useDebtLiquidity;
415
425
 
416
426
  const exactOut =
417
- targetLiqUtilizationRateBps === 0 ||
427
+ (targetLiqUtilizationRateBps === 0 && highLiquidity && usingMajor) ||
418
428
  // values.repayingCloseToMaxLtv ||
419
429
  flashLoanRepayFromDebt;
420
430
  const exactIn = !exactOut;
@@ -45,9 +45,9 @@ describe("Solauto Marginfi tests", async () => {
45
45
  // const signer = setupTest();
46
46
  const signer = setupTest("solauto-manager");
47
47
 
48
- const payForTransactions = true;
48
+ const payForTransactions = false;
49
49
  const testProgram = false;
50
- const positionId = 2;
50
+ const positionId = 1;
51
51
 
52
52
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
53
53
  const client = new SolautoMarginfiClient(
@@ -63,7 +63,7 @@ describe("Solauto Marginfi tests", async () => {
63
63
  await client.initialize({
64
64
  signer,
65
65
  positionId,
66
- authority: new PublicKey("81NXz7tX5knePkKZ9T7uWK86PJq6MKQUx3kAxvekNyz1"),
66
+ authority: new PublicKey("9j53Z6bejUaAxJCEC64BbxozLPuvsuAFsr6iqWKKDvaw"),
67
67
  // new: true,
68
68
  // marginfiAccount: new PublicKey(
69
69
  // ""
@@ -152,48 +152,48 @@ describe("Solauto Marginfi tests", async () => {
152
152
  // )
153
153
  // );
154
154
 
155
- transactionItems.push(
156
- new TransactionItem(
157
- async (attemptNum) =>
158
- await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
159
- "rebalance"
160
- )
161
- );
162
-
163
- // transactionItems.push(
164
- // new TransactionItem(
165
- // async () => ({ tx: client.refresh() }),
166
- // "refresh"
167
- // )
168
- // );
169
-
170
155
  // transactionItems.push(
171
156
  // new TransactionItem(
172
157
  // async (attemptNum) =>
173
- // await buildSolautoRebalanceTransaction(client, settingParams.boostToBps, attemptNum),
158
+ // await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
174
159
  // "rebalance"
175
160
  // )
176
161
  // );
177
162
 
178
163
  // transactionItems.push(
179
164
  // new TransactionItem(
180
- // async () => ({
181
- // tx: client.protocolInteraction(
182
- // solautoAction("Withdraw", [{ __kind: "All" }])
183
- // ),
184
- // }),
185
- // "withdraw"
165
+ // async () => ({ tx: client.refresh() }),
166
+ // "refresh"
186
167
  // )
187
168
  // );
188
169
 
189
- // transactionItems.push(
190
- // new TransactionItem(
191
- // async () => ({
192
- // tx: client.closePositionIx(),
193
- // }),
194
- // "close position"
195
- // )
196
- // );
170
+ transactionItems.push(
171
+ new TransactionItem(
172
+ async (attemptNum) =>
173
+ await buildSolautoRebalanceTransaction(client, 0, attemptNum),
174
+ "rebalance"
175
+ )
176
+ );
177
+
178
+ transactionItems.push(
179
+ new TransactionItem(
180
+ async () => ({
181
+ tx: client.protocolInteraction(
182
+ solautoAction("Withdraw", [{ __kind: "All" }])
183
+ ),
184
+ }),
185
+ "withdraw"
186
+ )
187
+ );
188
+
189
+ transactionItems.push(
190
+ new TransactionItem(
191
+ async () => ({
192
+ tx: client.closePositionIx(),
193
+ }),
194
+ "close position"
195
+ )
196
+ );
197
197
 
198
198
  const statuses = await new TransactionsManager(
199
199
  client,