@haven-fi/solauto-sdk 1.0.719 → 1.0.721
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/solauto/solautoClient.d.ts +2 -2
- package/dist/services/solauto/solautoClient.d.ts.map +1 -1
- package/dist/services/solauto/solautoClient.js +1 -1
- package/dist/services/transactions/manager/transactionsManager.d.ts +2 -0
- package/dist/services/transactions/manager/transactionsManager.d.ts.map +1 -1
- package/dist/services/transactions/manager/transactionsManager.js +9 -7
- package/dist/utils/instructionUtils.d.ts +2 -2
- package/dist/utils/instructionUtils.d.ts.map +1 -1
- package/dist/utils/instructionUtils.js +2 -2
- package/dist/utils/jitoUtils.d.ts +1 -1
- package/dist/utils/jitoUtils.d.ts.map +1 -1
- package/dist/utils/jitoUtils.js +8 -2
- package/dist/utils/solanaUtils.d.ts +1 -1
- package/dist/utils/solanaUtils.d.ts.map +1 -1
- package/dist/utils/solanaUtils.js +7 -1
- package/package.json +1 -1
- package/src/services/solauto/solautoClient.ts +3 -1
- package/src/services/transactions/manager/transactionsManager.ts +14 -8
- package/src/utils/instructionUtils.ts +4 -2
- package/src/utils/jitoUtils.ts +22 -16
- package/src/utils/solanaUtils.ts +8 -1
@@ -1,7 +1,7 @@
|
|
1
1
|
import "rpc-websockets/dist/lib/client";
|
2
2
|
import { PublicKey } from "@solana/web3.js";
|
3
3
|
import { TransactionBuilder } from "@metaplex-foundation/umi";
|
4
|
-
import { DCASettingsInpArgs, LendingPlatform, PriceType, RebalanceStep, SolautoActionArgs, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../../generated";
|
4
|
+
import { DCASettingsInpArgs, LendingPlatform, PositionType, PriceType, RebalanceStep, SolautoActionArgs, SolautoSettingsParametersInpArgs, UpdatePositionDataArgs } from "../../generated";
|
5
5
|
import { ContextUpdates } from "../../utils";
|
6
6
|
import { ProgramEnv, RebalanceDetails } from "../../types";
|
7
7
|
import { ReferralStateManager, ReferralStateManagerArgs } from "./referralStateManager";
|
@@ -54,7 +54,7 @@ export declare abstract class SolautoClient extends ReferralStateManager {
|
|
54
54
|
supplyBalance: bigint;
|
55
55
|
debtBalance: bigint;
|
56
56
|
}>;
|
57
|
-
openPositionIx(settings?: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs): TransactionBuilder;
|
57
|
+
openPositionIx(settings?: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs, positionType?: PositionType): TransactionBuilder;
|
58
58
|
updatePositionIx(args: UpdatePositionDataArgs): TransactionBuilder;
|
59
59
|
abstract closePositionIx(): TransactionBuilder;
|
60
60
|
cancelDCAIx(): TransactionBuilder;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"solautoClient.d.ts","sourceRoot":"","sources":["../../../src/services/solauto/solautoClient.ts"],"names":[],"mappings":"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"}
|
@@ -172,7 +172,7 @@ class SolautoClient extends referralStateManager_1.ReferralStateManager {
|
|
172
172
|
debtBalance: this.signerDebtBalance,
|
173
173
|
};
|
174
174
|
}
|
175
|
-
openPositionIx(settings, dca) {
|
175
|
+
openPositionIx(settings, dca, positionType) {
|
176
176
|
if (dca && dca.dcaInBaseUnit > 0) {
|
177
177
|
this.contextUpdates.new({
|
178
178
|
type: "dcaInBalance",
|
@@ -34,6 +34,7 @@ export interface TransactionsManagerArgs<T extends TxHandler> {
|
|
34
34
|
atomically?: boolean;
|
35
35
|
errorsToThrow?: ErrorsToThrow;
|
36
36
|
retryConfig?: RetryConfig;
|
37
|
+
abortController?: AbortController;
|
37
38
|
}
|
38
39
|
export declare class TransactionsManager<T extends TxHandler> {
|
39
40
|
protected txHandler: T;
|
@@ -47,6 +48,7 @@ export declare class TransactionsManager<T extends TxHandler> {
|
|
47
48
|
protected signableRetries: number;
|
48
49
|
protected totalRetries: number;
|
49
50
|
protected retryDelay: number;
|
51
|
+
protected abortController?: AbortController;
|
50
52
|
updateOracleTxName: string;
|
51
53
|
constructor(args: TransactionsManagerArgs<T>);
|
52
54
|
private assembleTransactionSets;
|
@@ -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;
|
1
|
+
{"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../../src/services/transactions/manager/transactionsManager.ts"],"names":[],"mappings":"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"}
|
@@ -36,6 +36,7 @@ class TransactionsManager {
|
|
36
36
|
this.priorityFeeSetting = args.priorityFeeSetting ?? types_1.PriorityFeeSetting.Min;
|
37
37
|
this.atomically = args.atomically ?? true;
|
38
38
|
this.errorsToThrow = args.errorsToThrow;
|
39
|
+
this.abortController = args.abortController;
|
39
40
|
this.lookupTables = new types_2.LookupTables(this.txHandler.defaultLookupTables(), this.txHandler.umi);
|
40
41
|
this.signableRetries =
|
41
42
|
args.retryConfig?.signableRetries ?? args.retryConfig?.totalRetries ?? 4;
|
@@ -180,7 +181,6 @@ class TransactionsManager {
|
|
180
181
|
}
|
181
182
|
async processTransactionsAtomically(itemSets) {
|
182
183
|
let num = 0;
|
183
|
-
let priorityFeeSetting;
|
184
184
|
let transactions = [];
|
185
185
|
await (0, utils_1.retryWithExponentialBackoff)(async (attemptNum, prevError) => {
|
186
186
|
if (prevError &&
|
@@ -189,7 +189,7 @@ class TransactionsManager {
|
|
189
189
|
throw prevError;
|
190
190
|
}
|
191
191
|
num = attemptNum;
|
192
|
-
priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
|
192
|
+
this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
|
193
193
|
if (attemptNum > 0) {
|
194
194
|
const refreshedSets = await this.refreshItemSets(itemSets, attemptNum, prevError);
|
195
195
|
if (!refreshedSets || !refreshedSets.length) {
|
@@ -218,21 +218,22 @@ class TransactionsManager {
|
|
218
218
|
let txSigs;
|
219
219
|
let error;
|
220
220
|
try {
|
221
|
-
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));
|
221
|
+
txSigs = await (0, utils_1.sendJitoBundledTransactions)(this.txHandler.umi, this.txHandler.connection, this.txHandler.signer, this.txHandler.otherSigners, transactions, this.txRunType, this.priorityFeeSetting, () => this.updateStatusForSets(itemSets, TransactionStatus.Processing, attemptNum, undefined, true), this.abortController);
|
222
222
|
}
|
223
223
|
catch (e) {
|
224
224
|
error = e;
|
225
225
|
}
|
226
226
|
if (error ||
|
227
227
|
(this.txRunType !== "only-simulate" &&
|
228
|
-
(!Boolean(txSigs) || txSigs?.length === 0)
|
228
|
+
(!Boolean(txSigs) || txSigs?.length === 0) &&
|
229
|
+
!this.abortController?.signal.aborted)) {
|
229
230
|
this.updateStatusForSets(itemSets, TransactionStatus.Failed, attemptNum, txSigs, undefined, error?.message);
|
230
231
|
throw error ? error : new Error("Unknown error");
|
231
232
|
}
|
232
233
|
this.updateStatusForSets(itemSets, TransactionStatus.Successful, attemptNum, txSigs);
|
233
234
|
}, this.totalRetries, this.retryDelay, this.errorsToThrow).catch((e) => {
|
234
235
|
this.txHandler.log("Capturing error info...");
|
235
|
-
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);
|
236
|
+
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, this.priorityFeeSetting);
|
236
237
|
const errorString = `${errorDetails.errorName ?? "Unknown error"}: ${errorDetails.errorInfo?.split("\n")[0] ?? "unknown"}`;
|
237
238
|
const errorInfo = errorDetails.errorName || errorDetails.errorInfo
|
238
239
|
? errorString
|
@@ -267,7 +268,8 @@ class TransactionsManager {
|
|
267
268
|
}
|
268
269
|
else {
|
269
270
|
await this.debugAccounts(itemSet, tx);
|
270
|
-
|
271
|
+
this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
|
272
|
+
await this.sendTransaction(tx, itemSet.name(), attemptNum, this.priorityFeeSetting);
|
271
273
|
}
|
272
274
|
}, this.totalRetries, this.retryDelay, this.errorsToThrow);
|
273
275
|
}
|
@@ -303,7 +305,7 @@ class TransactionsManager {
|
|
303
305
|
async sendTransaction(tx, txName, attemptNum, priorityFeeSetting, txRunType) {
|
304
306
|
this.updateStatus(txName, TransactionStatus.Processing, attemptNum);
|
305
307
|
try {
|
306
|
-
const txSig = await (0, utils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, txRunType ?? this.txRunType, priorityFeeSetting, () => this.updateStatus(txName, TransactionStatus.Processing, attemptNum, undefined, true));
|
308
|
+
const txSig = await (0, utils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, txRunType ?? this.txRunType, priorityFeeSetting, () => this.updateStatus(txName, TransactionStatus.Processing, attemptNum, undefined, true), this.abortController);
|
307
309
|
this.updateStatus(txName, TransactionStatus.Successful, attemptNum, txSig ? bs58_1.default.encode(txSig) : undefined);
|
308
310
|
}
|
309
311
|
catch (e) {
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { OptionOrNullable } from "@metaplex-foundation/umi";
|
2
|
-
import { DCASettingsInpArgs, SolautoSettingsParametersInpArgs } from "../generated";
|
2
|
+
import { DCASettingsInpArgs, PositionType, SolautoSettingsParametersInpArgs } from "../generated";
|
3
3
|
import { SolautoClient, TransactionItem } from "../services";
|
4
4
|
import { PublicKey } from "@solana/web3.js";
|
5
|
-
export declare function openSolautoPosition(client: SolautoClient, settingParams: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs): TransactionItem;
|
5
|
+
export declare function openSolautoPosition(client: SolautoClient, settingParams: SolautoSettingsParametersInpArgs, dca?: DCASettingsInpArgs, positionType?: PositionType): TransactionItem;
|
6
6
|
export declare function closeSolautoPosition(client: SolautoClient): TransactionItem;
|
7
7
|
export declare function updateSolautoPosition(client: SolautoClient, settings: OptionOrNullable<SolautoSettingsParametersInpArgs>, dca: OptionOrNullable<DCASettingsInpArgs>): TransactionItem;
|
8
8
|
export declare function cancelSolautoDca(client: SolautoClient): TransactionItem;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"instructionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/instructionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,gCAAgC,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,aAAa,EAEb,eAAe,EAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,gCAAgC,EAC/C,GAAG,CAAC,EAAE,kBAAkB,
|
1
|
+
{"version":3,"file":"instructionUtils.d.ts","sourceRoot":"","sources":["../../src/utils/instructionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,gCAAgC,EACjC,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,aAAa,EAEb,eAAe,EAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,gCAAgC,EAC/C,GAAG,CAAC,EAAE,kBAAkB,EACxB,YAAY,CAAC,EAAE,YAAY,mBAQ5B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,mBAOzD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,gBAAgB,CAAC,gCAAgC,CAAC,EAC5D,GAAG,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,mBAY1C;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,mBAOrD;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAUpE;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAWnE;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAerE;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,mBAclE;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,wBAAwB,CAAC,EAAE,MAAM,mBAalC;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,SAAS,EACtB,qBAAqB,EAAE,MAAM,qBAyC9B"}
|
@@ -13,9 +13,9 @@ exports.swapThenDeposit = swapThenDeposit;
|
|
13
13
|
const umi_1 = require("@metaplex-foundation/umi");
|
14
14
|
const services_1 = require("../services");
|
15
15
|
const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
|
16
|
-
function openSolautoPosition(client, settingParams, dca) {
|
16
|
+
function openSolautoPosition(client, settingParams, dca, positionType) {
|
17
17
|
return new services_1.TransactionItem(async () => ({
|
18
|
-
tx: client.openPositionIx(settingParams, dca),
|
18
|
+
tx: client.openPositionIx(settingParams, dca, positionType),
|
19
19
|
}), "open position");
|
20
20
|
}
|
21
21
|
function closeSolautoPosition(client) {
|
@@ -7,5 +7,5 @@ export declare function getAdditionalSigners(message: TransactionMessage): {
|
|
7
7
|
publicKey: string;
|
8
8
|
isWritable: boolean;
|
9
9
|
}[];
|
10
|
-
export declare function sendJitoBundledTransactions(umi: Umi, connection: Connection, userSigner: Signer, otherSigners: Signer[], txs: TransactionBuilder[], txType?: TransactionRunType, priorityFeeSetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<string[] | undefined>;
|
10
|
+
export declare function sendJitoBundledTransactions(umi: Umi, connection: Connection, userSigner: Signer, otherSigners: Signer[], txs: TransactionBuilder[], txType?: TransactionRunType, priorityFeeSetting?: PriorityFeeSetting, onAwaitingSign?: () => void, abortController?: AbortController): Promise<string[] | undefined>;
|
11
11
|
//# sourceMappingURL=jitoUtils.d.ts.map
|
@@ -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;
|
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;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,EAC3B,eAAe,CAAC,EAAE,eAAe,GAChC,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAqG/B"}
|
package/dist/utils/jitoUtils.js
CHANGED
@@ -181,9 +181,9 @@ async function sendJitoBundle(umi, transactions) {
|
|
181
181
|
(0, generalUtils_1.consoleLog)("Bundle ID:", bundleId);
|
182
182
|
return bundleId ? await pollBundleStatus(umi, bundleId) : [];
|
183
183
|
}
|
184
|
-
async function sendJitoBundledTransactions(umi, connection, userSigner, otherSigners, txs, txType, priorityFeeSetting = types_1.PriorityFeeSetting.Min, onAwaitingSign) {
|
184
|
+
async function sendJitoBundledTransactions(umi, connection, userSigner, otherSigners, txs, txType, priorityFeeSetting = types_1.PriorityFeeSetting.Min, onAwaitingSign, abortController) {
|
185
185
|
if (txs.length === 1) {
|
186
|
-
const resp = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(umi, connection, txs[0], txType, priorityFeeSetting, onAwaitingSign);
|
186
|
+
const resp = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(umi, connection, txs[0], txType, priorityFeeSetting, onAwaitingSign, abortController);
|
187
187
|
return resp ? [bs58_1.default.encode(resp)] : undefined;
|
188
188
|
}
|
189
189
|
(0, generalUtils_1.consoleLog)("Sending Jito bundle...");
|
@@ -195,12 +195,18 @@ async function sendJitoBundledTransactions(umi, connection, userSigner, otherSig
|
|
195
195
|
? await Promise.all(txs.map(async (x) => (await (0, solanaUtils_1.getComputeUnitPriceEstimate)(umi, x, priorityFeeSetting, true)) ?? 1000000))
|
196
196
|
: undefined;
|
197
197
|
const latestBlockhash = (await umi.rpc.getLatestBlockhash({ commitment: "confirmed" })).blockhash;
|
198
|
+
if (abortController?.signal.aborted) {
|
199
|
+
return;
|
200
|
+
}
|
198
201
|
let builtTxs = [];
|
199
202
|
let simulationResults;
|
200
203
|
if (txType !== "skip-simulation") {
|
201
204
|
builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, false, feeEstimates);
|
202
205
|
simulationResults = await simulateJitoBundle(umi, builtTxs);
|
203
206
|
}
|
207
|
+
if (abortController?.signal.aborted) {
|
208
|
+
return;
|
209
|
+
}
|
204
210
|
if (txType !== "only-simulate") {
|
205
211
|
onAwaitingSign?.();
|
206
212
|
builtTxs = await umiToVersionedTransactions(umi, latestBlockhash, userSigner, otherSigners, txs, true, feeEstimates, simulationResults
|
@@ -16,5 +16,5 @@ export declare function addTxOptimizations(umi: Umi, tx: TransactionBuilder, com
|
|
16
16
|
export declare function assembleFinalTransaction(umi: Umi, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
|
17
17
|
export declare function getQnComputeUnitPriceEstimate(umi: Umi, programId: PublicKey, blockheight?: number): Promise<any>;
|
18
18
|
export declare function getComputeUnitPriceEstimate(umi: Umi, tx: TransactionBuilder, prioritySetting: PriorityFeeSetting, useAccounts?: boolean): Promise<number | undefined>;
|
19
|
-
export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, txType?: TransactionRunType, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<Uint8Array | undefined>;
|
19
|
+
export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, txType?: TransactionRunType, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void, abortController?: AbortController): Promise<Uint8Array | undefined>;
|
20
20
|
//# sourceMappingURL=solanaUtils.d.ts.map
|
@@ -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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"}
|
@@ -251,7 +251,7 @@ async function spamSendTransactionUntilConfirmed(connection, transaction, blockh
|
|
251
251
|
}
|
252
252
|
return transactionSignature;
|
253
253
|
}
|
254
|
-
async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prioritySetting = types_1.PriorityFeeSetting.Min, onAwaitingSign) {
|
254
|
+
async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prioritySetting = types_1.PriorityFeeSetting.Min, onAwaitingSign, abortController) {
|
255
255
|
(0, generalUtils_1.consoleLog)("Sending single optimized transaction...");
|
256
256
|
(0, generalUtils_1.consoleLog)("Instructions: ", tx.getInstructions().length);
|
257
257
|
(0, generalUtils_1.consoleLog)("Serialized transaction size: ", tx.getTransactionSize(umi));
|
@@ -264,6 +264,9 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prior
|
|
264
264
|
]);
|
265
265
|
(0, generalUtils_1.consoleLog)("Unique account locks: ", Array.from(new Set(accounts)).length);
|
266
266
|
const blockhash = await connection.getLatestBlockhash("confirmed");
|
267
|
+
if (abortController?.signal.aborted) {
|
268
|
+
return;
|
269
|
+
}
|
267
270
|
let cuLimit = undefined;
|
268
271
|
if (txType !== "skip-simulation") {
|
269
272
|
const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(umi, connection, assembleFinalTransaction(umi, tx, undefined, 1400000).setBlockhash(blockhash)), 2);
|
@@ -276,6 +279,9 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prior
|
|
276
279
|
cuPrice = Math.min(cuPrice ?? 0, 100000000);
|
277
280
|
(0, generalUtils_1.consoleLog)("Compute unit price: ", cuPrice);
|
278
281
|
}
|
282
|
+
if (abortController?.signal.aborted) {
|
283
|
+
return;
|
284
|
+
}
|
279
285
|
if (txType !== "only-simulate") {
|
280
286
|
onAwaitingSign?.();
|
281
287
|
const signedTx = await assembleFinalTransaction(umi, tx, cuPrice, cuLimit)
|
package/package.json
CHANGED
@@ -12,6 +12,7 @@ import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
|
|
12
12
|
import {
|
13
13
|
DCASettingsInpArgs,
|
14
14
|
LendingPlatform,
|
15
|
+
PositionType,
|
15
16
|
PriceType,
|
16
17
|
RebalanceStep,
|
17
18
|
SolautoActionArgs,
|
@@ -340,7 +341,8 @@ export abstract class SolautoClient extends ReferralStateManager {
|
|
340
341
|
|
341
342
|
openPositionIx(
|
342
343
|
settings?: SolautoSettingsParametersInpArgs,
|
343
|
-
dca?: DCASettingsInpArgs
|
344
|
+
dca?: DCASettingsInpArgs,
|
345
|
+
positionType?: PositionType
|
344
346
|
): TransactionBuilder {
|
345
347
|
if (dca && dca.dcaInBaseUnit > 0) {
|
346
348
|
this.contextUpdates.new({
|
@@ -56,6 +56,7 @@ export interface TransactionsManagerArgs<T extends TxHandler> {
|
|
56
56
|
atomically?: boolean;
|
57
57
|
errorsToThrow?: ErrorsToThrow;
|
58
58
|
retryConfig?: RetryConfig;
|
59
|
+
abortController?: AbortController;
|
59
60
|
}
|
60
61
|
|
61
62
|
export class TransactionsManager<T extends TxHandler> {
|
@@ -70,6 +71,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
70
71
|
protected signableRetries: number;
|
71
72
|
protected totalRetries: number;
|
72
73
|
protected retryDelay: number;
|
74
|
+
protected abortController?: AbortController;
|
73
75
|
|
74
76
|
updateOracleTxName = "update oracle";
|
75
77
|
|
@@ -80,6 +82,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
80
82
|
this.priorityFeeSetting = args.priorityFeeSetting ?? PriorityFeeSetting.Min;
|
81
83
|
this.atomically = args.atomically ?? true;
|
82
84
|
this.errorsToThrow = args.errorsToThrow;
|
85
|
+
this.abortController = args.abortController;
|
83
86
|
|
84
87
|
this.lookupTables = new LookupTables(
|
85
88
|
this.txHandler.defaultLookupTables(),
|
@@ -289,7 +292,6 @@ export class TransactionsManager<T extends TxHandler> {
|
|
289
292
|
|
290
293
|
private async processTransactionsAtomically(itemSets: TransactionSet[]) {
|
291
294
|
let num = 0;
|
292
|
-
let priorityFeeSetting: PriorityFeeSetting;
|
293
295
|
let transactions: TransactionBuilder[] = [];
|
294
296
|
|
295
297
|
await retryWithExponentialBackoff(
|
@@ -303,7 +305,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
303
305
|
}
|
304
306
|
|
305
307
|
num = attemptNum;
|
306
|
-
priorityFeeSetting = this.getUpdatedPriorityFeeSetting(
|
308
|
+
this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(
|
307
309
|
prevError,
|
308
310
|
attemptNum
|
309
311
|
);
|
@@ -363,7 +365,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
363
365
|
this.txHandler.otherSigners,
|
364
366
|
transactions,
|
365
367
|
this.txRunType,
|
366
|
-
priorityFeeSetting,
|
368
|
+
this.priorityFeeSetting,
|
367
369
|
() =>
|
368
370
|
this.updateStatusForSets(
|
369
371
|
itemSets,
|
@@ -371,7 +373,8 @@ export class TransactionsManager<T extends TxHandler> {
|
|
371
373
|
attemptNum,
|
372
374
|
undefined,
|
373
375
|
true
|
374
|
-
)
|
376
|
+
),
|
377
|
+
this.abortController
|
375
378
|
);
|
376
379
|
} catch (e: any) {
|
377
380
|
error = e as Error;
|
@@ -380,7 +383,8 @@ export class TransactionsManager<T extends TxHandler> {
|
|
380
383
|
if (
|
381
384
|
error ||
|
382
385
|
(this.txRunType !== "only-simulate" &&
|
383
|
-
(!Boolean(txSigs) || txSigs?.length === 0)
|
386
|
+
(!Boolean(txSigs) || txSigs?.length === 0) &&
|
387
|
+
!this.abortController?.signal.aborted)
|
384
388
|
) {
|
385
389
|
this.updateStatusForSets(
|
386
390
|
itemSets,
|
@@ -413,7 +417,7 @@ export class TransactionsManager<T extends TxHandler> {
|
|
413
417
|
(x) =>
|
414
418
|
this.statuses.find((y) => x.name() === y.name)?.simulationSuccessful
|
415
419
|
).length === itemSets.length,
|
416
|
-
priorityFeeSetting
|
420
|
+
this.priorityFeeSetting
|
417
421
|
);
|
418
422
|
|
419
423
|
const errorString = `${errorDetails.errorName ?? "Unknown error"}: ${errorDetails.errorInfo?.split("\n")[0] ?? "unknown"}`;
|
@@ -476,11 +480,12 @@ export class TransactionsManager<T extends TxHandler> {
|
|
476
480
|
);
|
477
481
|
} else {
|
478
482
|
await this.debugAccounts(itemSet, tx);
|
483
|
+
this.priorityFeeSetting = this.getUpdatedPriorityFeeSetting(prevError, attemptNum);
|
479
484
|
await this.sendTransaction(
|
480
485
|
tx,
|
481
486
|
itemSet.name(),
|
482
487
|
attemptNum,
|
483
|
-
this.
|
488
|
+
this.priorityFeeSetting
|
484
489
|
);
|
485
490
|
}
|
486
491
|
},
|
@@ -562,7 +567,8 @@ export class TransactionsManager<T extends TxHandler> {
|
|
562
567
|
attemptNum,
|
563
568
|
undefined,
|
564
569
|
true
|
565
|
-
)
|
570
|
+
),
|
571
|
+
this.abortController
|
566
572
|
);
|
567
573
|
this.updateStatus(
|
568
574
|
txName,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { OptionOrNullable, transactionBuilder } from "@metaplex-foundation/umi";
|
2
2
|
import {
|
3
3
|
DCASettingsInpArgs,
|
4
|
+
PositionType,
|
4
5
|
SolautoSettingsParametersInpArgs,
|
5
6
|
} from "../generated";
|
6
7
|
import {
|
@@ -17,11 +18,12 @@ import { toWeb3JsPublicKey } from "@metaplex-foundation/umi-web3js-adapters";
|
|
17
18
|
export function openSolautoPosition(
|
18
19
|
client: SolautoClient,
|
19
20
|
settingParams: SolautoSettingsParametersInpArgs,
|
20
|
-
dca?: DCASettingsInpArgs
|
21
|
+
dca?: DCASettingsInpArgs,
|
22
|
+
positionType?: PositionType
|
21
23
|
) {
|
22
24
|
return new TransactionItem(
|
23
25
|
async () => ({
|
24
|
-
tx: client!.openPositionIx(settingParams, dca),
|
26
|
+
tx: client!.openPositionIx(settingParams, dca, positionType),
|
25
27
|
}),
|
26
28
|
"open position"
|
27
29
|
);
|
package/src/utils/jitoUtils.ts
CHANGED
@@ -130,7 +130,6 @@ async function simulateJitoBundle(umi: Umi, txs: VersionedTransaction[]) {
|
|
130
130
|
return transactionResults;
|
131
131
|
}
|
132
132
|
|
133
|
-
|
134
133
|
export function getAdditionalSigners(message: TransactionMessage) {
|
135
134
|
const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
|
136
135
|
|
@@ -277,7 +276,8 @@ export async function sendJitoBundledTransactions(
|
|
277
276
|
txs: TransactionBuilder[],
|
278
277
|
txType?: TransactionRunType,
|
279
278
|
priorityFeeSetting: PriorityFeeSetting = PriorityFeeSetting.Min,
|
280
|
-
onAwaitingSign?: () => void
|
279
|
+
onAwaitingSign?: () => void,
|
280
|
+
abortController?: AbortController
|
281
281
|
): Promise<string[] | undefined> {
|
282
282
|
if (txs.length === 1) {
|
283
283
|
const resp = await sendSingleOptimizedTransaction(
|
@@ -286,7 +286,8 @@ export async function sendJitoBundledTransactions(
|
|
286
286
|
txs[0],
|
287
287
|
txType,
|
288
288
|
priorityFeeSetting,
|
289
|
-
onAwaitingSign
|
289
|
+
onAwaitingSign,
|
290
|
+
abortController
|
290
291
|
);
|
291
292
|
return resp ? [base58.encode(resp)] : undefined;
|
292
293
|
}
|
@@ -303,25 +304,27 @@ export async function sendJitoBundledTransactions(
|
|
303
304
|
|
304
305
|
txs[0] = txs[0].prepend(getTipInstruction(userSigner, 150_000));
|
305
306
|
|
306
|
-
const feeEstimates =
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
)) ?? 1000000
|
317
|
-
)
|
307
|
+
const feeEstimates = usePriorityFee(priorityFeeSetting)
|
308
|
+
? await Promise.all(
|
309
|
+
txs.map(
|
310
|
+
async (x) =>
|
311
|
+
(await getComputeUnitPriceEstimate(
|
312
|
+
umi,
|
313
|
+
x,
|
314
|
+
priorityFeeSetting,
|
315
|
+
true
|
316
|
+
)) ?? 1000000
|
318
317
|
)
|
319
|
-
|
318
|
+
)
|
319
|
+
: undefined;
|
320
320
|
|
321
321
|
const latestBlockhash = (
|
322
322
|
await umi.rpc.getLatestBlockhash({ commitment: "confirmed" })
|
323
323
|
).blockhash;
|
324
324
|
|
325
|
+
if (abortController?.signal.aborted) {
|
326
|
+
return;
|
327
|
+
}
|
325
328
|
let builtTxs: VersionedTransaction[] = [];
|
326
329
|
let simulationResults: SimulatedTransactionResponse[] | undefined;
|
327
330
|
if (txType !== "skip-simulation") {
|
@@ -337,6 +340,9 @@ export async function sendJitoBundledTransactions(
|
|
337
340
|
simulationResults = await simulateJitoBundle(umi, builtTxs);
|
338
341
|
}
|
339
342
|
|
343
|
+
if (abortController?.signal.aborted) {
|
344
|
+
return;
|
345
|
+
}
|
340
346
|
if (txType !== "only-simulate") {
|
341
347
|
onAwaitingSign?.();
|
342
348
|
|
package/src/utils/solanaUtils.ts
CHANGED
@@ -432,7 +432,8 @@ export async function sendSingleOptimizedTransaction(
|
|
432
432
|
tx: TransactionBuilder,
|
433
433
|
txType?: TransactionRunType,
|
434
434
|
prioritySetting: PriorityFeeSetting = PriorityFeeSetting.Min,
|
435
|
-
onAwaitingSign?: () => void
|
435
|
+
onAwaitingSign?: () => void,
|
436
|
+
abortController?: AbortController
|
436
437
|
): Promise<Uint8Array | undefined> {
|
437
438
|
consoleLog("Sending single optimized transaction...");
|
438
439
|
consoleLog("Instructions: ", tx.getInstructions().length);
|
@@ -452,6 +453,9 @@ export async function sendSingleOptimizedTransaction(
|
|
452
453
|
|
453
454
|
const blockhash = await connection.getLatestBlockhash("confirmed");
|
454
455
|
|
456
|
+
if (abortController?.signal.aborted) {
|
457
|
+
return;
|
458
|
+
}
|
455
459
|
let cuLimit = undefined;
|
456
460
|
if (txType !== "skip-simulation") {
|
457
461
|
const simulationResult = await retryWithExponentialBackoff(
|
@@ -476,6 +480,9 @@ export async function sendSingleOptimizedTransaction(
|
|
476
480
|
consoleLog("Compute unit price: ", cuPrice);
|
477
481
|
}
|
478
482
|
|
483
|
+
if (abortController?.signal.aborted) {
|
484
|
+
return;
|
485
|
+
}
|
479
486
|
if (txType !== "only-simulate") {
|
480
487
|
onAwaitingSign?.();
|
481
488
|
const signedTx = await assembleFinalTransaction(umi, tx, cuPrice, cuLimit)
|