@haven-fi/solauto-sdk 1.0.742 → 1.0.744
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.
- package/dist/services/swap/jupSwapManager.d.ts.map +1 -1
- package/dist/services/swap/jupSwapManager.js +2 -1
- package/dist/services/transactions/manager/transactionsManager.d.ts +1 -0
- package/dist/services/transactions/manager/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/manager/transactionsManager.js +29 -25
- package/dist/services/transactions/transactionUtils.d.ts.map +1 -1
- package/dist/services/transactions/transactionUtils.js +0 -1
- package/dist/utils/jitoUtils.d.ts.map +1 -1
- package/dist/utils/jitoUtils.js +1 -2
- package/dist/utils/solanaUtils.d.ts.map +1 -1
- package/dist/utils/solanaUtils.js +0 -4
- package/package.json +1 -1
- package/src/services/swap/jupSwapManager.ts +2 -1
- package/src/services/transactions/manager/transactionsManager.ts +109 -110
- package/src/services/transactions/transactionUtils.ts +0 -1
- package/src/utils/jitoUtils.ts +1 -2
- package/src/utils/solanaUtils.ts +0 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"jupSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/swap/jupSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,aAAa,EAEd,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,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;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,qBAAa,cAAc;IAMvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS,CAAC;IANpB,MAAM,mCAA4B;IAE3B,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAa;gBAG7C,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO,YAAA;IAGhB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"jupSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/swap/jupSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,MAAM,EACN,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAEL,aAAa,EAEd,MAAM,aAAa,CAAC;AAWrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,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;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,qBAAa,cAAc;IAMvB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS,CAAC;IANpB,MAAM,mCAA4B;IAE3B,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAa;gBAG7C,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO,YAAA;IAGhB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;YA8BhD,kBAAkB;IAsChC,cAAc;IAId,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,0BAA0B;IAc5B,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA2CnE,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAYlE"}
|
@@ -15,7 +15,8 @@ class JupSwapManager {
|
|
15
15
|
async getQuote(data) {
|
16
16
|
const inputMintInfo = (0, utils_1.tokenInfo)(data.inputMint);
|
17
17
|
const outputMintInfo = (0, utils_1.tokenInfo)(data.outputMint);
|
18
|
-
const lowLiquidityMint = !inputMintInfo?.isMajor
|
18
|
+
const lowLiquidityMint = (!inputMintInfo?.isMajor && !inputMintInfo?.isLST) ||
|
19
|
+
(!outputMintInfo?.isMajor && !outputMintInfo?.isLST);
|
19
20
|
const slippageBps = data.slippageBps ?? (lowLiquidityMint ? 250 : 100);
|
20
21
|
return await (0, utils_1.retryWithExponentialBackoff)(async (attemptNum) => await this.jupApi.quoteGet({
|
21
22
|
amount: Number(data.amount),
|
@@ -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":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,aAAa,EAId,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAkB,MAAM,UAAU,CAAC;AAEzE,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAED,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,wBAAwB;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;AAED,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,EAAE,CAAC;AAEpE,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,SAAS;IAC1D,SAAS,EAAE,CAAC,CAAC;IACb,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,qBAAa,mBAAmB,CAAC,CAAC,SAAS,SAAS;IAClD,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;IACvB,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC1E,SAAS,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IACzC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACjD,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACxC,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAM;IACpD,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAE5C,kBAAkB,SAAmB;gBAEzB,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC;YAoB9B,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA+BN,aAAa;IAoB3B,SAAS,CAAC,4BAA4B,CACpC,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM;IAcpB,OAAO,CAAC,mBAAmB;IAkBd,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;IAiCtC,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,iBAAiB;YAWX,6BAA6B;
|
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
|
191
|
-
let attemptNum = 0;
|
190
|
+
async sendJitoBundle(itemSets, attemptNum) {
|
192
191
|
let transactions = [];
|
193
|
-
|
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
|
-
}
|
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;;;;
|
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;
|
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"}
|
package/dist/utils/jitoUtils.js
CHANGED
@@ -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":"AACA,OAAO,EAIL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAgB9E,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,EACrB,KAAK,CAAC,EAAE,UAAU,GACjB,CAAC,UAAU,EAAE,GAAG,CAAC,CAWnB;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,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,EACjB,QAAQ,GAAE,OAAe,EACzB,UAAU,GAAE,OAAe,GAC1B,WAAW,CAEb;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAmBpC;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,
|
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
@@ -60,7 +60,8 @@ export class JupSwapManager {
|
|
60
60
|
const inputMintInfo: TokenInfo | undefined = tokenInfo(data.inputMint);
|
61
61
|
const outputMintInfo: TokenInfo | undefined = tokenInfo(data.outputMint);
|
62
62
|
const lowLiquidityMint =
|
63
|
-
!inputMintInfo?.isMajor
|
63
|
+
(!inputMintInfo?.isMajor && !inputMintInfo?.isLST) ||
|
64
|
+
(!outputMintInfo?.isMajor && !outputMintInfo?.isLST);
|
64
65
|
const slippageBps = data.slippageBps ?? (lowLiquidityMint ? 250 : 100);
|
65
66
|
|
66
67
|
return await retryWithExponentialBackoff(
|
@@ -293,128 +293,82 @@ export class TransactionsManager<T extends TxHandler> {
|
|
293
293
|
return attemptNum;
|
294
294
|
}
|
295
295
|
|
296
|
-
private async
|
297
|
-
let attemptNum = 0;
|
296
|
+
private async sendJitoBundle(itemSets: TransactionSet[], attemptNum: number) {
|
298
297
|
let transactions: TransactionBuilder[] = [];
|
299
298
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
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
|
-
|
333
|
-
|
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
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
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
|
-
|
344
|
-
|
345
|
-
|
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.
|
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
|
-
|
415
|
-
|
416
|
-
this.
|
417
|
-
|
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]
|
package/src/utils/jitoUtils.ts
CHANGED
@@ -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
|
}
|
package/src/utils/solanaUtils.ts
CHANGED
@@ -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;
|