@haven-fi/solauto-sdk 1.0.742 → 1.0.743

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.
@@ -60,6 +60,7 @@ export declare class TransactionsManager<T extends TxHandler> {
60
60
  send(items: TransactionItem[]): Promise<TransactionManagerStatuses>;
61
61
  private shouldProceedToSend;
62
62
  private getTrueAttemptNum;
63
+ private sendJitoBundle;
63
64
  private processTransactionsAtomically;
64
65
  private processTransactionSet;
65
66
  private refreshItemSets;
@@ -1 +1 @@
1
- {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../../src/services/transactions/manager/transactionsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../../src/services/transactions/manager/transactionsManager.ts"],"names":[],"mappings":"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"}
@@ -187,30 +187,9 @@ class TransactionsManager {
187
187
  ?.length;
188
188
  return attemptNum;
189
189
  }
190
- async processTransactionsAtomically(itemSets) {
191
- let attemptNum = 0;
190
+ async sendJitoBundle(itemSets, attemptNum) {
192
191
  let transactions = [];
193
- await (0, utils_1.retryWithExponentialBackoff)(async (retryNum, prevError) => {
194
- if (prevError &&
195
- this.statuses.filter((x) => x.simulationSuccessful).length >
196
- this.signableRetries) {
197
- throw prevError;
198
- }
199
- attemptNum = Math.max(...itemSets.map((x) => this.getTrueAttemptNum(x?.name() ?? "")));
200
- this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
201
- if (retryNum > 0) {
202
- const refreshedSets = await this.refreshItemSets(itemSets, attemptNum, prevError);
203
- if (!refreshedSets || !refreshedSets.length) {
204
- return;
205
- }
206
- else {
207
- itemSets = refreshedSets;
208
- }
209
- }
210
- if (!this.shouldProceedToSend(itemSets, attemptNum)) {
211
- return;
212
- }
213
- transactions = [];
192
+ try {
214
193
  for (const set of itemSets) {
215
194
  transactions.push(await set.getSingleTransaction());
216
195
  }
@@ -253,7 +232,8 @@ class TransactionsManager {
253
232
  throw error ? error : new Error("Unknown error");
254
233
  }
255
234
  this.updateStatusForSets(itemSets, { status: TransactionStatus.Successful, attemptNum }, txSigs);
256
- }, this.totalRetries, this.retryDelay, this.errorsToThrow).catch((e) => {
235
+ }
236
+ catch (e) {
257
237
  this.txHandler.log("Capturing error info...");
258
238
  const errorDetails = (0, transactionUtils_1.getErrorInfo)(this.txHandler.umi, transactions, e, itemSets.filter((x) => this.statuses.find((y) => x.name() === y.name && y.attemptNum === attemptNum)?.simulationSuccessful).length === itemSets.length, this.priorityFeeSetting);
259
239
  const errorString = `${errorDetails.errorName ?? "Unknown error"}: ${errorDetails.errorInfo?.split("\n")[0] ?? "unknown"}`;
@@ -271,7 +251,31 @@ class TransactionsManager {
271
251
  if (!errorDetails.canBeIgnored) {
272
252
  throw new Error(errorInfo);
273
253
  }
274
- });
254
+ }
255
+ }
256
+ async processTransactionsAtomically(itemSets) {
257
+ await (0, utils_1.retryWithExponentialBackoff)(async (retryNum, prevError) => {
258
+ if (prevError &&
259
+ this.statuses.filter((x) => x.simulationSuccessful).length >
260
+ this.signableRetries) {
261
+ throw prevError;
262
+ }
263
+ const attemptNum = Math.max(...itemSets.map((x) => this.getTrueAttemptNum(x?.name() ?? "")));
264
+ this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
265
+ if (retryNum > 0) {
266
+ const refreshedSets = await this.refreshItemSets(itemSets, attemptNum, prevError);
267
+ if (!refreshedSets || !refreshedSets.length) {
268
+ return;
269
+ }
270
+ else {
271
+ itemSets = refreshedSets;
272
+ }
273
+ }
274
+ if (!this.shouldProceedToSend(itemSets, attemptNum)) {
275
+ return;
276
+ }
277
+ await this.sendJitoBundle(itemSets, attemptNum);
278
+ }, this.totalRetries, this.retryDelay, this.errorsToThrow);
275
279
  }
276
280
  async processTransactionSet(itemSets, currentIndex) {
277
281
  let itemSet = itemSets[currentIndex];
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAIL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAiBlC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA4BjE,OAAO,EACL,qBAAqB,EAErB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAyLrB,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAyF7B;AA+LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAuC5C;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,oBAAoB,CAAC,EAAE,OAAO,EAC9B,kBAAkB,CAAC,EAAE,kBAAkB;;;;EA0HxC;AAED,wBAAgB,cAAc,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,8JAKrE"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAKxE,OAAO,EAIL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAiBlC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA4BjE,OAAO,EACL,qBAAqB,EAErB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAyLrB,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAyF7B;AA+LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAuC5C;AAED,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,kBAAkB,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,oBAAoB,CAAC,EAAE,OAAO,EAC9B,kBAAkB,CAAC,EAAE,kBAAkB;;;;EAyHxC;AAED,wBAAgB,cAAc,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,8JAKrE"}
@@ -363,7 +363,6 @@ function getErrorInfo(umi, txs, error, simulationSuccessful, priorityFeeSetting)
363
363
  else if (typeof error === "object" &&
364
364
  error["InstructionError"]) {
365
365
  const err = error["InstructionError"];
366
- (0, utils_1.consoleLog)("err idx details", err[0], getComputeIxs(0), simulationSuccessful, usePriorityFee(priorityFeeSetting));
367
366
  errIxIdx = err[0] - getComputeIxs(0);
368
367
  errCode =
369
368
  typeof err[1] === "object" && "Custom" in err[1]
@@ -1 +1 @@
1
- {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAgBlE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AAiGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB/D;AAsHD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,kBAAkB,EAAE,EAClC,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAyG/B"}
1
+ {"version":3,"file":"jitoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/jitoUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,GAAG,EAEH,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAgBlE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AAiGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB/D;AAqHD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,kBAAkB,EAAE,EAClC,MAAM,CAAC,EAAE,kBAAkB,EAC3B,kBAAkB,GAAE,kBAA2C,EAC/D,cAAc,CAAC,EAAE,MAAM,IAAI,EAC3B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAyG/B"}
@@ -134,7 +134,6 @@ async function pollBundleStatus(umi, bundleId, interval = 1000, timeout = 40000)
134
134
  await new Promise((resolve) => setTimeout(resolve, interval));
135
135
  const statuses = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => {
136
136
  const resp = await getBundleStatus(umi, bundleId);
137
- // TODO: remove me
138
137
  if (resp?.value?.length > 0 && resp.value[0] === null) {
139
138
  throw new Error("No confirmation status");
140
139
  }
@@ -197,7 +196,7 @@ async function sendJitoBundledTransactions(umi, connection, userSigner, otherSig
197
196
  let builtTxs = [];
198
197
  let simulationResults;
199
198
  if (txType !== "skip-simulation") {
200
- builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, false, undefined, Array(txs.length).map((_) => 1400000));
199
+ builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, false, undefined, Array(txs.length).fill(null).map((_) => 1400000));
201
200
  simulationResults = await simulateJitoBundle(umi, builtTxs);
202
201
  }
203
202
  const feeEstimates = (0, services_1.usePriorityFee)(priorityFeeSetting)
@@ -1 +1 @@
1
- {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"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"}
@@ -111,20 +111,16 @@ function addTxOptimizations(umi, tx, computeUnitPrice, computeUnitLimit) {
111
111
  const computeLimitIx = computeUnitLimit
112
112
  ? setComputeUnitLimitUmiIx(umi.identity, computeUnitLimit)
113
113
  : (0, umi_1.transactionBuilder)();
114
- (0, generalUtils_1.consoleLog)("Optimizations:", computeUnitPrice, computeUnitLimit);
115
114
  const allOptimizations = tx.prepend(computePriceIx).prepend(computeLimitIx);
116
115
  const withCuPrice = tx.prepend(computePriceIx);
117
116
  const withCuLimit = tx.prepend(computeLimitIx);
118
117
  if (allOptimizations.fitsInOneTransaction(umi)) {
119
- (0, generalUtils_1.consoleLog)("Adding all tx optimizations");
120
118
  return allOptimizations;
121
119
  }
122
120
  else if (withCuPrice.fitsInOneTransaction(umi)) {
123
- (0, generalUtils_1.consoleLog)("Adding CU price optimization");
124
121
  return withCuPrice;
125
122
  }
126
123
  else if (withCuLimit.fitsInOneTransaction(umi)) {
127
- (0, generalUtils_1.consoleLog)("Adding CU limit optimization");
128
124
  return withCuLimit;
129
125
  }
130
126
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.742",
3
+ "version": "1.0.743",
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",
@@ -293,128 +293,82 @@ export class TransactionsManager<T extends TxHandler> {
293
293
  return attemptNum;
294
294
  }
295
295
 
296
- private async processTransactionsAtomically(itemSets: TransactionSet[]) {
297
- let attemptNum = 0;
296
+ private async sendJitoBundle(itemSets: TransactionSet[], attemptNum: number) {
298
297
  let transactions: TransactionBuilder[] = [];
299
298
 
300
- await retryWithExponentialBackoff(
301
- async (retryNum, prevError) => {
302
- if (
303
- prevError &&
304
- this.statuses.filter((x) => x.simulationSuccessful).length >
305
- this.signableRetries
306
- ) {
307
- throw prevError;
308
- }
309
-
310
- attemptNum = Math.max(
311
- ...itemSets.map((x) => this.getTrueAttemptNum(x?.name() ?? ""))
312
- );
313
-
314
- this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(
315
- prevError,
316
- attemptNum
317
- );
318
-
319
- if (retryNum > 0) {
320
- const refreshedSets = await this.refreshItemSets(
321
- itemSets,
322
- attemptNum,
323
- prevError
324
- );
325
- if (!refreshedSets || !refreshedSets.length) {
326
- return;
327
- } else {
328
- itemSets = refreshedSets;
329
- }
330
- }
299
+ try {
300
+ for (const set of itemSets) {
301
+ transactions.push(await set.getSingleTransaction());
302
+ }
303
+ transactions = transactions.filter((x) => x.getInstructions().length > 0);
304
+ if (transactions.length === 0) {
305
+ this.updateStatusForSets(itemSets, {
306
+ status: TransactionStatus.Skipped,
307
+ attemptNum,
308
+ });
309
+ return;
310
+ }
331
311
 
332
- if (!this.shouldProceedToSend(itemSets, attemptNum)) {
333
- return;
334
- }
312
+ this.updateStatusForSets(
313
+ itemSets,
314
+ {
315
+ status: TransactionStatus.Processing,
316
+ attemptNum,
317
+ },
318
+ undefined,
319
+ true
320
+ );
321
+ for (const itemSet of itemSets) {
322
+ await this.debugAccounts(itemSet, await itemSet.getSingleTransaction());
323
+ }
335
324
 
336
- transactions = [];
337
- for (const set of itemSets) {
338
- transactions.push(await set.getSingleTransaction());
339
- }
340
- transactions = transactions.filter(
341
- (x) => x.getInstructions().length > 0
325
+ let txSigs: string[] | undefined;
326
+ let error: Error | undefined;
327
+ try {
328
+ txSigs = await sendJitoBundledTransactions(
329
+ this.txHandler.umi,
330
+ this.txHandler.connection,
331
+ this.txHandler.signer,
332
+ this.txHandler.otherSigners,
333
+ transactions,
334
+ this.txRunType,
335
+ this.priorityFeeSetting,
336
+ () =>
337
+ this.updateStatusForSets(itemSets, {
338
+ status: TransactionStatus.Processing,
339
+ attemptNum,
340
+ simulationSuccessful: true,
341
+ }),
342
+ this.abortController
342
343
  );
343
- if (transactions.length === 0) {
344
- this.updateStatusForSets(itemSets, {
345
- status: TransactionStatus.Skipped,
346
- attemptNum,
347
- });
348
- return;
349
- }
344
+ } catch (e: any) {
345
+ error = e as Error;
346
+ }
350
347
 
348
+ if (
349
+ error ||
350
+ (this.txRunType !== "only-simulate" &&
351
+ (!Boolean(txSigs) || txSigs?.length === 0) &&
352
+ !this.abortController?.signal.aborted)
353
+ ) {
351
354
  this.updateStatusForSets(
352
355
  itemSets,
353
356
  {
354
- status: TransactionStatus.Processing,
357
+ status: TransactionStatus.Failed,
355
358
  attemptNum,
359
+ moreInfo: error?.message,
356
360
  },
357
- undefined,
358
- true
359
- );
360
- for (const itemSet of itemSets) {
361
- await this.debugAccounts(
362
- itemSet,
363
- await itemSet.getSingleTransaction()
364
- );
365
- }
366
-
367
- let txSigs: string[] | undefined;
368
- let error: Error | undefined;
369
- try {
370
- txSigs = await sendJitoBundledTransactions(
371
- this.txHandler.umi,
372
- this.txHandler.connection,
373
- this.txHandler.signer,
374
- this.txHandler.otherSigners,
375
- transactions,
376
- this.txRunType,
377
- this.priorityFeeSetting,
378
- () =>
379
- this.updateStatusForSets(itemSets, {
380
- status: TransactionStatus.Processing,
381
- attemptNum,
382
- simulationSuccessful: true,
383
- }),
384
- this.abortController
385
- );
386
- } catch (e: any) {
387
- error = e as Error;
388
- }
389
-
390
- if (
391
- error ||
392
- (this.txRunType !== "only-simulate" &&
393
- (!Boolean(txSigs) || txSigs?.length === 0) &&
394
- !this.abortController?.signal.aborted)
395
- ) {
396
- this.updateStatusForSets(
397
- itemSets,
398
- {
399
- status: TransactionStatus.Failed,
400
- attemptNum,
401
- moreInfo: error?.message,
402
- },
403
- txSigs
404
- );
405
- throw error ? error : new Error("Unknown error");
406
- }
407
-
408
- this.updateStatusForSets(
409
- itemSets,
410
- { status: TransactionStatus.Successful, attemptNum },
411
361
  txSigs
412
362
  );
413
- },
414
- this.totalRetries,
415
- this.retryDelay,
416
- this.errorsToThrow
417
- ).catch((e: Error) => {
363
+ throw error ? error : new Error("Unknown error");
364
+ }
365
+
366
+ this.updateStatusForSets(
367
+ itemSets,
368
+ { status: TransactionStatus.Successful, attemptNum },
369
+ txSigs
370
+ );
371
+ } catch (e: any) {
418
372
  this.txHandler.log("Capturing error info...");
419
373
  const errorDetails = getErrorInfo(
420
374
  this.txHandler.umi,
@@ -446,7 +400,52 @@ export class TransactionsManager<T extends TxHandler> {
446
400
  if (!errorDetails.canBeIgnored) {
447
401
  throw new Error(errorInfo);
448
402
  }
449
- });
403
+ }
404
+ }
405
+
406
+ private async processTransactionsAtomically(itemSets: TransactionSet[]) {
407
+ await retryWithExponentialBackoff(
408
+ async (retryNum, prevError) => {
409
+ if (
410
+ prevError &&
411
+ this.statuses.filter((x) => x.simulationSuccessful).length >
412
+ this.signableRetries
413
+ ) {
414
+ throw prevError;
415
+ }
416
+
417
+ const attemptNum = Math.max(
418
+ ...itemSets.map((x) => this.getTrueAttemptNum(x?.name() ?? ""))
419
+ );
420
+
421
+ this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(
422
+ prevError,
423
+ attemptNum
424
+ );
425
+
426
+ if (retryNum > 0) {
427
+ const refreshedSets = await this.refreshItemSets(
428
+ itemSets,
429
+ attemptNum,
430
+ prevError
431
+ );
432
+ if (!refreshedSets || !refreshedSets.length) {
433
+ return;
434
+ } else {
435
+ itemSets = refreshedSets;
436
+ }
437
+ }
438
+
439
+ if (!this.shouldProceedToSend(itemSets, attemptNum)) {
440
+ return;
441
+ }
442
+
443
+ await this.sendJitoBundle(itemSets, attemptNum);
444
+ },
445
+ this.totalRetries,
446
+ this.retryDelay,
447
+ this.errorsToThrow
448
+ );
450
449
  }
451
450
 
452
451
  private async processTransactionSet(
@@ -645,7 +645,6 @@ export function getErrorInfo(
645
645
  ) {
646
646
  const err = (error as any)["InstructionError"];
647
647
 
648
- consoleLog("err idx details", err[0], getComputeIxs(0), simulationSuccessful, usePriorityFee(priorityFeeSetting));
649
648
  errIxIdx = err[0] - getComputeIxs(0);
650
649
  errCode =
651
650
  typeof err[1] === "object" && "Custom" in err[1]
@@ -211,7 +211,6 @@ async function pollBundleStatus(
211
211
  const statuses = await retryWithExponentialBackoff(
212
212
  async () => {
213
213
  const resp = await getBundleStatus(umi, bundleId);
214
- // TODO: remove me
215
214
  if (resp?.value?.length > 0 && resp.value[0] === null) {
216
215
  throw new Error("No confirmation status");
217
216
  }
@@ -323,7 +322,7 @@ export async function sendJitoBundledTransactions(
323
322
  txs,
324
323
  false,
325
324
  undefined,
326
- Array(txs.length).map((_) => 1_400_000)
325
+ Array(txs.length).fill(null).map((_) => 1_400_000)
327
326
  );
328
327
  simulationResults = await simulateJitoBundle(umi, builtTxs);
329
328
  }
@@ -223,18 +223,14 @@ export function addTxOptimizations(
223
223
  ? setComputeUnitLimitUmiIx(umi.identity, computeUnitLimit)
224
224
  : transactionBuilder();
225
225
 
226
- consoleLog("Optimizations:", computeUnitPrice, computeUnitLimit);
227
226
  const allOptimizations = tx.prepend(computePriceIx).prepend(computeLimitIx);
228
227
  const withCuPrice = tx.prepend(computePriceIx);
229
228
  const withCuLimit = tx.prepend(computeLimitIx);
230
229
  if (allOptimizations.fitsInOneTransaction(umi)) {
231
- consoleLog("Adding all tx optimizations");
232
230
  return allOptimizations;
233
231
  } else if (withCuPrice.fitsInOneTransaction(umi)) {
234
- consoleLog("Adding CU price optimization");
235
232
  return withCuPrice;
236
233
  } else if (withCuLimit.fitsInOneTransaction(umi)) {
237
- consoleLog("Adding CU limit optimization");
238
234
  return withCuLimit;
239
235
  } else {
240
236
  return tx;