UNPKG

@xlink-network/xlink-sdk

Version:
1 lines 1.99 kB
{"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":[]}