{"version":3,"file":"tx.cjs","sources":["../../../src/tx.ts"],"sourcesContent":["import {\r\n  Connection,\r\n  Transaction,\r\n  PublicKey,\r\n  Keypair,\r\n  Commitment,\r\n  Finality,\r\n  ComputeBudgetProgram,\r\n  SendTransactionError,\r\n  VersionedTransaction,\r\n  TransactionMessage,\r\n  VersionedTransactionResponse,\r\n} from \"@solana/web3.js\";\r\nimport { DEFAULT_COMMITMENT, DEFAULT_FINALITY } from \"./pumpFun.consts.js\";\r\nimport { PriorityFee, TransactionResult } from \"./pumpFun.types.js\";\r\n\r\nexport async function sendTx(\r\n  connection: Connection,\r\n  tx: Transaction,\r\n  payer: PublicKey,\r\n  signers: Keypair[],\r\n  priorityFees?: PriorityFee,\r\n  commitment: Commitment = DEFAULT_COMMITMENT,\r\n  finality: Finality = DEFAULT_FINALITY\r\n): Promise<TransactionResult> {\r\n  let versionedTx = await buildSignedTx(\r\n    priorityFees,\r\n    tx,\r\n    connection,\r\n    payer,\r\n    commitment,\r\n    signers\r\n  );\r\n\r\n  try {\r\n    const sig = await connection.sendTransaction(versionedTx, {\r\n      skipPreflight: false,\r\n    });\r\n    console.log(\"sig:\", `https://solscan.io/tx/${sig}`);\r\n\r\n    let txResult = await getTxDetails(connection, sig, commitment, finality);\r\n    if (!txResult) {\r\n      return {\r\n        success: false,\r\n        error: \"Transaction failed\",\r\n      };\r\n    }\r\n    return {\r\n      success: true,\r\n      signature: sig,\r\n      results: txResult,\r\n    };\r\n  } catch (e) {\r\n    if (e instanceof SendTransactionError) {\r\n      let ste = e as SendTransactionError;\r\n      console.log(\"SendTransactionError\" + ste.logs);\r\n    } else {\r\n      console.error(e);\r\n    }\r\n    return {\r\n      error: e,\r\n      success: false,\r\n    };\r\n  }\r\n}\r\n\r\nexport const buildVersionedTx = async (\r\n  connection: Connection,\r\n  payer: PublicKey,\r\n  tx: Transaction,\r\n  commitment: Commitment = DEFAULT_COMMITMENT\r\n): Promise<VersionedTransaction> => {\r\n  const blockHash = (await connection.getLatestBlockhash(commitment)).blockhash;\r\n\r\n  let messageV0 = new TransactionMessage({\r\n    payerKey: payer,\r\n    recentBlockhash: blockHash,\r\n    instructions: tx.instructions,\r\n  }).compileToV0Message();\r\n\r\n  return new VersionedTransaction(messageV0);\r\n};\r\n\r\nexport const getTxDetails = async (\r\n  connection: Connection,\r\n  sig: string,\r\n  commitment: Commitment = DEFAULT_COMMITMENT,\r\n  finality: Finality = DEFAULT_FINALITY\r\n): Promise<VersionedTransactionResponse | null> => {\r\n  const latestBlockHash = await connection.getLatestBlockhash();\r\n  await connection.confirmTransaction(\r\n    {\r\n      blockhash: latestBlockHash.blockhash,\r\n      lastValidBlockHeight: latestBlockHash.lastValidBlockHeight,\r\n      signature: sig,\r\n    },\r\n    commitment\r\n  );\r\n\r\n  return connection.getTransaction(sig, {\r\n    maxSupportedTransactionVersion: 0,\r\n    commitment: finality,\r\n  });\r\n};\r\n\r\nexport async function buildSignedTx(\r\n  priorityFees: PriorityFee | undefined,\r\n  tx: Transaction,\r\n  connection: Connection,\r\n  payer: PublicKey,\r\n  commitment: Commitment,\r\n  signers: Keypair[]\r\n) {\r\n  let newTx = new Transaction();\r\n\r\n  if (priorityFees) {\r\n    const modifyComputeUnits = ComputeBudgetProgram.setComputeUnitLimit({\r\n      units: priorityFees.unitLimit,\r\n    });\r\n\r\n    const addPriorityFee = ComputeBudgetProgram.setComputeUnitPrice({\r\n      microLamports: priorityFees.unitPrice,\r\n    });\r\n    newTx.add(modifyComputeUnits);\r\n    newTx.add(addPriorityFee);\r\n  }\r\n\r\n  newTx.add(tx);\r\n\r\n  let versionedTx = await buildVersionedTx(\r\n    connection,\r\n    payer,\r\n    newTx,\r\n    commitment\r\n  );\r\n  versionedTx.sign(signers);\r\n  return versionedTx;\r\n}\r\n"],"names":["DEFAULT_COMMITMENT","DEFAULT_FINALITY","SendTransactionError","TransactionMessage","VersionedTransaction","Transaction","ComputeBudgetProgram"],"mappings":"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"}