@haven-fi/solauto-sdk 1.0.542 → 1.0.544

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.
@@ -14,7 +14,7 @@ export declare const PRICES: {
14
14
  };
15
15
  export declare const JITO_BLOCK_ENGINE = "https://mainnet.block-engine.jito.wtf";
16
16
  export declare const JITO_TIP_ACCOUNTS: string[];
17
- export declare const SOLAUTO_LUT = "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
17
+ export declare const SOLAUTO_LUT = "8b7KefQDroVLGao71J5H3hFwABeyMCgCrLpXWssNFhk9";
18
18
  export declare const STANDARD_LUT_ACCOUNTS: string[];
19
19
  export declare const BROKEN_TOKENS: string[];
20
20
  //# sourceMappingURL=solautoConstants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAE7E,eAAO,MAAM,iBAAiB,0CAA0C,CAAC;AAEzE,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAEF,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAC1E,eAAO,MAAM,qBAAqB,UAaR,CAAC;AAG3B,eAAO,MAAM,aAAa,UAOzB,CAAA"}
1
+ {"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAE7E,eAAO,MAAM,iBAAiB,0CAA0C,CAAC;AAEzE,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAMF,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAC1E,eAAO,MAAM,qBAAqB,UAYR,CAAC;AAG3B,eAAO,MAAM,aAAa,UAOzB,CAAA"}
@@ -26,7 +26,11 @@ exports.JITO_TIP_ACCOUNTS = [
26
26
  "DttWaMuVvTiduZRnguLF7jNxTgiMBZ1hyAumKUiL2KRL",
27
27
  "3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT",
28
28
  ];
29
- exports.SOLAUTO_LUT = "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
29
+ // "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
30
+ // "J97FEQeJzChRnaAjNy3dRvm9FBavKqAdxo8jKXzw17ut"
31
+ // "ByhmNseaYZXBDcBm6xhbgarwixgjym6H4ddLsvgoL3BL"
32
+ // "2VJK8AHqtiaiJKYbBtFr3EHV4Hcy1FHCiEYQFmUvxot8"
33
+ exports.SOLAUTO_LUT = "8b7KefQDroVLGao71J5H3hFwABeyMCgCrLpXWssNFhk9";
30
34
  exports.STANDARD_LUT_ACCOUNTS = [
31
35
  web3_js_1.PublicKey.default,
32
36
  exports.SOLAUTO_PROD_PROGRAM,
@@ -39,7 +43,6 @@ exports.STANDARD_LUT_ACCOUNTS = [
39
43
  web3_js_1.SYSVAR_RENT_PUBKEY,
40
44
  web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
41
45
  jupiter_sdk_1.JUPITER_PROGRAM_ID,
42
- ...exports.JITO_TIP_ACCOUNTS
43
46
  ].map((x) => x.toString());
44
47
  // TODO:
45
48
  exports.BROKEN_TOKENS = [
@@ -109,12 +109,12 @@ exports.TOKEN_INFO = {
109
109
  decimals: 6,
110
110
  },
111
111
  [exports.WBTC]: {
112
- ticker: "wBTC",
112
+ ticker: "WBTC",
113
113
  decimals: 8,
114
114
  isMajor: true,
115
115
  },
116
116
  [exports.WETH]: {
117
- ticker: "wETH",
117
+ ticker: "WETH",
118
118
  decimals: 8,
119
119
  isMajor: true,
120
120
  },
@@ -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;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,CAsI5C;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;AAsCzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA4LjD,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,CAsI5C;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 +1 @@
1
- {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMlE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AA+ND,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB7D;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,kBAAkB,EAAE,EACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8F/B"}
1
+ {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMlE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AAqOD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB7D;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,kBAAkB,EAAE,EACzB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA+F/B"}
@@ -93,7 +93,7 @@ async function simulateJitoBundle(umi, txs) {
93
93
  else if (res.error && res.error.message) {
94
94
  throw new Error(res.error.message);
95
95
  }
96
- return res;
96
+ return res.result.value;
97
97
  });
98
98
  const transactionResults = simulationResult.transactionResults;
99
99
  return transactionResults;
@@ -170,6 +170,12 @@ async function sendJitoBundle(umi, transactions) {
170
170
  throw e;
171
171
  }
172
172
  }
173
+ if (resp?.data?.error?.message === "All providers failed") {
174
+ throw new Error(resp.data.error.responses[0].response.error.message);
175
+ }
176
+ else if (resp.data.error) {
177
+ throw new Error(resp.data.error);
178
+ }
173
179
  const bundleId = resp.data.result;
174
180
  (0, generalUtils_1.consoleLog)("Bundle ID:", bundleId);
175
181
  return bundleId ? await pollBundleStatus(umi, bundleId) : [];
@@ -207,7 +213,6 @@ async function sendJitoBundledTransactions(umi, connection, userSigner, otherSig
207
213
  let simulationResults;
208
214
  if (txType !== "skip-simulation") {
209
215
  builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, false, feeEstimates);
210
- (0, generalUtils_1.consoleLog)(builtTxs.map((x) => x.message.compiledInstructions.map((y) => x.message.staticAccountKeys[y.programIdIndex].toString())));
211
216
  simulationResults = await simulateJitoBundle(umi, builtTxs);
212
217
  }
213
218
  if (txType !== "only-simulate") {
@@ -215,6 +220,13 @@ async function sendJitoBundledTransactions(umi, connection, userSigner, otherSig
215
220
  builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, true, feeEstimates, simulationResults
216
221
  ? simulationResults.map((x) => x.unitsConsumed * 1.15)
217
222
  : undefined);
223
+ // consoleLog(
224
+ // builtTxs.map((x) =>
225
+ // x.message.compiledInstructions.map((y) =>
226
+ // x.message.staticAccountKeys[y.programIdIndex].toString()
227
+ // )
228
+ // )
229
+ // );
218
230
  const serializedTxs = builtTxs.map((x) => x.serialize());
219
231
  if (serializedTxs.find((x) => x.length > 1232)) {
220
232
  throw new Error("A transaction is too large");
@@ -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;AAiB5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkI9C,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,CAqEjB;AA6CD,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,CA8F5C;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;AA4CD,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,CA4EzB"}
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;AAiB5E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkI9C,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,CAgEjB;AA6CD,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,CA8F5C;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;AA4CD,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,CA4EzB"}
@@ -101,7 +101,6 @@ function getRebalanceValues(state, settings, dca, currentUnixTime, supplyPrice,
101
101
  : generated_1.RebalanceDirection.Repay;
102
102
  const adjustmentFeeBps = (0, numberUtils_1.getSolautoFeesBps)(false, targetLiqUtilizationRateBps, (0, numberUtils_1.calcNetWorthUsd)(state), rebalanceDirection).total;
103
103
  let debtAdjustmentUsd = (0, numberUtils_1.getDebtAdjustmentUsd)(state.liqThresholdBps, (0, numberUtils_1.calcSupplyUsd)(state) + amountUsdToDcaIn, (0, numberUtils_1.calcDebtUsd)(state), targetRateBps, adjustmentFeeBps);
104
- (0, generalUtils_2.consoleLog)("Target rate:", targetRateBps, (0, numberUtils_1.maxBoostToBps)(state.maxLtvBps, state.liqThresholdBps));
105
104
  const maxRepayTo = (0, numberUtils_1.maxRepayToBps)(state.maxLtvBps, state.liqThresholdBps);
106
105
  return {
107
106
  debtAdjustmentUsd,
@@ -1,6 +1,6 @@
1
1
  import { publicKey } from "@metaplex-foundation/umi";
2
2
  import {
3
- buildHeliusApiUrl,
3
+ buildIronforgeApiUrl,
4
4
  calcNetWorthUsd,
5
5
  calcSupplyUsd,
6
6
  currentUnixSeconds,
@@ -20,17 +20,10 @@ import { PublicKey } from "@solana/web3.js";
20
20
  import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
21
21
  import path from "path";
22
22
  import { config } from "dotenv";
23
+ import { getBatches } from "./shared";
23
24
 
24
25
  config({ path: path.join(__dirname, ".env") });
25
26
 
26
- function getBatches<T>(items: T[], batchSize: number): T[][] {
27
- const batches: T[][] = [];
28
- for (let i = 0; i < items.length; i += batchSize) {
29
- batches.push(items.slice(i, i + batchSize));
30
- }
31
- return batches;
32
- }
33
-
34
27
  export function roundToDecimals(value: number, decimals: number = 2): number {
35
28
  if (!value || isNaN(value)) {
36
29
  return value;
@@ -96,7 +89,7 @@ export function formatNumber(
96
89
 
97
90
  async function main(filterWhitelist: boolean) {
98
91
  const [_, umi] = getSolanaRpcConnection(
99
- buildHeliusApiUrl(process.env.HELIUS_API_KEY!),
92
+ buildIronforgeApiUrl(process.env.IRONFORGE_API_KEY!),
100
93
  SOLAUTO_PROD_PROGRAM
101
94
  );
102
95
 
package/local/shared.ts CHANGED
@@ -10,6 +10,14 @@ import {
10
10
  } from "@solana/web3.js";
11
11
  import { buildHeliusApiUrl, getSolanaRpcConnection } from "../src/utils/solanaUtils";
12
12
 
13
+ export function getBatches<T>(items: T[], batchSize: number): T[][] {
14
+ const batches: T[][] = [];
15
+ for (let i = 0; i < items.length; i += batchSize) {
16
+ batches.push(items.slice(i, i + batchSize));
17
+ }
18
+ return batches;
19
+ }
20
+
13
21
  function loadSecretKey(keypairPath: string) {
14
22
  const secretKey = JSON.parse(fs.readFileSync(keypairPath, "utf8"));
15
23
  return new Uint8Array(secretKey);
@@ -59,16 +67,20 @@ async function addAddressesIfNeeded(
59
67
  const addresses = addressesToAdd
60
68
  .filter((x) => !existingAddresses.includes(x))
61
69
  .map((x) => new PublicKey(x));
62
-
70
+
63
71
  if (addresses.length > 0) {
64
- await createAndSendV0Tx([
65
- AddressLookupTableProgram.extendLookupTable({
66
- payer: keypair.publicKey,
67
- authority: keypair.publicKey,
68
- lookupTable: lookupTableAddress,
69
- addresses,
70
- }),
71
- ]);
72
+ const batches = getBatches(addresses, 20);
73
+ for (const addressBatch of batches) {
74
+ console.log(addressBatch.map(x => x.toString()));
75
+ await createAndSendV0Tx([
76
+ AddressLookupTableProgram.extendLookupTable({
77
+ payer: keypair.publicKey,
78
+ authority: keypair.publicKey,
79
+ lookupTable: lookupTableAddress,
80
+ addresses: addressBatch,
81
+ }),
82
+ ]);
83
+ }
72
84
  }
73
85
  }
74
86
 
@@ -87,7 +99,7 @@ export async function updateLookupTable(
87
99
  });
88
100
  lookupTableAddress = addr;
89
101
  console.log("Lookup Table Address:", lookupTableAddress.toString());
90
- createAndSendV0Tx([createLutIx]);
102
+ await createAndSendV0Tx([createLutIx]);
91
103
  }
92
104
 
93
105
  const existingAccounts =
@@ -17,7 +17,7 @@ import {
17
17
  } from "../src/utils";
18
18
  import { SWITCHBOARD_PRICE_FEED_IDS } from "../src/constants/switchboardConstants";
19
19
 
20
- const LOOKUP_TABLE_ADDRESS = new PublicKey(SOLAUTO_LUT);
20
+ const LOOKUP_TABLE_ADDRESS = Boolean(SOLAUTO_LUT) ? new PublicKey(SOLAUTO_LUT) : undefined;
21
21
  const solautoManagerTokenAccounts = getTokenAccounts(
22
22
  SOLAUTO_MANAGER,
23
23
  ALL_SUPPORTED_TOKENS.map((x) => new PublicKey(x))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.542",
3
+ "version": "1.0.544",
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",
@@ -44,7 +44,11 @@ export const JITO_TIP_ACCOUNTS = [
44
44
  "3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT",
45
45
  ];
46
46
 
47
- export const SOLAUTO_LUT = "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
47
+ // "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
48
+ // "J97FEQeJzChRnaAjNy3dRvm9FBavKqAdxo8jKXzw17ut"
49
+ // "ByhmNseaYZXBDcBm6xhbgarwixgjym6H4ddLsvgoL3BL"
50
+ // "2VJK8AHqtiaiJKYbBtFr3EHV4Hcy1FHCiEYQFmUvxot8"
51
+ export const SOLAUTO_LUT = "8b7KefQDroVLGao71J5H3hFwABeyMCgCrLpXWssNFhk9";
48
52
  export const STANDARD_LUT_ACCOUNTS = [
49
53
  PublicKey.default,
50
54
  SOLAUTO_PROD_PROGRAM,
@@ -57,7 +61,6 @@ export const STANDARD_LUT_ACCOUNTS = [
57
61
  SYSVAR_RENT_PUBKEY,
58
62
  SYSVAR_INSTRUCTIONS_PUBKEY,
59
63
  JUPITER_PROGRAM_ID,
60
- ...JITO_TIP_ACCOUNTS
61
64
  ].map((x) => x.toString());
62
65
 
63
66
  // TODO:
@@ -118,12 +118,12 @@ export const TOKEN_INFO: { [key: string]: TokenInfo } = {
118
118
  decimals: 6,
119
119
  },
120
120
  [WBTC]: {
121
- ticker: "wBTC",
121
+ ticker: "WBTC",
122
122
  decimals: 8,
123
123
  isMajor: true,
124
124
  },
125
125
  [WETH]: {
126
- ticker: "wETH",
126
+ ticker: "WETH",
127
127
  decimals: 8,
128
128
  isMajor: true,
129
129
  },
@@ -139,7 +139,7 @@ async function simulateJitoBundle(umi: Umi, txs: VersionedTransaction[]) {
139
139
  throw new Error(res.error.message);
140
140
  }
141
141
 
142
- return res;
142
+ return res.result.value;
143
143
  });
144
144
 
145
145
  const transactionResults =
@@ -253,6 +253,12 @@ async function sendJitoBundle(
253
253
  }
254
254
  }
255
255
 
256
+ if (resp?.data?.error?.message === "All providers failed") {
257
+ throw new Error(resp.data.error.responses[0].response.error.message);
258
+ } else if (resp.data.error) {
259
+ throw new Error(resp.data.error);
260
+ }
261
+
256
262
  const bundleId = resp.data.result;
257
263
  consoleLog("Bundle ID:", bundleId);
258
264
  return bundleId ? await pollBundleStatus(umi, bundleId) : [];
@@ -311,6 +317,7 @@ export async function sendJitoBundledTransactions(
311
317
  );
312
318
 
313
319
  txs[0] = txs[0].prepend(getTipInstruction(userSigner, 150_000));
320
+
314
321
  const feeEstimates =
315
322
  priorityFeeSetting !== PriorityFeeSetting.None
316
323
  ? await Promise.all(
@@ -342,13 +349,6 @@ export async function sendJitoBundledTransactions(
342
349
  false,
343
350
  feeEstimates
344
351
  );
345
- consoleLog(
346
- builtTxs.map((x) =>
347
- x.message.compiledInstructions.map((y) =>
348
- x.message.staticAccountKeys[y.programIdIndex].toString()
349
- )
350
- )
351
- );
352
352
  simulationResults = await simulateJitoBundle(umi, builtTxs);
353
353
  }
354
354
 
@@ -367,6 +367,13 @@ export async function sendJitoBundledTransactions(
367
367
  ? simulationResults.map((x) => x.unitsConsumed! * 1.15)
368
368
  : undefined
369
369
  );
370
+ // consoleLog(
371
+ // builtTxs.map((x) =>
372
+ // x.message.compiledInstructions.map((y) =>
373
+ // x.message.staticAccountKeys[y.programIdIndex].toString()
374
+ // )
375
+ // )
376
+ // );
370
377
 
371
378
  const serializedTxs = builtTxs.map((x) => x.serialize());
372
379
  if (serializedTxs.find((x) => x.length > 1232)) {
@@ -228,11 +228,6 @@ export function getRebalanceValues(
228
228
  adjustmentFeeBps
229
229
  );
230
230
 
231
- consoleLog(
232
- "Target rate:",
233
- targetRateBps,
234
- maxBoostToBps(state.maxLtvBps, state.liqThresholdBps)
235
- );
236
231
  const maxRepayTo = maxRepayToBps(state.maxLtvBps, state.liqThresholdBps);
237
232
  return {
238
233
  debtAdjustmentUsd,