UNPKG

@xlink-network/xlink-sdk

Version:
73 lines (72 loc) 2.13 kB
import { reselectSpendableUTXOsFactory } from "../chunk-4P3N75GA.mjs"; import { prepareTransaction } from "../chunk-STX72JIW.mjs"; import { createTransaction } from "../chunk-ATRBHFDV.mjs"; import "../chunk-QDMW3AJX.mjs"; import "../chunk-UZKY7HXV.mjs"; import "../chunk-KTUPNUM5.mjs"; import { isNotNull } from "../chunk-E5Y3FGR6.mjs"; import { isSameUTXO } from "../chunk-VA3HOX5B.mjs"; import "../chunk-YV2TZGS6.mjs"; import "../chunk-KHTJNOQE.mjs"; import "../chunk-PRLWYSC3.mjs"; import "../chunk-ZLTA3V7U.mjs"; // src/bitcoinUtils/createSendInscriptionTransaction.ts async function createSendInscriptionTransaction(options) { const opReturnData = options.opReturnData ?? []; const recipients = options.inscriptionRecipients.map((r) => ({ addressScriptPubKey: r.addressScriptPubKey, satsAmount: r.inscriptionUtxo.amount })); const selectedUTXOs = await Promise.all( options.inscriptionRecipients.map( (r) => options.getUTXOSpendable(r.inscriptionUtxo) ) ).then((utxos) => utxos.filter(isNotNull)); const { inputs, recipients: newRecipients, changeAmount } = await prepareTransaction({ recipients, changeAddressScriptPubKey: options.changeAddressScriptPubKey, opReturnData, feeRate: options.feeRate, selectedUTXOs, reselectSpendableUTXOs: reselectSpendableUTXOsFactory( options.availableFeeUtxos.filter( (u) => !selectedUTXOs.find((_u) => isSameUTXO(u, _u)) ), options.getUTXOSpendable ) }); const tx = createTransaction( inputs, newRecipients.concat( changeAmount === 0n ? [] : { addressScriptPubKey: options.changeAddressScriptPubKey, satsAmount: changeAmount } ), opReturnData ); const inscriptionCount = options.inscriptionRecipients.length; return { tx, inscriptionUtxoInputIndices: inputs.slice(0, inscriptionCount).map((_, i) => i), bitcoinUtxoInputIndices: inputs.slice(inscriptionCount).map((_, i) => i + inscriptionCount) }; } export { createSendInscriptionTransaction }; //# sourceMappingURL=createSendInscriptionTransaction.mjs.map