@haven-fi/solauto-sdk 1.0.701 → 1.0.702
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/rebalance/rebalanceSwapManager.d.ts.map +1 -1
- package/dist/services/rebalance/rebalanceSwapManager.js +8 -1
- package/dist/services/transactions/manager/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/manager/transactionsManager.js +5 -3
- package/dist/services/transactions/transactionUtils.d.ts +3 -2
- package/dist/services/transactions/transactionUtils.d.ts.map +1 -1
- package/dist/services/transactions/transactionUtils.js +6 -2
- package/dist/utils/jitoUtils.d.ts.map +1 -1
- package/dist/utils/jitoUtils.js +2 -1
- package/dist/utils/solanaUtils.d.ts.map +1 -1
- package/dist/utils/solanaUtils.js +2 -1
- package/package.json +1 -1
- package/src/services/rebalance/rebalanceSwapManager.ts +8 -1
- package/src/services/transactions/manager/transactionsManager.ts +7 -3
- package/src/services/transactions/transactionUtils.ts +8 -3
- package/src/utils/jitoUtils.ts +2 -1
- package/src/utils/solanaUtils.ts +2 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAY3E,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IACpC,OAAO,CAAC,SAAS,CAAC;IAZb,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAU;gBAGrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA,EACpC,SAAS,CAAC,EAAE,SAAS,YAAA;IAU/B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAyCnB,OAAO,CAAC,kCAAkC;
|
1
|
+
{"version":3,"file":"rebalanceSwapManager.d.ts","sourceRoot":"","sources":["../../../src/services/rebalance/rebalanceSwapManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAkB,UAAU,EAAa,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAY3E,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,2BAA2B,CAAC;IACpC,OAAO,CAAC,SAAS,CAAC;IAZb,UAAU,EAAG,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,aAAa,CAAU;gBAGrB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,eAAe,EACvB,cAAc,CAAC,EAAE,qBAAqB,YAAA,EACtC,2BAA2B,CAAC,EAAE,MAAM,YAAA,EACpC,SAAS,CAAC,EAAE,SAAS,YAAA;IAU/B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAyCnB,OAAO,CAAC,kCAAkC;YA6C5B,mBAAmB;IA2CjC,OAAO,CAAC,mBAAmB;IAIrB,aAAa,CAAC,UAAU,EAAE,MAAM;IAyEhC,aAAa;;;;;;CAWpB"}
|
@@ -59,9 +59,16 @@ class RebalanceSwapManager {
|
|
59
59
|
let debtUsd = this.client.pos.debtUsd(this.priceType);
|
60
60
|
// TODO: add token balance change
|
61
61
|
const { input, biasedInputPrice, output, biasedOutputPrice } = this.swapDetails();
|
62
|
-
|
62
|
+
let swapInputUsd = swapInputAmount
|
63
63
|
? (0, utils_1.fromBaseUnit)(swapInputAmount, (0, utils_1.tokenInfo)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(input.mint)).decimals) * biasedInputPrice
|
64
64
|
: this.usdToSwap();
|
65
|
+
swapInputUsd = this.flRequirements?.flFeeBps
|
66
|
+
? swapInputUsd + swapInputUsd * (0, utils_1.fromBps)(this.flRequirements.flFeeBps)
|
67
|
+
: swapInputUsd;
|
68
|
+
if (this.isBoost() && this.client.pos.state.debt.borrowFeeBps) {
|
69
|
+
swapInputUsd +=
|
70
|
+
swapInputUsd * (0, utils_1.fromBps)(this.client.pos.state.debt.borrowFeeBps);
|
71
|
+
}
|
65
72
|
let swapOutputUsd = swapOutputAmount
|
66
73
|
? (0, utils_1.fromBaseUnit)(swapOutputAmount, (0, utils_1.tokenInfo)((0, umi_web3js_adapters_1.toWeb3JsPublicKey)(output.mint)).decimals) * biasedOutputPrice
|
67
74
|
: this.usdToSwap();
|
@@ -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,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,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;CAC3B;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;IAE7B,kBAAkB,SAAmB;gBAEzB,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC;YAmB9B,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,SAAS,CAAC,4BAA4B,CACpC,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM;IAcpB,OAAO,CAAC,mBAAmB;IAoBd,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;
|
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,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,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;CAC3B;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;IAE7B,kBAAkB,SAAmB;gBAEzB,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC;YAmB9B,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,SAAS,CAAC,4BAA4B,CACpC,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM;IAcpB,OAAO,CAAC,mBAAmB;IAoBd,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;YAiJ7B,qBAAqB;YAiDrB,eAAe;cA2Db,eAAe,CAC7B,EAAE,EAAE,kBAAkB,EACtB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,SAAS,CAAC,EAAE,kBAAkB;CAyDjC"}
|
@@ -167,6 +167,7 @@ class TransactionsManager {
|
|
167
167
|
}
|
168
168
|
async processTransactionsAtomically(itemSets) {
|
169
169
|
let num = 0;
|
170
|
+
let priorityFeeSetting;
|
170
171
|
let transactions = [];
|
171
172
|
await (0, utils_1.retryWithExponentialBackoff)(async (attemptNum, prevError) => {
|
172
173
|
if (prevError &&
|
@@ -175,6 +176,7 @@ class TransactionsManager {
|
|
175
176
|
throw prevError;
|
176
177
|
}
|
177
178
|
num = attemptNum;
|
179
|
+
priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
|
178
180
|
if (attemptNum > 0) {
|
179
181
|
const refreshedSets = await this.refreshItemSets(itemSets, attemptNum, prevError);
|
180
182
|
if (!refreshedSets || !refreshedSets.length) {
|
@@ -200,7 +202,7 @@ class TransactionsManager {
|
|
200
202
|
let txSigs;
|
201
203
|
let error;
|
202
204
|
try {
|
203
|
-
txSigs = await (0, utils_1.sendJitoBundledTransactions)(this.txHandler.umi, this.txHandler.connection, this.txHandler.signer, this.txHandler.otherSigners, transactions, this.txRunType,
|
205
|
+
txSigs = await (0, utils_1.sendJitoBundledTransactions)(this.txHandler.umi, this.txHandler.connection, this.txHandler.signer, this.txHandler.otherSigners, transactions, this.txRunType, priorityFeeSetting, () => this.updateStatusForSets(itemSets, TransactionStatus.Processing, attemptNum, undefined, true));
|
204
206
|
}
|
205
207
|
catch (e) {
|
206
208
|
error = e;
|
@@ -214,7 +216,7 @@ class TransactionsManager {
|
|
214
216
|
this.updateStatusForSets(itemSets, TransactionStatus.Successful, attemptNum, txSigs);
|
215
217
|
}, this.totalRetries, this.retryDelay, this.errorsToThrow).catch((e) => {
|
216
218
|
this.txHandler.log("Capturing error info...");
|
217
|
-
const errorDetails = (0, transactionUtils_1.getErrorInfo)(this.txHandler.umi, transactions, e, itemSets.filter((x) => this.statuses.find((y) => x.name() === y.name)?.simulationSuccessful).length === itemSets.length);
|
219
|
+
const errorDetails = (0, transactionUtils_1.getErrorInfo)(this.txHandler.umi, transactions, e, itemSets.filter((x) => this.statuses.find((y) => x.name() === y.name)?.simulationSuccessful).length === itemSets.length, priorityFeeSetting);
|
218
220
|
const errorString = `${errorDetails.errorName ?? "Unknown error"}: ${errorDetails.errorInfo?.split("\n")[0] ?? "unknown"}`;
|
219
221
|
const errorInfo = errorDetails.errorName || errorDetails.errorInfo
|
220
222
|
? errorString
|
@@ -295,7 +297,7 @@ class TransactionsManager {
|
|
295
297
|
}
|
296
298
|
catch (e) {
|
297
299
|
this.txHandler.log("Capturing error info...");
|
298
|
-
const errorDetails = (0, transactionUtils_1.getErrorInfo)(this.txHandler.umi, [tx], e, this.statuses.find((x) => x.name === txName)?.simulationSuccessful);
|
300
|
+
const errorDetails = (0, transactionUtils_1.getErrorInfo)(this.txHandler.umi, [tx], e, this.statuses.find((x) => x.name === txName)?.simulationSuccessful, priorityFeeSetting);
|
299
301
|
const errorString = `${errorDetails.errorName ?? "Unknown error"}: ${errorDetails.errorInfo?.split("\n")[0] ?? "unknown"}`;
|
300
302
|
const errorInfo = errorDetails.errorName || errorDetails.errorInfo
|
301
303
|
? errorString
|
@@ -1,13 +1,14 @@
|
|
1
1
|
import { PublicKey } from "@solana/web3.js";
|
2
2
|
import { TransactionBuilder, Umi } from "@metaplex-foundation/umi";
|
3
3
|
import { SolautoClient, ReferralStateManager } from "../solauto";
|
4
|
-
import { TransactionItemInputs } from "../../types";
|
4
|
+
import { TransactionItemInputs, PriorityFeeSetting } from "../../types";
|
5
5
|
export declare function rebalanceChoresBefore(client: SolautoClient, tx: TransactionBuilder, accountsGettingCreated: string[]): Promise<TransactionBuilder>;
|
6
6
|
export declare function getTransactionChores(client: SolautoClient, tx: TransactionBuilder): Promise<[TransactionBuilder, TransactionBuilder]>;
|
7
7
|
export declare function convertReferralFeesToDestination(referralManager: ReferralStateManager, tokenAccount: PublicKey, destinationMint: PublicKey): Promise<TransactionItemInputs | undefined>;
|
8
|
-
export declare function getErrorInfo(umi: Umi, txs: TransactionBuilder[], error: Error, simulationSuccessful?: boolean): {
|
8
|
+
export declare function getErrorInfo(umi: Umi, txs: TransactionBuilder[], error: Error, simulationSuccessful?: boolean, priorityFeeSetting?: PriorityFeeSetting): {
|
9
9
|
errorName: string | undefined;
|
10
10
|
errorInfo: string | undefined;
|
11
11
|
canBeIgnored: boolean;
|
12
12
|
};
|
13
|
+
export declare function usePriorityFee(priorityFeeSetting?: PriorityFeeSetting): priorityFeeSetting is PriorityFeeSetting.Min | PriorityFeeSetting.Low | PriorityFeeSetting.Default | PriorityFeeSetting.High | PriorityFeeSetting.VeryHigh;
|
13
14
|
//# sourceMappingURL=transactionUtils.d.ts.map
|
@@ -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,EAAE,qBAAqB,EAAyB,MAAM,aAAa,CAAC;
|
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,EAAE,qBAAqB,EAAyB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAwL/F,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;;;;EAuHxC;AAED,wBAAgB,cAAc,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,8JAErE"}
|
@@ -4,6 +4,7 @@ exports.rebalanceChoresBefore = rebalanceChoresBefore;
|
|
4
4
|
exports.getTransactionChores = getTransactionChores;
|
5
5
|
exports.convertReferralFeesToDestination = convertReferralFeesToDestination;
|
6
6
|
exports.getErrorInfo = getErrorInfo;
|
7
|
+
exports.usePriorityFee = usePriorityFee;
|
7
8
|
const web3_js_1 = require("@solana/web3.js");
|
8
9
|
const spl_token_1 = require("@solana/spl-token");
|
9
10
|
const umi_1 = require("@metaplex-foundation/umi");
|
@@ -339,7 +340,7 @@ async function convertReferralFeesToDestination(referralManager, tokenAccount, d
|
|
339
340
|
.add(swapIx);
|
340
341
|
return { tx, lookupTableAddresses };
|
341
342
|
}
|
342
|
-
function getErrorInfo(umi, txs, error, simulationSuccessful) {
|
343
|
+
function getErrorInfo(umi, txs, error, simulationSuccessful, priorityFeeSetting) {
|
343
344
|
let canBeIgnored = false;
|
344
345
|
let errorName = undefined;
|
345
346
|
let errorInfo = undefined;
|
@@ -348,7 +349,7 @@ function getErrorInfo(umi, txs, error, simulationSuccessful) {
|
|
348
349
|
let errCode;
|
349
350
|
let errName;
|
350
351
|
// sub ixs to account for computeUnitLimit and computeUnitPrice that get added
|
351
|
-
const getComputeIxs = (txIdx) => (0, utils_1.addTxOptimizations)(umi, txs[txIdx], 1, simulationSuccessful ? 1 : undefined).getInstructions().length - txs[txIdx].getInstructions().length;
|
352
|
+
const getComputeIxs = (txIdx) => (0, utils_1.addTxOptimizations)(umi, txs[txIdx], usePriorityFee(priorityFeeSetting) ? 1 : undefined, simulationSuccessful ? 1 : undefined).getInstructions().length - txs[txIdx].getInstructions().length;
|
352
353
|
try {
|
353
354
|
if (error instanceof types_1.BundleSimulationError) {
|
354
355
|
errTxIdx = error.details.transactionIdx;
|
@@ -423,3 +424,6 @@ function getErrorInfo(umi, txs, error, simulationSuccessful) {
|
|
423
424
|
(0, utils_1.consoleLog)(errData);
|
424
425
|
return errData;
|
425
426
|
}
|
427
|
+
function usePriorityFee(priorityFeeSetting) {
|
428
|
+
return priorityFeeSetting !== undefined && priorityFeeSetting !== types_1.PriorityFeeSetting.None;
|
429
|
+
}
|
@@ -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;
|
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;AAkGD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB/D;AAwHD,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"}
|
package/dist/utils/jitoUtils.js
CHANGED
@@ -14,6 +14,7 @@ const types_2 = require("../types");
|
|
14
14
|
const solanaUtils_1 = require("./solanaUtils");
|
15
15
|
const generalUtils_1 = require("./generalUtils");
|
16
16
|
const bs58_1 = __importDefault(require("bs58"));
|
17
|
+
const services_1 = require("../services");
|
17
18
|
function getRandomTipAccount() {
|
18
19
|
const randomInt = Math.floor(Math.random() * constants_1.JITO_TIP_ACCOUNTS.length);
|
19
20
|
return new web3_js_1.PublicKey(constants_1.JITO_TIP_ACCOUNTS[randomInt]);
|
@@ -190,7 +191,7 @@ async function sendJitoBundledTransactions(umi, connection, userSigner, otherSig
|
|
190
191
|
(0, generalUtils_1.consoleLog)(txs.map((tx) => tx.getInstructions().map((x) => x.programId.toString())));
|
191
192
|
(0, generalUtils_1.consoleLog)("Transaction sizes: ", txs.map((x) => x.getTransactionSize(umi)));
|
192
193
|
txs[0] = txs[0].prepend(getTipInstruction(userSigner, 150000));
|
193
|
-
const feeEstimates =
|
194
|
+
const feeEstimates = (0, services_1.usePriorityFee)(priorityFeeSetting)
|
194
195
|
? await Promise.all(txs.map(async (x) => (await (0, solanaUtils_1.getComputeUnitPriceEstimate)(umi, x, priorityFeeSetting, true)) ?? 1000000))
|
195
196
|
: undefined;
|
196
197
|
const latestBlockhash = (await umi.rpc.getLatestBlockhash({ commitment: "confirmed" })).blockhash;
|
@@ -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;
|
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,sBAsB1B;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBA2D1B;AAuBD,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,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,CA4DjC"}
|
@@ -31,6 +31,7 @@ const accountUtils_1 = require("./accountUtils");
|
|
31
31
|
const generalUtils_1 = require("./generalUtils");
|
32
32
|
const solautoUtils_1 = require("./solautoUtils");
|
33
33
|
const marginfi_1 = require("./marginfi");
|
34
|
+
const services_1 = require("../services");
|
34
35
|
function getSolanaRpcConnection(rpcUrl, programId, lpEnv) {
|
35
36
|
const connection = new web3_js_1.Connection(rpcUrl, {
|
36
37
|
commitment: "confirmed",
|
@@ -270,7 +271,7 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prior
|
|
270
271
|
(0, generalUtils_1.consoleLog)("Compute unit limit: ", cuLimit);
|
271
272
|
}
|
272
273
|
let cuPrice;
|
273
|
-
if (
|
274
|
+
if ((0, services_1.usePriorityFee)(prioritySetting)) {
|
274
275
|
cuPrice = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
|
275
276
|
cuPrice = Math.min(cuPrice ?? 0, 100000000);
|
276
277
|
(0, generalUtils_1.consoleLog)("Compute unit price: ", cuPrice);
|
package/package.json
CHANGED
@@ -99,12 +99,19 @@ export class RebalanceSwapManager {
|
|
99
99
|
const { input, biasedInputPrice, output, biasedOutputPrice } =
|
100
100
|
this.swapDetails();
|
101
101
|
|
102
|
-
|
102
|
+
let swapInputUsd = swapInputAmount
|
103
103
|
? fromBaseUnit(
|
104
104
|
swapInputAmount,
|
105
105
|
tokenInfo(toWeb3JsPublicKey(input.mint)).decimals
|
106
106
|
) * biasedInputPrice
|
107
107
|
: this.usdToSwap();
|
108
|
+
swapInputUsd = this.flRequirements?.flFeeBps
|
109
|
+
? swapInputUsd + swapInputUsd * fromBps(this.flRequirements.flFeeBps)
|
110
|
+
: swapInputUsd;
|
111
|
+
if (this.isBoost() && this.client.pos.state.debt.borrowFeeBps) {
|
112
|
+
swapInputUsd +=
|
113
|
+
swapInputUsd * fromBps(this.client.pos.state.debt.borrowFeeBps);
|
114
|
+
}
|
108
115
|
|
109
116
|
let swapOutputUsd = swapOutputAmount
|
110
117
|
? fromBaseUnit(
|
@@ -269,6 +269,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
269
269
|
|
270
270
|
private async processTransactionsAtomically(itemSets: TransactionSet[]) {
|
271
271
|
let num = 0;
|
272
|
+
let priorityFeeSetting: PriorityFeeSetting;
|
272
273
|
let transactions: TransactionBuilder[] = [];
|
273
274
|
|
274
275
|
await retryWithExponentialBackoff(
|
@@ -282,6 +283,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
282
283
|
}
|
283
284
|
|
284
285
|
num = attemptNum;
|
286
|
+
priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
|
285
287
|
|
286
288
|
if (attemptNum > 0) {
|
287
289
|
const refreshedSets = await this.refreshItemSets(
|
@@ -334,7 +336,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
334
336
|
this.txHandler.otherSigners,
|
335
337
|
transactions,
|
336
338
|
this.txRunType,
|
337
|
-
|
339
|
+
priorityFeeSetting,
|
338
340
|
() =>
|
339
341
|
this.updateStatusForSets(
|
340
342
|
itemSets,
|
@@ -383,7 +385,8 @@ export class TransactionsManager<T extends TxHandler> {
|
|
383
385
|
itemSets.filter(
|
384
386
|
(x) =>
|
385
387
|
this.statuses.find((y) => x.name() === y.name)?.simulationSuccessful
|
386
|
-
).length === itemSets.length
|
388
|
+
).length === itemSets.length,
|
389
|
+
priorityFeeSetting
|
387
390
|
);
|
388
391
|
|
389
392
|
const errorString = `${errorDetails.errorName ?? "Unknown error"}: ${errorDetails.errorInfo?.split("\n")[0] ?? "unknown"}`;
|
@@ -553,7 +556,8 @@ export class TransactionsManager<T extends TxHandler> {
|
|
553
556
|
this.txHandler.umi,
|
554
557
|
[tx],
|
555
558
|
e,
|
556
|
-
this.statuses.find((x) => x.name === txName)?.simulationSuccessful
|
559
|
+
this.statuses.find((x) => x.name === txName)?.simulationSuccessful,
|
560
|
+
priorityFeeSetting
|
557
561
|
);
|
558
562
|
|
559
563
|
const errorString = `${errorDetails.errorName ?? "Unknown error"}: ${errorDetails.errorInfo?.split("\n")[0] ?? "unknown"}`;
|
@@ -56,7 +56,7 @@ import {
|
|
56
56
|
getJupiterErrorFromCode,
|
57
57
|
JUPITER_PROGRAM_ID,
|
58
58
|
} from "../../jupiter-sdk";
|
59
|
-
import { TransactionItemInputs, BundleSimulationError } from "../../types";
|
59
|
+
import { TransactionItemInputs, BundleSimulationError, PriorityFeeSetting } from "../../types";
|
60
60
|
import { isMarginfiProgram } from "../../constants";
|
61
61
|
|
62
62
|
interface wSolTokenUsage {
|
@@ -604,7 +604,8 @@ export function getErrorInfo(
|
|
604
604
|
umi: Umi,
|
605
605
|
txs: TransactionBuilder[],
|
606
606
|
error: Error,
|
607
|
-
simulationSuccessful?: boolean
|
607
|
+
simulationSuccessful?: boolean,
|
608
|
+
priorityFeeSetting?: PriorityFeeSetting
|
608
609
|
) {
|
609
610
|
let canBeIgnored = false;
|
610
611
|
let errorName: string | undefined = undefined;
|
@@ -620,7 +621,7 @@ export function getErrorInfo(
|
|
620
621
|
addTxOptimizations(
|
621
622
|
umi,
|
622
623
|
txs[txIdx],
|
623
|
-
1,
|
624
|
+
usePriorityFee(priorityFeeSetting) ? 1 : undefined,
|
624
625
|
simulationSuccessful ? 1 : undefined
|
625
626
|
).getInstructions().length - txs[txIdx].getInstructions().length;
|
626
627
|
|
@@ -724,3 +725,7 @@ export function getErrorInfo(
|
|
724
725
|
|
725
726
|
return errData;
|
726
727
|
}
|
728
|
+
|
729
|
+
export function usePriorityFee(priorityFeeSetting?: PriorityFeeSetting) {
|
730
|
+
return priorityFeeSetting !== undefined && priorityFeeSetting !== PriorityFeeSetting.None;
|
731
|
+
}
|
package/src/utils/jitoUtils.ts
CHANGED
@@ -28,6 +28,7 @@ import {
|
|
28
28
|
retryWithExponentialBackoff,
|
29
29
|
} from "./generalUtils";
|
30
30
|
import base58 from "bs58";
|
31
|
+
import { usePriorityFee } from "../services";
|
31
32
|
|
32
33
|
export function getRandomTipAccount(): PublicKey {
|
33
34
|
const randomInt = Math.floor(Math.random() * JITO_TIP_ACCOUNTS.length);
|
@@ -303,7 +304,7 @@ export async function sendJitoBundledTransactions(
|
|
303
304
|
txs[0] = txs[0].prepend(getTipInstruction(userSigner, 150_000));
|
304
305
|
|
305
306
|
const feeEstimates =
|
306
|
-
priorityFeeSetting
|
307
|
+
usePriorityFee(priorityFeeSetting)
|
307
308
|
? await Promise.all(
|
308
309
|
txs.map(
|
309
310
|
async (x) =>
|
package/src/utils/solanaUtils.ts
CHANGED
@@ -48,6 +48,7 @@ import {
|
|
48
48
|
} from "./generalUtils";
|
49
49
|
import { createDynamicSolautoProgram } from "./solautoUtils";
|
50
50
|
import { createDynamicMarginfiProgram } from "./marginfi";
|
51
|
+
import { usePriorityFee } from "../services";
|
51
52
|
|
52
53
|
export function getSolanaRpcConnection(
|
53
54
|
rpcUrl: string,
|
@@ -469,7 +470,7 @@ export async function sendSingleOptimizedTransaction(
|
|
469
470
|
}
|
470
471
|
|
471
472
|
let cuPrice: number | undefined;
|
472
|
-
if (prioritySetting
|
473
|
+
if (usePriorityFee(prioritySetting)) {
|
473
474
|
cuPrice = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
|
474
475
|
cuPrice = Math.min(cuPrice ?? 0, 100_000_000);
|
475
476
|
consoleLog("Compute unit price: ", cuPrice);
|