@haven-fi/solauto-sdk 1.0.234 → 1.0.236

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,7 +5,7 @@ export declare const BASIS_POINTS = 10000;
5
5
  export declare const MIN_POSITION_STATE_FRESHNESS_SECS = 5;
6
6
  export declare const MIN_REPAY_GAP_BPS = 50;
7
7
  export declare const MIN_BOOST_GAP_BPS = 50;
8
- export declare const MIN_USD_SUPPORTED_POSITION = 500;
8
+ export declare const MIN_USD_SUPPORTED_POSITION = 1000;
9
9
  export declare const PRICES: {
10
10
  [key: string]: {
11
11
  price: number;
@@ -1 +1 @@
1
- {"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAE7E,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAC1E,eAAO,MAAM,qBAAqB,UAYR,CAAC"}
1
+ {"version":3,"file":"solautoConstants.d.ts","sourceRoot":"","sources":["../../src/constants/solautoConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,SAAS,EACV,MAAM,iBAAiB,CAAC;AASzB,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AACF,eAAO,MAAM,oBAAoB,WAEhC,CAAC;AAIF,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAO,CAAC;AAE7E,eAAO,MAAM,WAAW,iDAAiD,CAAC;AAC1E,eAAO,MAAM,qBAAqB,UAYR,CAAC"}
@@ -13,7 +13,7 @@ exports.BASIS_POINTS = 10000;
13
13
  exports.MIN_POSITION_STATE_FRESHNESS_SECS = 5;
14
14
  exports.MIN_REPAY_GAP_BPS = 50;
15
15
  exports.MIN_BOOST_GAP_BPS = 50;
16
- exports.MIN_USD_SUPPORTED_POSITION = 500;
16
+ exports.MIN_USD_SUPPORTED_POSITION = 1000;
17
17
  exports.PRICES = {};
18
18
  exports.SOLAUTO_LUT = "9D4xwZwDf46n9ft5gQxZzq3rBbdRXsXojKQLZbBdskPY";
19
19
  exports.STANDARD_LUT_ACCOUNTS = [
@@ -1 +1 @@
1
- {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAmBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAsCzD,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAO7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAqLjD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAkH7B;AA2LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,aAAa,oBA2CzE;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAiI5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG;;;;EAuDxE"}
1
+ {"version":3,"file":"transactionUtils.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,GAAG,EAGJ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,SAAS,EAA8B,MAAM,iBAAiB,CAAC;AAoBxE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAsCzD,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAO7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAqLjD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,EACtB,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAkH7B;AA2LD,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,aAAa,EACrB,EAAE,EAAE,kBAAkB,GACrB,OAAO,CAAC,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CA0BnD;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE,aAAa,oBA2CzE;AAED,wBAAsB,gCAAgC,CACpD,MAAM,EAAE,aAAa,EACrB,2BAA2B,CAAC,EAAE,MAAM,EACpC,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsH5C;AAED,wBAAsB,gCAAgC,CACpD,eAAe,EAAE,oBAAoB,EACrC,YAAY,EAAE,SAAS,EACvB,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAsC5C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,GAAG;;;;EAuDxE"}
@@ -364,11 +364,6 @@ async function buildSolautoRebalanceTransaction(client, targetLiqUtilizationRate
364
364
  }
365
365
  const values = (0, rebalanceUtils_1.getRebalanceValues)(client.solautoPositionState, client.solautoPositionSettings(), client.solautoPositionActiveDca(), (0, generalUtils_1.currentUnixSeconds)(), (0, generalUtils_1.safeGetPrice)(client.supplyMint), (0, generalUtils_1.safeGetPrice)(client.debtMint), targetLiqUtilizationRateBps);
366
366
  client.log("Rebalance values: ", values);
367
- if (targetLiqUtilizationRateBps === undefined &&
368
- (0, numberUtils_1.fromBaseUnit)(client.solautoPositionState?.netWorth.baseAmountUsdValue ?? BigInt(0), constants_1.USD_DECIMALS) < constants_1.MIN_USD_SUPPORTED_POSITION &&
369
- values.feesUsd < 0.5) {
370
- return undefined;
371
- }
372
367
  const swapDetails = (0, rebalanceUtils_1.getJupSwapRebalanceDetails)(client, values, targetLiqUtilizationRateBps, attemptNum);
373
368
  const { jupQuote, lookupTableAddresses, setupInstructions, tokenLedgerIx, swapIx, } = await (0, jupiterUtils_1.getJupSwapTransaction)(client.signer, swapDetails, attemptNum);
374
369
  const flashLoan = (0, rebalanceUtils_1.getFlashLoanDetails)(client, values, jupQuote);
@@ -36,10 +36,9 @@ export declare class TransactionsManager {
36
36
  private errorsToThrow?;
37
37
  private retries;
38
38
  private retryDelay;
39
- private confirmTimeout;
40
39
  private statuses;
41
40
  private lookupTables;
42
- constructor(txHandler: SolautoClient | ReferralStateManager, statusCallback?: ((statuses: TransactionManagerStatuses) => void) | undefined, txType?: TransactionRunType | undefined, mustBeAtomic?: boolean | undefined, errorsToThrow?: ErrorsToThrow | undefined, retries?: number, retryDelay?: number, confirmTimeout?: number);
41
+ constructor(txHandler: SolautoClient | ReferralStateManager, statusCallback?: ((statuses: TransactionManagerStatuses) => void) | undefined, txType?: TransactionRunType | undefined, mustBeAtomic?: boolean | undefined, errorsToThrow?: ErrorsToThrow | undefined, retries?: number, retryDelay?: number);
43
42
  private assembleTransactionSets;
44
43
  private updateStatus;
45
44
  private debugAccounts;
@@ -1 +1 @@
1
- {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAsC7D,qBAAa,eAAe;IAKjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IAPtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;gBAGf,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAIV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAgFD,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,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IAXxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;gBAGzB,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,YAAY,CAAC,EAAE,OAAO,YAAA,EACtB,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,OAAO,GAAE,MAAU,EACnB,UAAU,GAAE,MAAY,EACxB,cAAc,GAAE,MAAc;YAQ1B,uBAAuB;IAwCrC,OAAO,CAAC,YAAY;YA8CN,aAAa;IAoBd,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,EAC/B,eAAe,CAAC,EAAE,kBAAkB,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAyEzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,EACxB,eAAe,CAAC,EAAE,kBAAkB,EACpC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,0BAA0B,CAAC;YAwGxB,eAAe;CAmD9B"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../src/transactions/transactionsManager.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EACL,aAAa,EAEd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAsC7D,qBAAa,eAAe;IAKjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IAPtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;gBAGf,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAIV,OAAO,CAAC,UAAU,EAAE,MAAM;IAMhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAgFD,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,qBAAa,mBAAmB;IAK5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAVpB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;gBAGzB,SAAS,EAAE,aAAa,GAAG,oBAAoB,EAC/C,cAAc,CAAC,GAAE,CAAC,QAAQ,EAAE,0BAA0B,KAAK,IAAI,aAAA,EAC/D,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,YAAY,CAAC,EAAE,OAAO,YAAA,EACtB,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,OAAO,GAAE,MAAU,EACnB,UAAU,GAAE,MAAY;YAQpB,uBAAuB;IAwCrC,OAAO,CAAC,YAAY;YA8CN,aAAa;IAoBd,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,EAC/B,eAAe,CAAC,EAAE,kBAAkB,GACnC,OAAO,CAAC,0BAA0B,CAAC;IAyEzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,EACxB,eAAe,CAAC,EAAE,kBAAkB,EACpC,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,0BAA0B,CAAC;YAwGxB,eAAe;CAkD9B"}
@@ -119,7 +119,7 @@ var TransactionStatus;
119
119
  TransactionStatus["Failed"] = "Failed";
120
120
  })(TransactionStatus || (exports.TransactionStatus = TransactionStatus = {}));
121
121
  class TransactionsManager {
122
- constructor(txHandler, statusCallback, txType, mustBeAtomic, errorsToThrow, retries = 4, retryDelay = 150, confirmTimeout = 10000) {
122
+ constructor(txHandler, statusCallback, txType, mustBeAtomic, errorsToThrow, retries = 4, retryDelay = 150) {
123
123
  this.txHandler = txHandler;
124
124
  this.statusCallback = statusCallback;
125
125
  this.txType = txType;
@@ -127,7 +127,6 @@ class TransactionsManager {
127
127
  this.errorsToThrow = errorsToThrow;
128
128
  this.retries = retries;
129
129
  this.retryDelay = retryDelay;
130
- this.confirmTimeout = confirmTimeout;
131
130
  this.statuses = [];
132
131
  this.lookupTables = new LookupTables(this.txHandler.defaultLookupTables(), this.txHandler.umi);
133
132
  }
@@ -331,7 +330,7 @@ class TransactionsManager {
331
330
  async sendTransaction(tx, txName, attemptNum, prioritySetting) {
332
331
  this.updateStatus(txName, TransactionStatus.Processing, attemptNum);
333
332
  try {
334
- const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.txType, this.confirmTimeout, prioritySetting, () => this.updateStatus(txName, TransactionStatus.Processing, attemptNum, undefined, true));
333
+ const txSig = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(this.txHandler.umi, this.txHandler.connection, tx, this.txType, prioritySetting, () => this.updateStatus(txName, TransactionStatus.Processing, attemptNum, undefined, true));
335
334
  this.updateStatus(txName, TransactionStatus.Successful, attemptNum, txSig ? bs58_1.default.encode(txSig) : undefined);
336
335
  }
337
336
  catch (e) {
@@ -12,6 +12,8 @@ export interface SolautoPositionDetails {
12
12
  debtMint?: PublicKey;
13
13
  }
14
14
  export declare enum PriorityFeeSetting {
15
+ None = "None",
16
+ Min = "Min",
15
17
  Low = "Low",
16
18
  Default = "Medium",
17
19
  High = "High"
@@ -1 +1 @@
1
- {"version":3,"file":"solauto.d.ts","sourceRoot":"","sources":["../../src/types/solauto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,oBAAY,kBAAkB;IAC5B,GAAG,QAAQ;IACX,OAAO,WAAW;IAClB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC"}
1
+ {"version":3,"file":"solauto.d.ts","sourceRoot":"","sources":["../../src/types/solauto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,eAAe,CAAC;IACjC,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,oBAAY,kBAAkB;IAC5B,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,OAAO,WAAW;IAClB,IAAI,SAAS;CACd;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,GAAG,QAAQ,CAAC;AAEhF,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,kBAAkB,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PriorityFeeSetting = void 0;
4
4
  var PriorityFeeSetting;
5
5
  (function (PriorityFeeSetting) {
6
+ PriorityFeeSetting["None"] = "None";
7
+ PriorityFeeSetting["Min"] = "Min";
6
8
  PriorityFeeSetting["Low"] = "Low";
7
9
  PriorityFeeSetting["Default"] = "Medium";
8
10
  PriorityFeeSetting["High"] = "High";
@@ -12,7 +12,7 @@ export declare function systemTransferUmiIx(signer: Signer, destination: PublicK
12
12
  export declare function closeTokenAccountUmiIx(signer: Signer, tokenAccount: PublicKey, authority: PublicKey): WrappedInstruction;
13
13
  export declare function splTokenTransferUmiIx(signer: Signer, fromTa: PublicKey, toTa: PublicKey, authority: PublicKey, amount: bigint): WrappedInstruction;
14
14
  export declare function getAddressLookupInputs(umi: Umi, lookupTableAddresses: string[]): Promise<AddressLookupTableInput[]>;
15
- export declare function assembleFinalTransaction(signer: Signer, tx: TransactionBuilder, computeUnitPrice: number, computeUnitLimit?: number): TransactionBuilder;
15
+ export declare function assembleFinalTransaction(signer: Signer, tx: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
16
16
  export declare function getComputeUnitPriceEstimate(umi: Umi, tx: TransactionBuilder, prioritySetting: PriorityFeeSetting): Promise<number | undefined>;
17
- export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, txType?: TransactionRunType, confirmTimeout?: number, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<Uint8Array | undefined>;
17
+ export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, txType?: TransactionRunType, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<Uint8Array | undefined>;
18
18
  //# sourceMappingURL=solanaUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAKL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAIlE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAAgC,GAC1C,CAAC,UAAU,EAAE,GAAG,CAAC,CAQnB;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,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkBpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,CAAC,EAAE,MAAM,sBA4D1B;AAmBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB7B;AAqED,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,cAAc,GAAE,MAAc,EAC9B,eAAe,GAAE,kBAA+C,EAChE,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAyEjC"}
1
+ {"version":3,"file":"solanaUtils.d.ts","sourceRoot":"","sources":["../../src/utils/solanaUtils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAKL,UAAU,EACV,SAAS,EAKT,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAgBzB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAIlE,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,UAErD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAE3D;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,SAAgC,GAC1C,CAAC,UAAU,EAAE,GAAG,CAAC,CAQnB;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,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,GAAG,EACR,oBAAoB,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAkBpC;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,kBAAkB,EACtB,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBAgE1B;AAmBD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,kBAAkB,EACtB,eAAe,EAAE,kBAAkB,GAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB7B;AA8CD,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,kBAAkB,EACtB,MAAM,CAAC,EAAE,kBAAkB,EAC3B,eAAe,GAAE,kBAA+C,EAChE,cAAc,CAAC,EAAE,MAAM,IAAI,GAC1B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA6EjC"}
@@ -92,7 +92,9 @@ async function getAddressLookupInputs(umi, lookupTableAddresses) {
92
92
  }
93
93
  function assembleFinalTransaction(signer, tx, computeUnitPrice, computeUnitLimit) {
94
94
  tx = tx
95
- .prepend(setComputeUnitPriceUmiIx(signer, computeUnitPrice))
95
+ .prepend(computeUnitPrice !== undefined
96
+ ? setComputeUnitPriceUmiIx(signer, computeUnitPrice)
97
+ : (0, umi_1.transactionBuilder)())
96
98
  .prepend(computeUnitLimit
97
99
  ? setComputeUnitLimitUmiIx(signer, computeUnitLimit)
98
100
  : (0, umi_1.transactionBuilder)());
@@ -164,73 +166,54 @@ async function getComputeUnitPriceEstimate(umi, tx, prioritySetting) {
164
166
  }
165
167
  return feeEstimate;
166
168
  }
167
- async function spamSendTransactionUntilConfirmed(connection, transaction, blockhash, confirmTimeout = 10000, spamInterval = 1000) {
168
- let spamAttempts = 0;
169
+ async function spamSendTransactionUntilConfirmed(connection, transaction, blockhash, spamInterval = 1000) {
169
170
  let confirmed = false;
170
171
  let transactionSignature = null;
171
- return new Promise((resolve, reject) => {
172
- const spamSend = async () => {
173
- if (confirmed) {
174
- return;
175
- }
176
- try {
177
- const txSignature = await connection.sendRawTransaction(Buffer.from(transaction.serialize()), { skipPreflight: true, maxRetries: 0 });
178
- transactionSignature = txSignature;
179
- (0, generalUtils_1.consoleLog)(`Transaction sent`);
180
- }
181
- catch (error) {
182
- (0, generalUtils_1.consoleLog)("Error sending transaction:", error);
183
- }
184
- spamAttempts++;
185
- if (!confirmed) {
186
- setTimeout(spamSend, spamInterval);
187
- }
188
- };
189
- const confirmTransaction = async () => {
190
- if (transactionSignature) {
191
- try {
192
- const { value } = await connection.confirmTransaction({
193
- ...blockhash,
194
- signature: transactionSignature,
195
- });
196
- if (value.err) {
197
- reject(value.err);
198
- }
199
- confirmed = true;
200
- resolve(transactionSignature);
201
- }
202
- catch (error) {
203
- (0, generalUtils_1.consoleLog)("Error during confirmation:", error);
204
- }
205
- }
206
- if (!confirmed) {
207
- setTimeout(confirmTransaction, 1000);
208
- }
209
- };
210
- spamSend();
211
- confirmTransaction();
212
- setTimeout(() => {
213
- if (!confirmed) {
214
- reject(new Error("Failed to confirm transaction within timeout"));
215
- }
216
- }, confirmTimeout);
172
+ const sendTx = async () => {
173
+ try {
174
+ const txSignature = await connection.sendRawTransaction(Buffer.from(transaction.serialize()), { skipPreflight: true, maxRetries: 0 });
175
+ transactionSignature = txSignature;
176
+ (0, generalUtils_1.consoleLog)(`Transaction sent`);
177
+ }
178
+ catch (error) {
179
+ (0, generalUtils_1.consoleLog)("Error sending transaction:", error);
180
+ }
181
+ };
182
+ await sendTx();
183
+ const sendIntervalId = setInterval(async () => {
184
+ await sendTx();
185
+ }, spamInterval);
186
+ if (!transactionSignature) {
187
+ throw new Error("Failed to send");
188
+ }
189
+ await connection
190
+ .confirmTransaction({
191
+ ...blockhash,
192
+ signature: transactionSignature,
193
+ })
194
+ .finally(() => {
195
+ clearInterval(sendIntervalId);
217
196
  });
197
+ return transactionSignature;
218
198
  }
219
- async function sendSingleOptimizedTransaction(umi, connection, tx, txType, confirmTimeout = 10000, prioritySetting = types_1.PriorityFeeSetting.Default, onAwaitingSign) {
199
+ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prioritySetting = types_1.PriorityFeeSetting.Default, onAwaitingSign) {
220
200
  (0, generalUtils_1.consoleLog)("Sending single optimized transaction...");
221
201
  (0, generalUtils_1.consoleLog)("Instructions: ", tx.getInstructions().length);
222
202
  (0, generalUtils_1.consoleLog)("Serialized transaction size: ", tx.getTransactionSize(umi));
223
- let cuPrice = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
224
- if (!cuPrice) {
225
- cuPrice = 1000000;
203
+ let cuPrice;
204
+ if (prioritySetting !== types_1.PriorityFeeSetting.None) {
205
+ cuPrice = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
206
+ if (!cuPrice) {
207
+ cuPrice = 1000000;
208
+ }
209
+ (0, generalUtils_1.consoleLog)("Compute unit price: ", cuPrice);
226
210
  }
227
- (0, generalUtils_1.consoleLog)("Compute unit price: ", cuPrice);
228
211
  let computeUnitLimit = undefined;
229
212
  if (txType !== "skip-simulation") {
230
213
  // TODO: we should only retry simulation if it's not a solauto error
231
214
  const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(await (await assembleFinalTransaction(umi.identity, tx, cuPrice, 1400000).setLatestBlockhash(umi)).build(umi))), 3);
232
215
  simulationResult.value.err;
233
- computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.05);
216
+ computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.1);
234
217
  (0, generalUtils_1.consoleLog)("Compute unit limit: ", computeUnitLimit);
235
218
  }
236
219
  if (txType !== "only-simulate") {
@@ -248,11 +231,12 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, confi
248
231
  // },
249
232
  // confirm: { commitment: "confirmed" },
250
233
  // });
234
+ // const txSig = bs58.encode(result.signature);
251
235
  const blockhash = await connection.getLatestBlockhash("confirmed");
252
236
  const signedTx = await assembleFinalTransaction(umi.identity, tx, cuPrice, computeUnitLimit)
253
237
  .setBlockhash(blockhash)
254
238
  .buildAndSign(umi);
255
- const txSig = await spamSendTransactionUntilConfirmed(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(signedTx), blockhash, confirmTimeout);
239
+ const txSig = await spamSendTransactionUntilConfirmed(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(signedTx), blockhash);
256
240
  (0, generalUtils_1.consoleLog)(`Transaction signature: ${txSig}`);
257
241
  (0, generalUtils_1.consoleLog)(`https://solscan.io/tx/${txSig}`);
258
242
  return bs58_1.default.decode(txSig);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.234",
3
+ "version": "1.0.236",
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",
@@ -27,7 +27,7 @@ export const BASIS_POINTS = 10000;
27
27
  export const MIN_POSITION_STATE_FRESHNESS_SECS = 5;
28
28
  export const MIN_REPAY_GAP_BPS = 50;
29
29
  export const MIN_BOOST_GAP_BPS = 50;
30
- export const MIN_USD_SUPPORTED_POSITION = 500;
30
+ export const MIN_USD_SUPPORTED_POSITION = 1000;
31
31
 
32
32
  export const PRICES: { [key: string]: { price: number; time: number } } = {};
33
33
 
@@ -15,6 +15,7 @@ import {
15
15
  import {
16
16
  InvalidRebalanceConditionError,
17
17
  LendingPlatform,
18
+ RebalanceDirection,
18
19
  SolautoAction,
19
20
  SolautoRebalanceType,
20
21
  TokenType,
@@ -665,17 +666,6 @@ export async function buildSolautoRebalanceTransaction(
665
666
  );
666
667
  client.log("Rebalance values: ", values);
667
668
 
668
- if (
669
- targetLiqUtilizationRateBps === undefined &&
670
- fromBaseUnit(
671
- client.solautoPositionState?.netWorth.baseAmountUsdValue ?? BigInt(0),
672
- USD_DECIMALS
673
- ) < MIN_USD_SUPPORTED_POSITION &&
674
- values.feesUsd < 0.5
675
- ) {
676
- return undefined;
677
- }
678
-
679
669
  const swapDetails = getJupSwapRebalanceDetails(
680
670
  client,
681
671
  values,
@@ -200,7 +200,6 @@ export class TransactionsManager {
200
200
  private errorsToThrow?: ErrorsToThrow,
201
201
  private retries: number = 4,
202
202
  private retryDelay: number = 150,
203
- private confirmTimeout: number = 10000
204
203
  ) {
205
204
  this.lookupTables = new LookupTables(
206
205
  this.txHandler.defaultLookupTables(),
@@ -511,7 +510,6 @@ export class TransactionsManager {
511
510
  this.txHandler.connection,
512
511
  tx,
513
512
  this.txType,
514
- this.confirmTimeout,
515
513
  prioritySetting,
516
514
  () =>
517
515
  this.updateStatus(
@@ -14,6 +14,8 @@ export interface SolautoPositionDetails {
14
14
  }
15
15
 
16
16
  export enum PriorityFeeSetting {
17
+ None = "None",
18
+ Min = "Min",
17
19
  Low = "Low",
18
20
  Default = "Medium",
19
21
  High = "High",
@@ -184,11 +184,15 @@ export async function getAddressLookupInputs(
184
184
  export function assembleFinalTransaction(
185
185
  signer: Signer,
186
186
  tx: TransactionBuilder,
187
- computeUnitPrice: number,
187
+ computeUnitPrice?: number,
188
188
  computeUnitLimit?: number
189
189
  ) {
190
190
  tx = tx
191
- .prepend(setComputeUnitPriceUmiIx(signer, computeUnitPrice))
191
+ .prepend(
192
+ computeUnitPrice !== undefined
193
+ ? setComputeUnitPriceUmiIx(signer, computeUnitPrice)
194
+ : transactionBuilder()
195
+ )
192
196
  .prepend(
193
197
  computeUnitLimit
194
198
  ? setComputeUnitLimitUmiIx(signer, computeUnitLimit)
@@ -296,67 +300,44 @@ async function spamSendTransactionUntilConfirmed(
296
300
  connection: Connection,
297
301
  transaction: Transaction | VersionedTransaction,
298
302
  blockhash: BlockhashWithExpiryBlockHeight,
299
- confirmTimeout: number = 10000,
300
303
  spamInterval: number = 1000
301
304
  ): Promise<string> {
302
- let spamAttempts = 0;
303
305
  let confirmed = false;
304
306
  let transactionSignature: string | null = null;
305
307
 
306
- return new Promise<string>((resolve, reject) => {
307
- const spamSend = async () => {
308
- if (confirmed) {
309
- return;
310
- }
308
+ const sendTx = async () => {
309
+ try {
310
+ const txSignature = await connection.sendRawTransaction(
311
+ Buffer.from(transaction.serialize()),
312
+ { skipPreflight: true, maxRetries: 0 }
313
+ );
314
+ transactionSignature = txSignature;
315
+ consoleLog(`Transaction sent`);
316
+ } catch (error) {
317
+ consoleLog("Error sending transaction:", error);
318
+ }
319
+ };
311
320
 
312
- try {
313
- const txSignature = await connection.sendRawTransaction(
314
- Buffer.from(transaction.serialize()),
315
- { skipPreflight: true, maxRetries: 0 }
316
- );
317
- transactionSignature = txSignature;
318
- consoleLog(`Transaction sent`);
319
- } catch (error) {
320
- consoleLog("Error sending transaction:", error);
321
- }
321
+ await sendTx();
322
322
 
323
- spamAttempts++;
324
- if (!confirmed) {
325
- setTimeout(spamSend, spamInterval);
326
- }
327
- };
328
-
329
- const confirmTransaction = async () => {
330
- if (transactionSignature) {
331
- try {
332
- const { value } = await connection.confirmTransaction({
333
- ...blockhash,
334
- signature: transactionSignature,
335
- });
336
- if (value.err) {
337
- reject(value.err);
338
- }
339
- confirmed = true;
340
- resolve(transactionSignature);
341
- } catch (error) {
342
- consoleLog("Error during confirmation:", error);
343
- }
344
- }
323
+ const sendIntervalId = setInterval(async () => {
324
+ await sendTx();
325
+ }, spamInterval);
345
326
 
346
- if (!confirmed) {
347
- setTimeout(confirmTransaction, 1000);
348
- }
349
- };
327
+ if (!transactionSignature) {
328
+ throw new Error("Failed to send");
329
+ }
350
330
 
351
- spamSend();
352
- confirmTransaction();
331
+ await connection
332
+ .confirmTransaction({
333
+ ...blockhash,
334
+ signature: transactionSignature,
335
+ })
336
+ .finally(() => {
337
+ clearInterval(sendIntervalId);
338
+ });
353
339
 
354
- setTimeout(() => {
355
- if (!confirmed) {
356
- reject(new Error("Failed to confirm transaction within timeout"));
357
- }
358
- }, confirmTimeout);
359
- });
340
+ return transactionSignature;
360
341
  }
361
342
 
362
343
  export async function sendSingleOptimizedTransaction(
@@ -364,7 +345,6 @@ export async function sendSingleOptimizedTransaction(
364
345
  connection: Connection,
365
346
  tx: TransactionBuilder,
366
347
  txType?: TransactionRunType,
367
- confirmTimeout: number = 10000,
368
348
  prioritySetting: PriorityFeeSetting = PriorityFeeSetting.Default,
369
349
  onAwaitingSign?: () => void
370
350
  ): Promise<Uint8Array | undefined> {
@@ -372,11 +352,14 @@ export async function sendSingleOptimizedTransaction(
372
352
  consoleLog("Instructions: ", tx.getInstructions().length);
373
353
  consoleLog("Serialized transaction size: ", tx.getTransactionSize(umi));
374
354
 
375
- let cuPrice = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
376
- if (!cuPrice) {
377
- cuPrice = 1000000;
355
+ let cuPrice: number | undefined;
356
+ if (prioritySetting !== PriorityFeeSetting.None) {
357
+ cuPrice = await getComputeUnitPriceEstimate(umi, tx, prioritySetting);
358
+ if (!cuPrice) {
359
+ cuPrice = 1000000;
360
+ }
361
+ consoleLog("Compute unit price: ", cuPrice);
378
362
  }
379
- consoleLog("Compute unit price: ", cuPrice);
380
363
 
381
364
  let computeUnitLimit = undefined;
382
365
  if (txType !== "skip-simulation") {
@@ -399,7 +382,7 @@ export async function sendSingleOptimizedTransaction(
399
382
  3
400
383
  );
401
384
  simulationResult.value.err;
402
- computeUnitLimit = Math.round(simulationResult.value.unitsConsumed! * 1.05);
385
+ computeUnitLimit = Math.round(simulationResult.value.unitsConsumed! * 1.1);
403
386
  consoleLog("Compute unit limit: ", computeUnitLimit);
404
387
  }
405
388
 
@@ -418,6 +401,8 @@ export async function sendSingleOptimizedTransaction(
418
401
  // },
419
402
  // confirm: { commitment: "confirmed" },
420
403
  // });
404
+ // const txSig = bs58.encode(result.signature);
405
+
421
406
  const blockhash = await connection.getLatestBlockhash("confirmed");
422
407
  const signedTx = await assembleFinalTransaction(
423
408
  umi.identity,
@@ -431,7 +416,6 @@ export async function sendSingleOptimizedTransaction(
431
416
  connection,
432
417
  toWeb3JsTransaction(signedTx),
433
418
  blockhash,
434
- confirmTimeout
435
419
  );
436
420
 
437
421
  consoleLog(`Transaction signature: ${txSig}`);
@@ -20,7 +20,7 @@ import {
20
20
  TransactionsManager,
21
21
  } from "../../src/transactions/transactionsManager";
22
22
  import { PublicKey } from "@solana/web3.js";
23
- import { SOLAUTO_TEST_PROGRAM, USDC } from "../../src/constants";
23
+ import { USDC } from "../../src/constants";
24
24
  import { buildHeliusApiUrl } from "../../src/utils";
25
25
  import { PriorityFeeSetting } from "../../src/types";
26
26
 
@@ -35,7 +35,7 @@ describe("Solauto Marginfi tests", async () => {
35
35
  it("open - deposit - borrow - rebalance to 0 - withdraw - close", async () => {
36
36
  const client = new SolautoMarginfiClient(
37
37
  buildHeliusApiUrl(process.env.HELIUS_API_KEY!),
38
- true,
38
+ true
39
39
  );
40
40
 
41
41
  const supply = NATIVE_MINT;
@@ -45,7 +45,7 @@ describe("Solauto Marginfi tests", async () => {
45
45
  await client.initialize({
46
46
  signer,
47
47
  positionId,
48
- authority: new PublicKey("AprYCPiVeKMCgjQ2ZufwChMzvQ5kFjJo2ekTLSkXsQDm"),
48
+ authority: new PublicKey("rC5dMP5dmSsfQ66rynzfFzuc122Eex9h1RJHVDkeH6D"),
49
49
  // marginfiAccount: new PublicKey(
50
50
  // "4nNvUXF5YqHFcH2nGweSiuvy1ct7V5FXfoCLKFYUN36z"
51
51
  // ),
@@ -55,36 +55,34 @@ describe("Solauto Marginfi tests", async () => {
55
55
 
56
56
  const transactionItems: TransactionItem[] = [];
57
57
  // const settingParams: SolautoSettingsParametersInpArgs = {
58
- // boostToBps: 4000,
59
- // boostGap: 500,
60
- // repayToBps: 7456,
61
- // repayGap: 500,
58
+ // boostToBps: 6950,
59
+ // boostGap: 100,
60
+ // repayToBps: 7000,
61
+ // repayGap: 100,
62
62
  // automation: none(),
63
63
  // targetBoostToBps: none(),
64
64
  // };
65
65
 
66
66
  // if (client.solautoPositionData === null) {
67
- // transactionItems.push(
68
- // new TransactionItem(async () => {
69
- // return {
70
- // tx: client.openPosition(settingParams),
71
- // };
72
- // }, "open position")
73
- // );
67
+ // transactionItems.push(
68
+ // new TransactionItem(async () => {
69
+ // return {
70
+ // tx: client.openPosition(settingParams),
71
+ // };
72
+ // }, "open position")
73
+ // );
74
74
 
75
- // const initialSupplyUsd = 150;
76
- // transactionItems.push(
77
- // new TransactionItem(async () => {
78
- // const [supplyPrice] = await fetchTokenPrices([supply]);
79
- // return {
80
- // tx: client.protocolInteraction(
81
- // solautoAction("Deposit", [
82
- // toBaseUnit(initialSupplyUsd / supplyPrice, supplyDecimals),
83
- // ])
84
- // ),
85
- // };
86
- // }, "deposit")
87
- // );
75
+ // // const initialSupplyUsd = 150;
76
+ // transactionItems.push(
77
+ // new TransactionItem(async () => {
78
+ // // const [supplyPrice] = await fetchTokenPrices([supply]);
79
+ // return {
80
+ // tx: client.protocolInteraction(
81
+ // solautoAction("Deposit", [toBaseUnit(9, supplyDecimals)])
82
+ // ),
83
+ // };
84
+ // }, "deposit")
85
+ // );
88
86
  // }
89
87
 
90
88
  // const maxLtvBps = client.solautoPositionState!.maxLtvBps;
@@ -111,20 +109,6 @@ describe("Solauto Marginfi tests", async () => {
111
109
  // )
112
110
  // );
113
111
 
114
- // const initialSupplyUsd = 50;
115
- // transactionItems.push(
116
- // new TransactionItem(async () => {
117
- // const [supplyPrice] = await fetchTokenPrices([supply]);
118
- // return {
119
- // tx: client.protocolInteraction(
120
- // solautoAction("Deposit", [
121
- // toBaseUnit(initialSupplyUsd / supplyPrice, supplyDecimals),
122
- // ])
123
- // ),
124
- // };
125
- // }, "deposit")
126
- // );
127
-
128
112
  transactionItems.push(
129
113
  new TransactionItem(
130
114
  async (attemptNum) =>
@@ -157,7 +141,7 @@ describe("Solauto Marginfi tests", async () => {
157
141
  client,
158
142
  undefined,
159
143
  !payForTransactions ? "only-simulate" : "normal",
160
- useJitoBundle,
161
- ).clientSend(transactionItems, PriorityFeeSetting.Default);
144
+ useJitoBundle
145
+ ).clientSend(transactionItems, PriorityFeeSetting.Min);
162
146
  });
163
147
  });