{"version":3,"sources":["../../src/bitcoinUtils/createSendBitcoinTransaction.ts"],"sourcesContent":["import * as btc from \"@scure/btc-signer\"\nimport { UTXOBasic } from \"./bitcoinHelpers\"\nimport { Recipient, createTransaction } from \"./createTransaction\"\nimport { prepareTransaction } from \"./prepareTransaction\"\nimport {\n  GetConfirmedSpendableUTXOFn,\n  reselectSpendableUTXOsFactory,\n} from \"./selectUTXOs\"\n\nexport async function createSendBitcoinTransaction(options: {\n  recipients: Recipient[]\n  changeAddressScriptKey: Uint8Array\n  opReturnData?: Uint8Array[]\n  feeRate: bigint\n  availableFeeUtxos: UTXOBasic[]\n  getUTXOSpendable: GetConfirmedSpendableUTXOFn\n}): Promise<{\n  tx: btc.Transaction\n}> {\n  const opReturnData = options.opReturnData ?? []\n\n  const {\n    inputs,\n    recipients: newRecipients,\n    changeAmount,\n  } = await prepareTransaction({\n    recipients: options.recipients,\n    changeAddressScriptPubKey: options.changeAddressScriptKey,\n    feeRate: options.feeRate,\n    opReturnData,\n    reselectSpendableUTXOs: reselectSpendableUTXOsFactory(\n      options.availableFeeUtxos,\n      options.getUTXOSpendable,\n    ),\n  })\n\n  const tx = createTransaction(\n    inputs,\n    newRecipients.concat(\n      changeAmount === 0n\n        ? []\n        : {\n            addressScriptPubKey: options.changeAddressScriptKey,\n            satsAmount: changeAmount,\n          },\n    ),\n    opReturnData,\n  )\n\n  return { tx }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA,eAAsB,6BAA6B,SAShD;AACD,QAAM,eAAe,QAAQ,gBAAgB,CAAC;AAE9C,QAAM;AAAA,IACJ;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACF,IAAI,MAAM,mBAAmB;AAAA,IAC3B,YAAY,QAAQ;AAAA,IACpB,2BAA2B,QAAQ;AAAA,IACnC,SAAS,QAAQ;AAAA,IACjB;AAAA,IACA,wBAAwB;AAAA,MACtB,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF,CAAC;AAED,QAAM,KAAK;AAAA,IACT;AAAA,IACA,cAAc;AAAA,MACZ,iBAAiB,KACb,CAAC,IACD;AAAA,QACE,qBAAqB,QAAQ;AAAA,QAC7B,YAAY;AAAA,MACd;AAAA,IACN;AAAA,IACA;AAAA,EACF;AAEA,SAAO,EAAE,GAAG;AACd;","names":[]}