@haven-fi/solauto-sdk 1.0.527 → 1.0.529

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,12 +1,11 @@
1
1
  import { TransactionBuilder, Umi } from "@metaplex-foundation/umi";
2
2
  import { PublicKey } from "@solana/web3.js";
3
3
  import { SolautoClient } from "../clients/solautoClient";
4
- import { RebalanceValues } from "../utils/solauto/rebalanceUtils";
5
4
  import { ReferralStateManager } from "../clients";
6
5
  import { TransactionItemInputs } from "../types";
7
6
  export declare function rebalanceChoresBefore(client: SolautoClient, tx: TransactionBuilder, accountsGettingCreated: string[]): Promise<TransactionBuilder>;
8
7
  export declare function getTransactionChores(client: SolautoClient, tx: TransactionBuilder): Promise<[TransactionBuilder, TransactionBuilder]>;
9
- export declare function requiresRefreshBeforeRebalance(client: SolautoClient, values: RebalanceValues): Promise<boolean>;
8
+ export declare function requiresRefreshBeforeRebalance(client: SolautoClient): Promise<boolean>;
10
9
  export declare function buildSolautoRebalanceTransaction(client: SolautoClient, targetLiqUtilizationRateBps?: number, attemptNum?: number): Promise<TransactionItemInputs | undefined>;
11
10
  export declare function convertReferralFeesToDestination(referralManager: ReferralStateManager, tokenAccount: PublicKey, destinationMint: PublicKey): Promise<TransactionItemInputs | undefined>;
12
11
  export declare function getErrorInfo(umi: Umi, txs: TransactionBuilder[], error: Error, simulationSuccessful?: boolean): {
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAoBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAOzD,OAAO,EAKL,eAAe,EAChB,MAAM,iCAAiC,CAAC;AA0BzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA6LjD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoH7B;AA2LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,oBAsDxB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CA0I5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,oBAAoB,CAAC,EAAE,OAAO;;;;EA0G/B"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAoBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAuCzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA6LjD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoH7B;AA2LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,aAAa,oBAsDtB;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAyI5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,oBAAoB,CAAC,EAAE,OAAO;;;;EA0G/B"}
@@ -329,7 +329,7 @@ async function getTransactionChores(client, tx) {
329
329
  choresAfter = choresAfter.add(transactionChoresAfter(client, solautoActions, client.livePositionUpdates.cancellingDca));
330
330
  return [choresBefore, choresAfter];
331
331
  }
332
- async function requiresRefreshBeforeRebalance(client, values) {
332
+ async function requiresRefreshBeforeRebalance(client) {
333
333
  const neverRefreshedBefore = client.solautoPositionData &&
334
334
  client.solautoPositionData.state.supply.amountCanBeUsed.baseUnit ===
335
335
  BigInt(0) &&
@@ -380,8 +380,7 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
380
380
  ? (0, rebalanceUtils_1.getFlashLoanDetails)(client, flRequirements, values, jupQuote)
381
381
  : undefined;
382
382
  let tx = (0, umi_1.transactionBuilder)();
383
- // REVERT ME
384
- if (await requiresRefreshBeforeRebalance(client, values)) {
383
+ if (await requiresRefreshBeforeRebalance(client)) {
385
384
  tx = tx.add(client.refresh());
386
385
  }
387
386
  if (flashLoan) {
@@ -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;AAUrB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAgBD,wBAAsB,WAAW,CAAC,WAAW,EAAE,YAAY,0BAwB1D;AAED,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,CAmF7B;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;AAUrB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,iBAAiB,EAAE,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAgBD,wBAAsB,WAAW,CAAC,WAAW,EAAE,YAAY,0BAsB1D;AAED,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,CAmF7B;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO;;GA0B5E"}
@@ -25,7 +25,7 @@ function createTransactionInstruction(instruction) {
25
25
  async function getJupQuote(swapDetails) {
26
26
  const memecoinSwap = (0, generalUtils_1.tokenInfo)(swapDetails.inputMint).isMeme ||
27
27
  (0, generalUtils_1.tokenInfo)(swapDetails.outputMint).isMeme;
28
- return await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await jupApi.quoteGet({
28
+ return await (0, generalUtils_1.retryWithExponentialBackoff)(async (attemptNum) => await jupApi.quoteGet({
29
29
  amount: Number(swapDetails.amount),
30
30
  inputMint: swapDetails.inputMint.toString(),
31
31
  outputMint: swapDetails.outputMint.toString(),
@@ -35,10 +35,8 @@ async function getJupQuote(swapDetails) {
35
35
  ? "ExactIn"
36
36
  : undefined,
37
37
  slippageBps: memecoinSwap ? 500 : 200,
38
- maxAccounts: !swapDetails.exactOut
39
- ? 15
40
- : undefined,
41
- }), 2, 200);
38
+ maxAccounts: !swapDetails.exactOut ? 15 + attemptNum * 5 : undefined,
39
+ }), 3, 200);
42
40
  }
43
41
  async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
44
42
  const quoteResponse = swapDetails.jupQuote ?? (await getJupQuote(swapDetails));
@@ -46,7 +44,7 @@ async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
46
44
  const finalPriceSlippageBps = Math.round(Math.max(50, quoteResponse.slippageBps, priceImpactBps) *
47
45
  (1 + (swapDetails.slippageIncFactor ?? 0)));
48
46
  quoteResponse.slippageBps = finalPriceSlippageBps;
49
- (0, generalUtils_1.consoleLog)(quoteResponse);
47
+ (0, generalUtils_1.consoleLog)("Quote:", quoteResponse);
50
48
  (0, generalUtils_1.consoleLog)("Getting jup instructions...");
51
49
  const instructions = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => {
52
50
  const res = await jupApi.swapInstructionsPost({
@@ -1 +1 @@
1
- {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generalUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/solauto/generalUtils.ts"],"names":[],"mappings":"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"}
@@ -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,EAAgB,MAAM,iBAAiB,CAAC;AAc5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqI9C,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;AAWD,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAkG5C;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CA2B9B;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,EACtC,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAqEzB"}
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,EAAgB,MAAM,iBAAiB,CAAC;AAc5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqI9C,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;AAWD,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAkG5C;AAED,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,aAAa,GACtB,gBAAgB,GAAG,SAAS,CA2B9B;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,EACtC,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAsEzB"}
@@ -86,7 +86,7 @@ function getTargetRateAndDcaAmount(state, settings, dca, currentUnixTime, target
86
86
  }
87
87
  function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice, debtPrice, targetLiqUtilizationRateBps) {
88
88
  let { targetRateBps, amountToDcaIn } = getTargetRateAndDcaAmount(state, settings, dca, currentUnixTime, targetLiqUtilizationRateBps);
89
- // REVERT ME AND GET TO THE ROOT OF THIS ISSUE
89
+ // TODO: REVERT ME AND GET TO THE ROOT OF THIS ISSUE
90
90
  const supplyMint = (0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.supply.mint);
91
91
  if (constants_1.BROKEN_TOKENS.includes(supplyMint.toString()) &&
92
92
  ((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(state.debt.mint).equals(new web3_js_1.PublicKey(constants_1.USDC)) ||
@@ -146,16 +146,17 @@ async function getFlashLoanRequirements(client, values, attemptNum) {
146
146
  const requiresFlashLoan = supplyUsd <= 0 || tempLiqUtilizationRateBps > maxLiqUtilizationRateBps;
147
147
  const supplyPrice = (0, priceUtils_1.safeGetPrice)(client.supplyMint) ?? 0;
148
148
  const debtPrice = (0, priceUtils_1.safeGetPrice)(client.debtMint) ?? 0;
149
- const insufficientSupplyLiquidity = insufficientLiquidity(values.debtAdjustmentUsd, client.supplyLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
150
- const insufficientDebtLiquidity = insufficientLiquidity(values.debtAdjustmentUsd, client.debtLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
149
+ const debtAdjustmentUsd = Math.abs(values.debtAdjustmentUsd);
150
+ const insufficientSupplyLiquidity = insufficientLiquidity(debtAdjustmentUsd, client.supplyLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
151
+ const insufficientDebtLiquidity = insufficientLiquidity(debtAdjustmentUsd, client.debtLiquidityAvailable(), (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
151
152
  let useDebtLiquidity = values.rebalanceDirection === generated_1.RebalanceDirection.Boost ||
152
153
  insufficientSupplyLiquidity;
153
154
  let signerFlashLoan = false;
154
155
  if ((attemptNum ?? 0) > 3 ||
155
156
  (insufficientSupplyLiquidity && insufficientDebtLiquidity)) {
156
157
  const { supplyBalance, debtBalance } = await client.signerBalances();
157
- const sufficientSignerSupplyLiquidity = !insufficientLiquidity(values.debtAdjustmentUsd, supplyBalance, (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
158
- const sufficientSignerDebtLiquidity = !insufficientLiquidity(values.debtAdjustmentUsd, debtBalance, (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
158
+ const sufficientSignerSupplyLiquidity = !insufficientLiquidity(debtAdjustmentUsd, supplyBalance, (0, generalUtils_2.tokenInfo)(client.supplyMint).decimals, supplyPrice);
159
+ const sufficientSignerDebtLiquidity = !insufficientLiquidity(debtAdjustmentUsd, debtBalance, (0, generalUtils_2.tokenInfo)(client.debtMint).decimals, debtPrice);
159
160
  signerFlashLoan =
160
161
  sufficientSignerSupplyLiquidity || sufficientSignerDebtLiquidity;
161
162
  if (signerFlashLoan) {
@@ -165,7 +166,6 @@ async function getFlashLoanRequirements(client, values, attemptNum) {
165
166
  throw new Error(`Need at least ${values.debtAdjustmentUsd / debtPrice} ${(0, generalUtils_2.tokenInfo)(client.debtMint).ticker} or ${values.debtAdjustmentUsd / supplyPrice} ${(0, generalUtils_2.tokenInfo)(client.supplyMint).ticker} to perform the transaction`);
166
167
  }
167
168
  }
168
- // TODO: if not sufficient signer liquidity, throw error with details on how much liquidity is needed and of what token
169
169
  (0, generalUtils_2.consoleLog)("Requires flash loan:", requiresFlashLoan);
170
170
  (0, generalUtils_2.consoleLog)("Use debt liquidity:", useDebtLiquidity);
171
171
  (0, generalUtils_2.consoleLog)("Intermediary liq utilization rate:", tempLiqUtilizationRateBps, `$${supplyUsd}`, `$${debtUsd}`, "Max:", maxLiqUtilizationRateBps);
@@ -233,6 +233,7 @@ async function getJupSwapRebalanceDetails(client, values, flRequirements, target
233
233
  jupQuote = await (0, jupiterUtils_1.getJupQuote)(jupSwapInput);
234
234
  } while (parseInt(jupQuote.outAmount) < outputAmount);
235
235
  }
236
+ (0, generalUtils_2.consoleLog)("Quote:", jupQuote);
236
237
  const addPadding = exactOut;
237
238
  return {
238
239
  ...jupSwapInput,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.527",
3
+ "version": "1.0.529",
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",
@@ -603,7 +603,6 @@ export async function getTransactionChores(
603
603
 
604
604
  export async function requiresRefreshBeforeRebalance(
605
605
  client: SolautoClient,
606
- values: RebalanceValues
607
606
  ) {
608
607
  const neverRefreshedBefore =
609
608
  client.solautoPositionData &&
@@ -718,8 +717,7 @@ export async function buildSolautoRebalanceTransaction(
718
717
 
719
718
  let tx = transactionBuilder();
720
719
 
721
- // REVERT ME
722
- if (await requiresRefreshBeforeRebalance(client, values)) {
720
+ if (await requiresRefreshBeforeRebalance(client)) {
723
721
  tx = tx.add(client.refresh());
724
722
  }
725
723
 
@@ -55,7 +55,7 @@ export async function getJupQuote(swapDetails: JupSwapInput) {
55
55
  tokenInfo(swapDetails.outputMint).isMeme;
56
56
 
57
57
  return await retryWithExponentialBackoff(
58
- async () =>
58
+ async (attemptNum: number) =>
59
59
  await jupApi.quoteGet({
60
60
  amount: Number(swapDetails.amount),
61
61
  inputMint: swapDetails.inputMint.toString(),
@@ -66,11 +66,9 @@ export async function getJupQuote(swapDetails: JupSwapInput) {
66
66
  ? "ExactIn"
67
67
  : undefined,
68
68
  slippageBps: memecoinSwap ? 500 : 200,
69
- maxAccounts: !swapDetails.exactOut
70
- ? 15
71
- : undefined,
69
+ maxAccounts: !swapDetails.exactOut ? 15 + attemptNum * 5 : undefined,
72
70
  }),
73
- 2,
71
+ 3,
74
72
  200
75
73
  );
76
74
  }
@@ -99,7 +97,7 @@ export async function getJupSwapTransaction(
99
97
  (1 + (swapDetails.slippageIncFactor ?? 0))
100
98
  );
101
99
  quoteResponse.slippageBps = finalPriceSlippageBps;
102
- consoleLog(quoteResponse);
100
+ consoleLog("Quote:", quoteResponse);
103
101
 
104
102
  consoleLog("Getting jup instructions...");
105
103
  const instructions = await retryWithExponentialBackoff(
@@ -27,7 +27,6 @@ import {
27
27
  fromBaseUnit,
28
28
  getLiqUtilzationRateBps,
29
29
  toBaseUnit,
30
- toBps,
31
30
  } from "../numberUtils";
32
31
  import { getReferralState } from "../accountUtils";
33
32
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
@@ -39,7 +38,6 @@ import {
39
38
  import {
40
39
  findMarginfiAccounts,
41
40
  getAllMarginfiAccountsByAuthority,
42
- getMarginfiMaxLtvAndLiqThreshold,
43
41
  } from "../marginfiUtils";
44
42
  import { RebalanceAction, SolautoPositionDetails } from "../../types/solauto";
45
43
  import { fetchTokenPrices } from "../priceUtils";
@@ -191,7 +191,7 @@ export function getRebalanceValues(
191
191
  targetLiqUtilizationRateBps
192
192
  );
193
193
 
194
- // REVERT ME AND GET TO THE ROOT OF THIS ISSUE
194
+ // TODO: REVERT ME AND GET TO THE ROOT OF THIS ISSUE
195
195
  const supplyMint = toWeb3JsPublicKey(state.supply.mint);
196
196
  if (
197
197
  BROKEN_TOKENS.includes(supplyMint.toString()) &&
@@ -315,14 +315,16 @@ export async function getFlashLoanRequirements(
315
315
 
316
316
  const supplyPrice = safeGetPrice(client.supplyMint) ?? 0;
317
317
  const debtPrice = safeGetPrice(client.debtMint) ?? 0;
318
+ const debtAdjustmentUsd = Math.abs(values.debtAdjustmentUsd);
319
+
318
320
  const insufficientSupplyLiquidity = insufficientLiquidity(
319
- values.debtAdjustmentUsd,
321
+ debtAdjustmentUsd,
320
322
  client.supplyLiquidityAvailable(),
321
323
  tokenInfo(client.supplyMint).decimals,
322
324
  supplyPrice
323
325
  );
324
326
  const insufficientDebtLiquidity = insufficientLiquidity(
325
- values.debtAdjustmentUsd,
327
+ debtAdjustmentUsd,
326
328
  client.debtLiquidityAvailable(),
327
329
  tokenInfo(client.debtMint).decimals,
328
330
  debtPrice
@@ -339,13 +341,13 @@ export async function getFlashLoanRequirements(
339
341
  ) {
340
342
  const { supplyBalance, debtBalance } = await client.signerBalances();
341
343
  const sufficientSignerSupplyLiquidity = !insufficientLiquidity(
342
- values.debtAdjustmentUsd,
344
+ debtAdjustmentUsd,
343
345
  supplyBalance,
344
346
  tokenInfo(client.supplyMint).decimals,
345
347
  supplyPrice
346
348
  );
347
349
  const sufficientSignerDebtLiquidity = !insufficientLiquidity(
348
- values.debtAdjustmentUsd,
350
+ debtAdjustmentUsd,
349
351
  debtBalance,
350
352
  tokenInfo(client.debtMint).decimals,
351
353
  debtPrice
@@ -362,8 +364,6 @@ export async function getFlashLoanRequirements(
362
364
  }
363
365
  }
364
366
 
365
- // TODO: if not sufficient signer liquidity, throw error with details on how much liquidity is needed and of what token
366
-
367
367
  consoleLog("Requires flash loan:", requiresFlashLoan);
368
368
  consoleLog("Use debt liquidity:", useDebtLiquidity);
369
369
  consoleLog(
@@ -480,6 +480,7 @@ export async function getJupSwapRebalanceDetails(
480
480
  jupQuote = await getJupQuote(jupSwapInput);
481
481
  } while (parseInt(jupQuote.outAmount) < outputAmount);
482
482
  }
483
+ consoleLog("Quote:", jupQuote);
483
484
 
484
485
  const addPadding = exactOut;
485
486
 
@@ -50,7 +50,7 @@ describe("Solauto Marginfi tests", async () => {
50
50
 
51
51
  const payForTransactions = true;
52
52
  const testProgram = false;
53
- const positionId = 2;
53
+ const positionId = 1;
54
54
 
55
55
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
56
56
  const client = new SolautoMarginfiClient(
@@ -66,7 +66,7 @@ describe("Solauto Marginfi tests", async () => {
66
66
  await client.initialize({
67
67
  signer,
68
68
  positionId,
69
- authority: new PublicKey("7yk7HcAJfwNao3NSbYiPNtJvCPTxsgkzuJmyMLyP297E"),
69
+ authority: new PublicKey("EBhRj7jbF2EVE21i19JSuCX1BAbnZFYhoKW64HnaZ3kf"),
70
70
  // new: true,
71
71
  // marginfiAccount: new PublicKey(
72
72
  // ""
@@ -76,18 +76,6 @@ describe("Solauto Marginfi tests", async () => {
76
76
  // debtMint: new PublicKey(USDC),
77
77
  });
78
78
 
79
- // console.log(
80
- // JSON.stringify(
81
- // await getQnComputeUnitPriceEstimate(
82
- // client.umi,
83
- // new PublicKey(JUPITER_PROGRAM_ID)
84
- // ),
85
- // null,
86
- // 2
87
- // )
88
- // );
89
- // return;
90
-
91
79
  const transactionItems: TransactionItem[] = [];
92
80
  // const settingParams: SolautoSettingsParametersInpArgs = {
93
81
  // boostToBps: maxBoostToBps(