@haven-fi/solauto-sdk 1.0.658 → 1.0.659

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.
@@ -1 +1 @@
1
- {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionsManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,aAAa,EAQd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAM5E,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAOjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,WAAW,EAAE,OAAO,CAAS;IAC7B,SAAS,EAAE,MAAM,CAAK;gBAGb,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAOhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAwGD,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,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,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,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAc,EAC1B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAmBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IA8GzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;YA4I7B,qBAAqB;YAgDrB,eAAe;YA0Df,eAAe;CA4D9B"}
1
+ {"version":3,"file":"transactionsManager.d.ts","sourceRoot":"","sources":["../../../src/services/transactions/transactionsManager.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAElB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,aAAa,EAQd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAa,MAAM,YAAY,CAAC;AAM5E,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,OAAO,EAAE,MAAM;CAK5B;AAqCD,qBAAa,eAAe;IAOjB,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM;IATtB,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAChC,EAAE,CAAC,EAAE,kBAAkB,CAAC;IACxB,WAAW,EAAE,OAAO,CAAS;IAC7B,SAAS,EAAE,MAAM,CAAK;gBAGb,OAAO,EAAE,CACd,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,YAAA;IAGhB,UAAU;IAKV,OAAO,CAAC,UAAU,EAAE,MAAM;IAOhC,cAAc,IAAI,MAAM,EAAE;CAY3B;AAwGD,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,qBAAa,mBAAmB;IAU5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa,CAAC;IAdxB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,kBAAkB,SAAmB;gBAG3B,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,kBAAkB,GAAE,kBAA2C,EAC/D,UAAU,GAAE,OAAc,EAC1B,aAAa,CAAC,EAAE,aAAa,YAAA,EACrC,WAAW,CAAC,EAAE,WAAW;YAab,uBAAuB;IA0CrC,OAAO,CAAC,YAAY;YA6CN,aAAa;IAoB3B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,mBAAmB;YAoBb,SAAS;IAmBV,UAAU,CACrB,YAAY,EAAE,eAAe,EAAE,GAC9B,OAAO,CAAC,0BAA0B,CAAC;IAyGzB,IAAI,CACf,KAAK,EAAE,eAAe,EAAE,GACvB,OAAO,CAAC,0BAA0B,CAAC;YA8BxB,6BAA6B;YA4I7B,qBAAqB;YAgDrB,eAAe;YA0Df,eAAe;CA4D9B"}
@@ -91,7 +91,7 @@ class TransactionSet {
91
91
  return false;
92
92
  }
93
93
  const singleTx = await this.getSingleTransaction();
94
- const tx = (0, utils_1.addTxOptimizations)(this.txHandler.umi.identity, singleTx, 1, 1)
94
+ const tx = (0, utils_1.addTxOptimizations)(this.txHandler.umi, singleTx, 1, 1)
95
95
  .add(item.tx)
96
96
  .setAddressLookupTables(await this.lookupTables.getLutInputs([
97
97
  ...this.lutAddresses(),
@@ -270,10 +270,7 @@ class TransactionsManager {
270
270
  const items = [...transactions];
271
271
  const client = this.txHandler;
272
272
  const updateLut = await client.updateLookupTable();
273
- if (updateLut &&
274
- (updateLut?.new ||
275
- updateLut.accountsToAdd.length > 4 ||
276
- (client.pos.memecoinPosition && updateLut.accountsToAdd.length >= 2))) {
273
+ if (updateLut && (updateLut?.new || updateLut.accountsToAdd.length > 4)) {
277
274
  await this.updateLut(updateLut.tx, updateLut.new);
278
275
  }
279
276
  this.lookupTables.defaultLuts = client.defaultLookupTables();
@@ -2,7 +2,7 @@ import { Connection, PublicKey } from "@solana/web3.js";
2
2
  import { Signer, TransactionBuilder, Umi, TransactionMessage } from "@metaplex-foundation/umi";
3
3
  import { PriorityFeeSetting, TransactionRunType } from "../types";
4
4
  export declare function getRandomTipAccount(): PublicKey;
5
- export declare function getRequiredSigners(message: TransactionMessage): {
5
+ export declare function getAdditionalSigners(message: TransactionMessage): {
6
6
  index: number;
7
7
  publicKey: string;
8
8
  isWritable: boolean;
@@ -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;AAelE,wBAAgB,mBAAmB,IAAI,SAAS,CAG/C;AAuND,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB;;;;IAkB7D;AAED,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"}
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;AAelE,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"}
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getRandomTipAccount = getRandomTipAccount;
7
- exports.getRequiredSigners = getRequiredSigners;
7
+ exports.getAdditionalSigners = getAdditionalSigners;
8
8
  exports.sendJitoBundledTransactions = sendJitoBundledTransactions;
9
9
  const web3_js_1 = require("@solana/web3.js");
10
10
  const umi_web3js_adapters_1 = require("@metaplex-foundation/umi-web3js-adapters");
@@ -86,9 +86,24 @@ async function simulateJitoBundle(umi, txs) {
86
86
  const transactionResults = simulationResult.transactionResults;
87
87
  return transactionResults;
88
88
  }
89
+ function getAdditionalSigners(message) {
90
+ const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
91
+ const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
92
+ const signersInfo = [];
93
+ for (let i = 0; i < numRequiredSignatures; i++) {
94
+ const publicKey = message.accounts[i].toString();
95
+ const isWritable = i < numWritableSigners;
96
+ signersInfo.push({
97
+ index: i,
98
+ publicKey,
99
+ isWritable,
100
+ });
101
+ }
102
+ return signersInfo;
103
+ }
89
104
  async function umiToVersionedTransactions(umi, blockhash, userSigner, otherSigners, txs, sign, feeEstimates, computeUnitLimits) {
90
105
  let builtTxs = await Promise.all(txs.map(async (tx, i) => {
91
- return (0, solanaUtils_1.assembleFinalTransaction)(userSigner, tx, feeEstimates ? feeEstimates[i] : undefined, computeUnitLimits ? computeUnitLimits[i] : undefined)
106
+ return (0, solanaUtils_1.assembleFinalTransaction)(umi, tx, feeEstimates ? feeEstimates[i] : undefined, computeUnitLimits ? computeUnitLimits[i] : undefined)
92
107
  .setBlockhash(blockhash)
93
108
  .build(umi);
94
109
  }));
@@ -96,7 +111,7 @@ async function umiToVersionedTransactions(umi, blockhash, userSigner, otherSigne
96
111
  builtTxs = await userSigner.signAllTransactions(builtTxs);
97
112
  for (const signer of otherSigners) {
98
113
  for (let i = 0; i < builtTxs.length; i++) {
99
- const requiredSigners = getRequiredSigners(builtTxs[i].message);
114
+ const requiredSigners = getAdditionalSigners(builtTxs[i].message);
100
115
  if (requiredSigners
101
116
  .map((x) => x.publicKey)
102
117
  .includes(signer.publicKey.toString())) {
@@ -165,21 +180,6 @@ async function sendJitoBundle(umi, transactions) {
165
180
  (0, generalUtils_1.consoleLog)("Bundle ID:", bundleId);
166
181
  return bundleId ? await pollBundleStatus(umi, bundleId) : [];
167
182
  }
168
- function getRequiredSigners(message) {
169
- const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
170
- const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
171
- const signersInfo = [];
172
- for (let i = 0; i < numRequiredSignatures; i++) {
173
- const publicKey = message.accounts[i].toString();
174
- const isWritable = i < numWritableSigners;
175
- signersInfo.push({
176
- index: i,
177
- publicKey,
178
- isWritable,
179
- });
180
- }
181
- return signersInfo;
182
- }
183
183
  async function sendJitoBundledTransactions(umi, connection, userSigner, otherSigners, txs, txType, priorityFeeSetting = types_1.PriorityFeeSetting.Min, onAwaitingSign) {
184
184
  if (txs.length === 1) {
185
185
  const resp = await (0, solanaUtils_1.sendSingleOptimizedTransaction)(umi, connection, txs[0], txType, priorityFeeSetting, onAwaitingSign);
@@ -11,8 +11,8 @@ export declare function closeTokenAccountUmiIx(signer: Signer, tokenAccount: Pub
11
11
  export declare function splTokenTransferUmiIx(signer: Signer, fromTa: PublicKey, toTa: PublicKey, authority: PublicKey, amount: bigint): WrappedInstruction;
12
12
  export declare function getWalletSplBalances(conn: Connection, wallet: PublicKey, tokenMints: PublicKey[]): Promise<bigint[]>;
13
13
  export declare function getAddressLookupInputs(umi: Umi, lookupTableAddresses: string[]): Promise<AddressLookupTableInput[]>;
14
- export declare function addTxOptimizations(signer: Signer, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
15
- export declare function assembleFinalTransaction(signer: Signer, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
14
+ export declare function addTxOptimizations(umi: Umi, tx: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
15
+ export declare function assembleFinalTransaction(umi: Umi, transaction: TransactionBuilder, computeUnitPrice?: number, computeUnitLimit?: number): TransactionBuilder;
16
16
  export declare function getQnComputeUnitPriceEstimate(umi: Umi, programId: PublicKey, blockheight?: number): Promise<any>;
17
17
  export declare function getComputeUnitPriceEstimate(umi: Umi, tx: TransactionBuilder, prioritySetting: PriorityFeeSetting, useAccounts?: boolean): Promise<number | undefined>;
18
18
  export declare function sendSingleOptimizedTransaction(umi: Umi, connection: Connection, tx: TransactionBuilder, txType?: TransactionRunType, prioritySetting?: PriorityFeeSetting, onAwaitingSign?: () => void): Promise<Uint8Array | undefined>;
@@ -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,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAe9E,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,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,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,CAAC,EAAE,MAAM,sBAa1B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,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,CAuEjC"}
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,uBAAuB,EACvB,MAAM,EACN,kBAAkB,EAClB,GAAG,EACH,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAe9E,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,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,sBAmB1B;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,CAoEjC"}
@@ -99,17 +99,27 @@ async function getAddressLookupInputs(umi, lookupTableAddresses) {
99
99
  return acc;
100
100
  }, new Array());
101
101
  }
102
- function addTxOptimizations(signer, transaction, computeUnitPrice, computeUnitLimit) {
103
- return transaction
104
- .prepend(computeUnitPrice !== undefined
105
- ? setComputeUnitPriceUmiIx(signer, computeUnitPrice)
106
- : (0, umi_1.transactionBuilder)())
107
- .prepend(computeUnitLimit
108
- ? setComputeUnitLimitUmiIx(signer, computeUnitLimit)
109
- : (0, umi_1.transactionBuilder)());
102
+ function addTxOptimizations(umi, tx, computeUnitPrice, computeUnitLimit) {
103
+ const computePriceIx = computeUnitPrice !== undefined
104
+ ? setComputeUnitPriceUmiIx(umi.identity, computeUnitPrice)
105
+ : (0, umi_1.transactionBuilder)();
106
+ const computeLimitIx = computeUnitLimit
107
+ ? setComputeUnitLimitUmiIx(umi.identity, computeUnitLimit)
108
+ : (0, umi_1.transactionBuilder)();
109
+ const allOptimizations = tx.prepend(computePriceIx).prepend(computeLimitIx);
110
+ const oneOptimization = tx.prepend(computePriceIx);
111
+ if (allOptimizations.fitsInOneTransaction(umi)) {
112
+ return allOptimizations;
113
+ }
114
+ else if (oneOptimization.fitsInOneTransaction(umi)) {
115
+ return oneOptimization;
116
+ }
117
+ else {
118
+ return tx;
119
+ }
110
120
  }
111
- function assembleFinalTransaction(signer, transaction, computeUnitPrice, computeUnitLimit) {
112
- const tx = addTxOptimizations(signer, transaction, computeUnitPrice, computeUnitLimit);
121
+ function assembleFinalTransaction(umi, transaction, computeUnitPrice, computeUnitLimit) {
122
+ const tx = addTxOptimizations(umi, transaction, computeUnitPrice, computeUnitLimit);
113
123
  const marginfiStartFlSerializer = (0, marginfi_sdk_1.getLendingAccountStartFlashloanInstructionDataSerializer)();
114
124
  const marginfiStartFlDiscriminator = marginfiStartFlSerializer
115
125
  .serialize({
@@ -247,7 +257,7 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prior
247
257
  const blockhash = await connection.getLatestBlockhash("confirmed");
248
258
  let computeUnitLimit = undefined;
249
259
  if (txType !== "skip-simulation") {
250
- const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(umi, connection, assembleFinalTransaction(umi.identity, tx, undefined, 1400000).setBlockhash(blockhash)), 3);
260
+ const simulationResult = await (0, generalUtils_1.retryWithExponentialBackoff)(async () => await simulateTransaction(umi, connection, assembleFinalTransaction(umi, tx, undefined, 1400000).setBlockhash(blockhash)), 3);
251
261
  computeUnitLimit = Math.round(simulationResult.value.unitsConsumed * 1.15);
252
262
  (0, generalUtils_1.consoleLog)("Compute unit limit: ", computeUnitLimit);
253
263
  }
@@ -262,7 +272,7 @@ async function sendSingleOptimizedTransaction(umi, connection, tx, txType, prior
262
272
  }
263
273
  if (txType !== "only-simulate") {
264
274
  onAwaitingSign?.();
265
- const signedTx = await assembleFinalTransaction(umi.identity, tx, cuPrice, computeUnitLimit)
275
+ const signedTx = await assembleFinalTransaction(umi, tx, cuPrice, computeUnitLimit)
266
276
  .setBlockhash(blockhash)
267
277
  .buildAndSign(umi);
268
278
  const txSig = await spamSendTransactionUntilConfirmed(connection, (0, umi_web3js_adapters_1.toWeb3JsTransaction)(signedTx), blockhash);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haven-fi/solauto-sdk",
3
- "version": "1.0.658",
3
+ "version": "1.0.659",
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",
@@ -2,6 +2,7 @@ import bs58 from "bs58";
2
2
  import {
3
3
  PublicKey,
4
4
  TransactionExpiredBlockheightExceededError,
5
+ VersionedTransaction,
5
6
  } from "@solana/web3.js";
6
7
  import {
7
8
  AddressLookupTableInput,
@@ -154,7 +155,7 @@ class TransactionSet {
154
155
  }
155
156
 
156
157
  const singleTx = await this.getSingleTransaction();
157
- const tx = addTxOptimizations(this.txHandler.umi.identity, singleTx, 1, 1)
158
+ const tx = addTxOptimizations(this.txHandler.umi, singleTx, 1, 1)
158
159
  .add(item.tx)
159
160
  .setAddressLookupTables(
160
161
  await this.lookupTables.getLutInputs([
@@ -443,12 +444,7 @@ export class TransactionsManager {
443
444
 
444
445
  const updateLut = await client.updateLookupTable();
445
446
 
446
- if (
447
- updateLut &&
448
- (updateLut?.new ||
449
- updateLut.accountsToAdd.length > 4 ||
450
- (client.pos.memecoinPosition && updateLut.accountsToAdd.length >= 2))
451
- ) {
447
+ if (updateLut && (updateLut?.new || updateLut.accountsToAdd.length > 4)) {
452
448
  await this.updateLut(updateLut.tx, updateLut.new);
453
449
  }
454
450
  this.lookupTables.defaultLuts = client.defaultLookupTables();
@@ -129,6 +129,27 @@ async function simulateJitoBundle(umi: Umi, txs: VersionedTransaction[]) {
129
129
  return transactionResults;
130
130
  }
131
131
 
132
+
133
+ export function getAdditionalSigners(message: TransactionMessage) {
134
+ const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
135
+
136
+ const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
137
+
138
+ const signersInfo = [];
139
+ for (let i = 0; i < numRequiredSignatures; i++) {
140
+ const publicKey = message.accounts[i].toString();
141
+ const isWritable = i < numWritableSigners;
142
+
143
+ signersInfo.push({
144
+ index: i,
145
+ publicKey,
146
+ isWritable,
147
+ });
148
+ }
149
+
150
+ return signersInfo;
151
+ }
152
+
132
153
  async function umiToVersionedTransactions(
133
154
  umi: Umi,
134
155
  blockhash: string,
@@ -142,7 +163,7 @@ async function umiToVersionedTransactions(
142
163
  let builtTxs = await Promise.all(
143
164
  txs.map(async (tx, i) => {
144
165
  return assembleFinalTransaction(
145
- userSigner,
166
+ umi,
146
167
  tx,
147
168
  feeEstimates ? feeEstimates[i] : undefined,
148
169
  computeUnitLimits ? computeUnitLimits[i] : undefined
@@ -156,7 +177,7 @@ async function umiToVersionedTransactions(
156
177
  builtTxs = await userSigner.signAllTransactions(builtTxs);
157
178
  for (const signer of otherSigners) {
158
179
  for (let i = 0; i < builtTxs.length; i++) {
159
- const requiredSigners = getRequiredSigners(builtTxs[i].message);
180
+ const requiredSigners = getAdditionalSigners(builtTxs[i].message);
160
181
  if (
161
182
  requiredSigners
162
183
  .map((x) => x.publicKey)
@@ -247,26 +268,6 @@ async function sendJitoBundle(
247
268
  return bundleId ? await pollBundleStatus(umi, bundleId) : [];
248
269
  }
249
270
 
250
- export function getRequiredSigners(message: TransactionMessage) {
251
- const { numRequiredSignatures, numReadonlySignedAccounts } = message.header;
252
-
253
- const numWritableSigners = numRequiredSignatures - numReadonlySignedAccounts;
254
-
255
- const signersInfo = [];
256
- for (let i = 0; i < numRequiredSignatures; i++) {
257
- const publicKey = message.accounts[i].toString();
258
- const isWritable = i < numWritableSigners;
259
-
260
- signersInfo.push({
261
- index: i,
262
- publicKey,
263
- isWritable,
264
- });
265
- }
266
-
267
- return signersInfo;
268
- }
269
-
270
271
  export async function sendJitoBundledTransactions(
271
272
  umi: Umi,
272
273
  connection: Connection,
@@ -199,32 +199,38 @@ export async function getAddressLookupInputs(
199
199
  }
200
200
 
201
201
  export function addTxOptimizations(
202
- signer: Signer,
203
- transaction: TransactionBuilder,
202
+ umi: Umi,
203
+ tx: TransactionBuilder,
204
204
  computeUnitPrice?: number,
205
205
  computeUnitLimit?: number
206
206
  ) {
207
- return transaction
208
- .prepend(
209
- computeUnitPrice !== undefined
210
- ? setComputeUnitPriceUmiIx(signer, computeUnitPrice)
211
- : transactionBuilder()
212
- )
213
- .prepend(
214
- computeUnitLimit
215
- ? setComputeUnitLimitUmiIx(signer, computeUnitLimit)
216
- : transactionBuilder()
217
- );
207
+ const computePriceIx =
208
+ computeUnitPrice !== undefined
209
+ ? setComputeUnitPriceUmiIx(umi.identity, computeUnitPrice)
210
+ : transactionBuilder();
211
+ const computeLimitIx = computeUnitLimit
212
+ ? setComputeUnitLimitUmiIx(umi.identity, computeUnitLimit)
213
+ : transactionBuilder();
214
+
215
+ const allOptimizations = tx.prepend(computePriceIx).prepend(computeLimitIx);
216
+ const oneOptimization = tx.prepend(computePriceIx);
217
+ if (allOptimizations.fitsInOneTransaction(umi)) {
218
+ return allOptimizations;
219
+ } else if (oneOptimization.fitsInOneTransaction(umi)) {
220
+ return oneOptimization;
221
+ } else {
222
+ return tx;
223
+ }
218
224
  }
219
225
 
220
226
  export function assembleFinalTransaction(
221
- signer: Signer,
227
+ umi: Umi,
222
228
  transaction: TransactionBuilder,
223
229
  computeUnitPrice?: number,
224
230
  computeUnitLimit?: number
225
231
  ) {
226
232
  const tx = addTxOptimizations(
227
- signer,
233
+ umi,
228
234
  transaction,
229
235
  computeUnitPrice,
230
236
  computeUnitLimit
@@ -439,12 +445,9 @@ export async function sendSingleOptimizedTransaction(
439
445
  await simulateTransaction(
440
446
  umi,
441
447
  connection,
442
- assembleFinalTransaction(
443
- umi.identity,
444
- tx,
445
- undefined,
446
- 1_400_000
447
- ).setBlockhash(blockhash)
448
+ assembleFinalTransaction(umi, tx, undefined, 1_400_000).setBlockhash(
449
+ blockhash
450
+ )
448
451
  ),
449
452
  3
450
453
  );
@@ -465,7 +468,7 @@ export async function sendSingleOptimizedTransaction(
465
468
  if (txType !== "only-simulate") {
466
469
  onAwaitingSign?.();
467
470
  const signedTx = await assembleFinalTransaction(
468
- umi.identity,
471
+ umi,
469
472
  tx,
470
473
  cuPrice,
471
474
  computeUnitLimit
@@ -40,7 +40,6 @@ export async function e2eTransactionTest(
40
40
 
41
41
  await client.initialize({
42
42
  positionId: 1,
43
- new: true,
44
43
  supplyMint,
45
44
  debtMint,
46
45
  });
@@ -55,7 +54,7 @@ export async function e2eTransactionTest(
55
54
  };
56
55
 
57
56
  const supplyUsd = 100;
58
- const debtUsd = withFlashLoan ? 60 : 10;
57
+ const debtUsd = withFlashLoan ? 60 : 3;
59
58
  const [supplyPrice, debtPrice] = await fetchTokenPrices([
60
59
  supplyMint,
61
60
  debtMint,