@hawksightco/hawk-sdk 1.2.65 → 1.2.67

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.
@@ -169,7 +169,10 @@ export declare class Transaction {
169
169
  * @param connection - The connection to the Solana cluster.
170
170
  * @returns A new transaction metadata with the candidate user alt injected.
171
171
  */
172
- injectCandidateUserAlt(connection: web3.Connection): Promise<TransactionMetadata>;
172
+ injectCandidateUserAlt(connection: web3.Connection): Promise<{
173
+ metadata: TransactionMetadata;
174
+ withUserAlt: boolean;
175
+ }>;
173
176
  /**
174
177
  * Generate a new transaction metadata with a user alt injected.
175
178
  *
@@ -201,7 +204,7 @@ export declare class Transaction {
201
204
  * @param payer - The payer of the transaction.
202
205
  * @returns A new address lookup table.
203
206
  */
204
- createAddressLookupTable(connection: web3.Connection, payer: web3.PublicKey): Promise<[TransactionMetadata | null, web3.PublicKey | null]>;
207
+ createAddressLookupTable(connection: web3.Connection, payer: web3.PublicKey): Promise<[TransactionMetadata, web3.PublicKey]>;
205
208
  private pubkeysNotInAlt;
206
209
  /**
207
210
  * List all unique pubkeys in the instructions
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../src/classes/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../src/classes/Transaction.ts"],"names":[],"mappings":"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"}
@@ -407,12 +407,29 @@ class Transaction {
407
407
  rank.push(p.length);
408
408
  }
409
409
  if (rank.length === 0) {
410
- return yield (0, functions_1.createTxMetadata)(this.generalUtility, connection, this.payerKey.toString(), this.txMetadataResponse);
410
+ // If no user alts are found, return the original transaction metadata
411
+ console.log(`No user alts found, returning original transaction metadata`);
412
+ return {
413
+ metadata: yield (0, functions_1.createTxMetadata)(this.generalUtility, connection, this.payerKey.toString(), this.txMetadataResponse),
414
+ withUserAlt: false,
415
+ };
411
416
  }
412
417
  const highetsRank = Math.max(...rank);
413
418
  const highestRankIndex = rank.indexOf(highetsRank);
414
419
  const highestRankAlt = userAlts[highestRankIndex];
415
- return yield this.injectUserAlt(connection, highestRankAlt.key);
420
+ // Generate tx metadata with user alt injected
421
+ const metadata = yield this.injectUserAlt(connection, highestRankAlt.key);
422
+ // Serialize the transaction
423
+ const serializedTxn = metadata.transaction.versionedTransaction.serialize();
424
+ // And check if it is within the max tx size
425
+ const withinSizeLimit = serializedTxn.length < this.MAX_TX_SIZE;
426
+ // Log result
427
+ console.log(`Size limit: ${this.MAX_TX_SIZE}, Transaction size: ${serializedTxn.length}, Within size limit: ${withinSizeLimit}`);
428
+ // Return result
429
+ return {
430
+ metadata,
431
+ withUserAlt: withinSizeLimit,
432
+ };
416
433
  });
417
434
  }
418
435
  /**
@@ -503,63 +520,63 @@ class Transaction {
503
520
  // }
504
521
  const pubkeys = this.listPubkeys();
505
522
  const pubkeysNotInAlt = this.pubkeysNotInAlt(pubkeys);
506
- if (pubkeysNotInAlt.length > 0) {
507
- const userAlts = yield (0, functions_1.findUserAlts)(this.payerKey, connection);
508
- let table, lookupTable, createAltIx, extendAltIx;
509
- console.log(`userAlts:`, userAlts.map(alt => alt.key.toString()));
510
- for (const alt of userAlts) {
511
- if (alt.state.addresses.length < (256 - pubkeysNotInAlt.length)) {
512
- lookupTable = alt.key;
513
- table = alt;
514
- break;
515
- }
516
- }
517
- if (lookupTable) {
518
- const addresses = this._pubkeysNotInAlt(pubkeysNotInAlt, table).map(pubkey => new web3.PublicKey(pubkey));
519
- console.log(`addresses:`, addresses.map(address => address.toString()));
520
- if (addresses.length > 0) {
521
- extendAltIx = web3.AddressLookupTableProgram.extendLookupTable({
522
- lookupTable,
523
- authority: payer,
524
- payer,
525
- addresses,
526
- });
527
- }
523
+ const userAlts = yield (0, functions_1.findUserAlts)(this.payerKey, connection);
524
+ let table, lookupTable, createAltIx, extendAltIx;
525
+ console.log(`userAlts:`, userAlts.map(alt => alt.key.toString()));
526
+ // Find candidate alt to extend
527
+ for (const alt of userAlts) {
528
+ if (alt.state.addresses.length < (256 - pubkeysNotInAlt.length)) {
529
+ lookupTable = alt.key;
530
+ table = alt;
531
+ break;
528
532
  }
529
- else {
530
- [createAltIx, lookupTable] = web3.AddressLookupTableProgram.createLookupTable({
531
- authority: payer,
532
- payer,
533
- recentSlot: yield connection.getSlot(),
534
- });
533
+ }
534
+ // If candidate alt is found, extend it
535
+ if (lookupTable) {
536
+ const addresses = this._pubkeysNotInAlt(pubkeysNotInAlt, table).map(pubkey => new web3.PublicKey(pubkey));
537
+ console.log(`addresses:`, addresses.map(address => address.toString()));
538
+ if (addresses.length > 0) {
535
539
  extendAltIx = web3.AddressLookupTableProgram.extendLookupTable({
536
540
  lookupTable,
537
541
  authority: payer,
538
542
  payer,
539
- addresses: pubkeysNotInAlt.map(pubkey => new web3.PublicKey(pubkey)),
543
+ addresses,
540
544
  });
541
545
  }
542
- const mainInstructions = [];
543
- if (createAltIx) {
544
- mainInstructions.push(createAltIx);
545
- }
546
- if (extendAltIx) {
547
- mainInstructions.push(extendAltIx);
548
- }
549
- const meta = yield (0, functions_1.createTransactionMeta)({
550
- payer: this.payerKey,
551
- description: this.txMetadataResponse.description,
552
- addressLookupTableAddresses: [],
553
- mainInstructions,
554
- });
555
- return [
556
- yield (0, functions_1.createTxMetadata)(this.generalUtility, connection, this.payerKey.toString(), meta),
557
- lookupTable
558
- ];
559
546
  }
560
547
  else {
561
- return [null, null];
548
+ // If no candidate alt is found, create a new alt
549
+ [createAltIx, lookupTable] = web3.AddressLookupTableProgram.createLookupTable({
550
+ authority: payer,
551
+ payer,
552
+ recentSlot: yield connection.getSlot(),
553
+ });
554
+ extendAltIx = web3.AddressLookupTableProgram.extendLookupTable({
555
+ lookupTable,
556
+ authority: payer,
557
+ payer,
558
+ addresses: pubkeysNotInAlt.map(pubkey => new web3.PublicKey(pubkey)),
559
+ });
560
+ }
561
+ const mainInstructions = [];
562
+ if (createAltIx) {
563
+ mainInstructions.push(createAltIx);
564
+ }
565
+ if (extendAltIx) {
566
+ mainInstructions.push(extendAltIx);
562
567
  }
568
+ // Create transaction metadata
569
+ const meta = yield (0, functions_1.createTransactionMeta)({
570
+ payer: this.payerKey,
571
+ description: "Create / Extend address lookup table",
572
+ addressLookupTableAddresses: [],
573
+ mainInstructions,
574
+ });
575
+ // Return transaction metadata and lookup table
576
+ return [
577
+ yield (0, functions_1.createTxMetadata)(this.generalUtility, connection, this.payerKey.toString(), meta),
578
+ lookupTable
579
+ ];
563
580
  });
564
581
  }
565
582
  pubkeysNotInAlt(pubkeys) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hawksightco/hawk-sdk",
3
- "version": "1.2.65",
3
+ "version": "1.2.67",
4
4
  "description": "Hawksight v2 SDK",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": "https://github.com/ghabxph/hawk-api-client.git",