@haven-fi/solauto-sdk 1.0.484 → 1.0.486

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;AAY7D,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;IA+FzB,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;AAa7D,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;IAmGzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YAkCxB,6BAA6B;YAsI7B,qBAAqB;YAoDrB,eAAe;YA0Df,eAAe;CA4D9B"}
@@ -14,6 +14,7 @@ const web3_js_1 = require("@solana/web3.js");
14
14
  const switchboardConstants_1 = require("../constants/switchboardConstants");
15
15
  const utils_1 = require("../utils");
16
16
  const jitoUtils_1 = require("../utils/jitoUtils");
17
+ const jupiter_sdk_1 = require("../jupiter-sdk");
17
18
  const CHORES_TX_NAME = "account chores";
18
19
  const MAX_SUPPORTED_ACCOUNT_LOCKS = 64;
19
20
  class TransactionTooLargeError extends Error {
@@ -270,7 +271,9 @@ class TransactionsManager {
270
271
  for (const item of items) {
271
272
  await item.initialize();
272
273
  }
273
- const allAccounts = items.flatMap((x) => x.tx
274
+ const allAccounts = items
275
+ .filter((x) => x.tx?.getInstructions().find((x) => x.programId !== jupiter_sdk_1.JUPITER_PROGRAM_ID))
276
+ .flatMap((x) => x.tx
274
277
  ?.getInstructions()
275
278
  .flatMap((x) => x.keys.map((x) => x.pubkey.toString())));
276
279
  const swbOracle = allAccounts.find((x) => Object.values(switchboardConstants_1.SWITCHBOARD_PRICE_FEED_IDS).includes(x ?? ""));
@@ -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,CAsG7B;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"}
@@ -25,9 +25,10 @@ function createTransactionInstruction(instruction) {
25
25
  async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
26
26
  const memecoinSwap = constants_1.TOKEN_INFO[swapDetails.inputMint.toString()].isMeme ||
27
27
  constants_1.TOKEN_INFO[swapDetails.outputMint.toString()].isMeme;
28
+ const tokensWithLowAccounts = [constants_1.PYTH, constants_1.INF];
28
29
  // TEMP REVERT ME
29
- const usingPyth = swapDetails.inputMint.equals(new web3_js_1.PublicKey(constants_1.PYTH)) ||
30
- swapDetails.outputMint.equals(new web3_js_1.PublicKey(constants_1.PYTH));
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)));
31
32
  const quoteResponse = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await jupApi.quoteGet({
32
33
  amount: Number(swapDetails.amount),
33
34
  inputMint: swapDetails.inputMint.toString(),
@@ -38,7 +39,11 @@ async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
38
39
  ? "ExactIn"
39
40
  : undefined,
40
41
  slippageBps: memecoinSwap ? 500 : 200,
41
- maxAccounts: !swapDetails.exactOut ? (usingPyth ? 15 : 40) : undefined,
42
+ maxAccounts: !swapDetails.exactOut
43
+ ? useLowAccounts
44
+ ? 15
45
+ : 40
46
+ : undefined,
42
47
  }), 4, 200);
43
48
  const priceImpactBps = Math.round((0, numberUtils_1.toBps)(parseFloat(quoteResponse.priceImpactPct))) + 1;
44
49
  const finalPriceSlippageBps = Math.round(Math.max(50, quoteResponse.slippageBps, priceImpactBps) *
@@ -46,15 +51,21 @@ async function getJupSwapTransaction(signer, swapDetails, attemptNum) {
46
51
  quoteResponse.slippageBps = finalPriceSlippageBps;
47
52
  (0, generalUtils_1.consoleLog)(quoteResponse);
48
53
  (0, generalUtils_1.consoleLog)("Getting jup instructions...");
49
- const instructions = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await jupApi.swapInstructionsPost({
50
- swapRequest: {
51
- userPublicKey: signer.publicKey.toString(),
52
- quoteResponse,
53
- wrapAndUnwrapSol: false,
54
- useTokenLedger: !swapDetails.exactOut && !swapDetails.exactIn,
55
- destinationTokenAccount: (0, accountUtils_1.getTokenAccount)(swapDetails.destinationWallet, swapDetails.outputMint).toString(),
56
- },
57
- }), 4, 200);
54
+ const instructions = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => {
55
+ const res = await jupApi.swapInstructionsPost({
56
+ swapRequest: {
57
+ userPublicKey: signer.publicKey.toString(),
58
+ quoteResponse,
59
+ wrapAndUnwrapSol: false,
60
+ useTokenLedger: !swapDetails.exactOut && !swapDetails.exactIn,
61
+ destinationTokenAccount: (0, accountUtils_1.getTokenAccount)(swapDetails.destinationWallet, swapDetails.outputMint).toString(),
62
+ },
63
+ });
64
+ if (!res) {
65
+ throw new Error("No instructions retrieved");
66
+ }
67
+ return res;
68
+ }, 4, 200);
58
69
  if (!instructions.swapInstruction) {
59
70
  throw new Error("No swap instruction was returned by Jupiter");
60
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAIL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAIlE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAAgC,GAC1C,CAAC,UAAU,EAAE,GAAG,CAAC,CAQnB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,sBAAsB,GACzB,kBAAkB,CAMpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAOpB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,kBAAkB,CAUpB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,MAAM,GACf,kBAAkB,CASpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,SAAS,GACnB,kBAAkB,CAKpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAKpB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBAa1B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBA2D1B;AAuBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,EACnC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC7B;AAiDD,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,eAAe,GAAE,kBAA2C,EAC5D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAmEjC"}
1
+ {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAIL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAIlE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAAgC,GAC1C,CAAC,UAAU,EAAE,GAAG,CAAC,CAQnB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,sBAAsB,GACzB,kBAAkB,CAMpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,kBAAkB,CAOpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,kBAAkB,CAOpB;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,GACd,kBAAkB,CAUpB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,SAAS,EACtB,QAAQ,EAAE,MAAM,GACf,kBAAkB,CASpB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,SAAS,GACnB,kBAAkB,CAKpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GACb,kBAAkB,CAKpB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBAa1B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBA2D1B;AAuBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,EACnC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC7B;AA+CD,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,eAAe,GAAE,kBAA2C,EAC5D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAmEjC"}
@@ -196,9 +196,7 @@ async function spamSendTransactionUntilConfirmed(connection, transaction, blockh
196
196
  transactionSignature = txSignature;
197
197
  (0, generalUtils_1.consoleLog)(`Transaction sent`);
198
198
  }
199
- catch (error) {
200
- (0, generalUtils_1.consoleLog)("Error sending transaction:", error);
201
- }
199
+ catch (e) { }
202
200
  };
203
201
  await sendTx();
204
202
  const sendIntervalId = setInterval(async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.484",
3
+ "version": "1.0.486",
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",
@@ -31,6 +31,7 @@ import {
31
31
  import { SWITCHBOARD_PRICE_FEED_IDS } from "../constants/switchboardConstants";
32
32
  import { buildSwbSubmitResponseTx, getSwitchboardFeedData } from "../utils";
33
33
  import { sendJitoBundledTransactions } from "../utils/jitoUtils";
34
+ import { JUPITER_PROGRAM_ID } from "../jupiter-sdk";
34
35
 
35
36
  const CHORES_TX_NAME = "account chores";
36
37
  const MAX_SUPPORTED_ACCOUNT_LOCKS = 64;
@@ -433,11 +434,15 @@ export class TransactionsManager {
433
434
  await item.initialize();
434
435
  }
435
436
 
436
- const allAccounts = items.flatMap((x) =>
437
- x.tx
438
- ?.getInstructions()
439
- .flatMap((x) => x.keys.map((x) => x.pubkey.toString()))
440
- );
437
+ const allAccounts = items
438
+ .filter((x) =>
439
+ x.tx?.getInstructions().find((x) => x.programId !== JUPITER_PROGRAM_ID)
440
+ )
441
+ .flatMap((x) =>
442
+ x.tx
443
+ ?.getInstructions()
444
+ .flatMap((x) => x.keys.map((x) => x.pubkey.toString()))
445
+ );
441
446
  const swbOracle = allAccounts.find((x) =>
442
447
  Object.values(SWITCHBOARD_PRICE_FEED_IDS).includes(x ?? "")
443
448
  );
@@ -13,7 +13,7 @@ import {
13
13
  } from "@jup-ag/api";
14
14
  import { getTokenAccount } from "./accountUtils";
15
15
  import { consoleLog, retryWithExponentialBackoff } from "./generalUtils";
16
- import { PYTH, TOKEN_INFO } from "../constants";
16
+ import { INF, PYTH, TOKEN_INFO } from "../constants";
17
17
 
18
18
  const jupApi = createJupiterApiClient();
19
19
 
@@ -60,10 +60,15 @@ export async function getJupSwapTransaction(
60
60
  TOKEN_INFO[swapDetails.inputMint.toString()].isMeme ||
61
61
  TOKEN_INFO[swapDetails.outputMint.toString()].isMeme;
62
62
 
63
+ const tokensWithLowAccounts = [PYTH, INF];
63
64
  // TEMP REVERT ME
64
- const usingPyth =
65
- swapDetails.inputMint.equals(new PublicKey(PYTH)) ||
66
- swapDetails.outputMint.equals(new PublicKey(PYTH));
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
+ );
67
72
 
68
73
  const quoteResponse = await retryWithExponentialBackoff(
69
74
  async () =>
@@ -77,7 +82,11 @@ export async function getJupSwapTransaction(
77
82
  ? "ExactIn"
78
83
  : undefined,
79
84
  slippageBps: memecoinSwap ? 500 : 200,
80
- maxAccounts: !swapDetails.exactOut ? (usingPyth ? 15 : 40) : undefined,
85
+ maxAccounts: !swapDetails.exactOut
86
+ ? useLowAccounts
87
+ ? 15
88
+ : 40
89
+ : undefined,
81
90
  }),
82
91
  4,
83
92
  200
@@ -94,8 +103,8 @@ export async function getJupSwapTransaction(
94
103
 
95
104
  consoleLog("Getting jup instructions...");
96
105
  const instructions = await retryWithExponentialBackoff(
97
- async () =>
98
- await jupApi.swapInstructionsPost({
106
+ async () => {
107
+ const res = await jupApi.swapInstructionsPost({
99
108
  swapRequest: {
100
109
  userPublicKey: signer.publicKey.toString(),
101
110
  quoteResponse,
@@ -106,7 +115,12 @@ export async function getJupSwapTransaction(
106
115
  swapDetails.outputMint
107
116
  ).toString(),
108
117
  },
109
- }),
118
+ });
119
+ if (!res) {
120
+ throw new Error("No instructions retrieved");
121
+ }
122
+ return res;
123
+ },
110
124
  4,
111
125
  200
112
126
  );
@@ -300,14 +300,25 @@ export async function getComputeUnitPriceEstimate(
300
300
  .getInstructions()
301
301
  .flatMap((x) => x.keys.flatMap((x) => x.pubkey.toString()));
302
302
 
303
- let feeEstimate: number | undefined;
303
+ let feeEstimate: number | undefined;
304
+ try {
305
+ const resp = await umi.rpc.call("getPriorityFeeEstimate", [
306
+ {
307
+ transaction: !useAccounts
308
+ ? bs58.encode(web3Transaction.serialize())
309
+ : undefined,
310
+ accountKeys: useAccounts ? accountKeys : undefined,
311
+ options: {
312
+ priorityLevel: prioritySetting.toString(),
313
+ },
314
+ },
315
+ ]);
316
+ feeEstimate = Math.round((resp as any).priorityFeeEstimate as number);
317
+ } catch (e) {
304
318
  try {
305
319
  const resp = await umi.rpc.call("getPriorityFeeEstimate", [
306
320
  {
307
- transaction: !useAccounts
308
- ? bs58.encode(web3Transaction.serialize())
309
- : undefined,
310
- accountKeys: useAccounts ? accountKeys : undefined,
321
+ accountKeys,
311
322
  options: {
312
323
  priorityLevel: prioritySetting.toString(),
313
324
  },
@@ -315,20 +326,9 @@ export async function getComputeUnitPriceEstimate(
315
326
  ]);
316
327
  feeEstimate = Math.round((resp as any).priorityFeeEstimate as number);
317
328
  } catch (e) {
318
- try {
319
- const resp = await umi.rpc.call("getPriorityFeeEstimate", [
320
- {
321
- accountKeys,
322
- options: {
323
- priorityLevel: prioritySetting.toString(),
324
- },
325
- },
326
- ]);
327
- feeEstimate = Math.round((resp as any).priorityFeeEstimate as number);
328
- } catch (e) {
329
- // console.error(e);
330
- }
329
+ // console.error(e);
331
330
  }
331
+ }
332
332
 
333
333
  return feeEstimate;
334
334
  }
@@ -349,9 +349,7 @@ async function spamSendTransactionUntilConfirmed(
349
349
  );
350
350
  transactionSignature = txSignature;
351
351
  consoleLog(`Transaction sent`);
352
- } catch (error) {
353
- consoleLog("Error sending transaction:", error);
354
- }
352
+ } catch (e) {}
355
353
  };
356
354
 
357
355
  await sendTx();
@@ -51,12 +51,12 @@ export function getFlooredTimestampByMinute(
51
51
  }
52
52
 
53
53
  describe("Solauto Marginfi tests", async () => {
54
- const signer = setupTest();
55
- // const signer = setupTest("solauto-manager");
54
+ // const signer = setupTest();
55
+ const signer = setupTest("solauto-manager");
56
56
 
57
- const payForTransactions = false;
57
+ const payForTransactions = true;
58
58
  const testProgram = false;
59
- const positionId = 3;
59
+ const positionId = 2;
60
60
 
61
61
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
62
62
  const client = new SolautoMarginfiClient(
@@ -72,7 +72,7 @@ describe("Solauto Marginfi tests", async () => {
72
72
  await client.initialize({
73
73
  signer,
74
74
  positionId,
75
- authority: new PublicKey("7GMmfZdCgJSCawA7roGiGgvueU3XoEHQXUtiCnuDYUde"),
75
+ authority: new PublicKey("7yk7HcAJfwNao3NSbYiPNtJvCPTxsgkzuJmyMLyP297E"),
76
76
  // new: true,
77
77
  // marginfiAccount: new PublicKey(
78
78
  // ""
@@ -169,7 +169,7 @@ describe("Solauto Marginfi tests", async () => {
169
169
  transactionItems.push(
170
170
  new TransactionItem(
171
171
  async (attemptNum) =>
172
- await buildSolautoRebalanceTransaction(client, 4000, attemptNum),
172
+ await buildSolautoRebalanceTransaction(client, undefined, attemptNum),
173
173
  "rebalance"
174
174
  )
175
175
  );