UNPKG

@bsv/sdk

Version:

BSV Blockchain Software Development Kit

51 lines 2.06 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const Transaction_js_1 = __importDefault(require("../transaction/Transaction.js")); const LockingScript_js_1 = __importDefault(require("../script/LockingScript.js")); /** * @method fromUtxo * * @description * This function creates a transaction input from a utxo json object * The idea being old code that uses utxos rather than sourceTranactions can convert using this. * * @deprecated * This approach is made available for compatibility only. It is deprecated in favor of using sourceTransactions * directly. It's recommended that wallets general keep transactions which store unspent outputs in their entirety, * along with corresonding Merkle paths. The reason you would keep the whole transaction is such that you can prove * the txid, and therefore its inclusion within a specific block. * * @example * const i = fromUtxo({ * txid: '434555433eaca96dff6e71a4d02febd0dd3832e5ca4e5734623ca914522e17d5', * vout: 0, * script: '51', * satoshis: 1234 * }, new P2PKH().unlock(p)) * * tx.addInput(i) * * @param utxo: jsonUtxo * @param unlockingScriptTemplate: { sign: (tx: Transaction, inputIndex: number) => Promise<UnlockingScript>, estimateLength: (tx: Transaction, inputIndex: number) => Promise<number> } * @returns */ function fromUtxo(utxo, unlockingScriptTemplate) { const sourceTransaction = new Transaction_js_1.default(0, [], [], 0); sourceTransaction.outputs = Array(utxo.vout + 1).fill(null); sourceTransaction.outputs[utxo.vout] = { satoshis: utxo.satoshis, lockingScript: LockingScript_js_1.default.fromHex(utxo.script) }; return { sourceTransaction, sourceTXID: utxo.txid, sourceOutputIndex: utxo.vout, unlockingScriptTemplate, sequence: 0xffffffff }; } exports.default = fromUtxo; //# sourceMappingURL=Utxo.js.map