PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-core/dist/src/descriptor/psbt
Просмотр файла: wrap.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.toWrappedPsbt = toWrappedPsbt;
exports.toUtxoPsbt = toUtxoPsbt;
exports.finalizePsbt = finalizePsbt;
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
const utxolib = __importStar(require("@bitgo/utxo-lib"));
function toWrappedPsbt(psbt) {
if (psbt instanceof utxolib.bitgo.UtxoPsbt || psbt instanceof utxolib.Psbt) {
psbt = psbt.toBuffer();
}
if (psbt instanceof Buffer || psbt instanceof Uint8Array) {
return wasm_miniscript_1.Psbt.deserialize(psbt);
}
throw new Error('Invalid input');
}
function toUtxoPsbt(psbt, network) {
if (psbt instanceof wasm_miniscript_1.Psbt) {
psbt = psbt.serialize();
}
if (psbt instanceof Buffer || psbt instanceof Uint8Array) {
return utxolib.bitgo.UtxoPsbt.fromBuffer(Buffer.from(psbt), { network });
}
throw new Error('Invalid input');
}
/**
* Use `wasm-miniscript` to finalize a PSBT.
* Miniscript based finalization is more powerful than bitcoinjs-lib's / utxo-lib's finalization
* and can finalize more complex scripts (e.g. miniscript descriptors).
* @param psbt
*/
function finalizePsbt(psbt) {
if (utxolib.getMainnet(psbt.network) !== utxolib.networks.bitcoin) {
throw new Error('only bitcoin and testnet are supported');
}
const wrappedPsbt = toWrappedPsbt(psbt);
wrappedPsbt.finalize();
const unwrappedPsbt = toUtxoPsbt(wrappedPsbt, psbt.network);
for (let i = 0; i < psbt.data.inputs.length; i++) {
psbt.data.inputs[i] = unwrappedPsbt.data.inputs[i];
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL3BzYnQvd3JhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQVFDO0FBRUQsZ0NBUUM7QUFRRCxvQ0FVQztBQXZDRCw0REFBMEQ7QUFDMUQseURBQTJDO0FBRTNDLFNBQWdCLGFBQWEsQ0FBQyxJQUFpRTtJQUM3RixJQUFJLElBQUksWUFBWSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLFlBQVksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNFLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksSUFBSSxZQUFZLE1BQU0sSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFLENBQUM7UUFDekQsT0FBTyxzQkFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLElBQW9DLEVBQUUsT0FBd0I7SUFDdkYsSUFBSSxJQUFJLFlBQVksc0JBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksSUFBSSxZQUFZLE1BQU0sSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFLENBQUM7UUFDekQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLElBQTRCO0lBQ3ZELElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkIsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHNidCBhcyBXYXNtUHNidCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9XcmFwcGVkUHNidChwc2J0OiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHwgdXR4b2xpYi5Qc2J0IHwgQnVmZmVyIHwgVWludDhBcnJheSk6IFdhc21Qc2J0IHtcbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHx8IHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLlBzYnQpIHtcbiAgICBwc2J0ID0gcHNidC50b0J1ZmZlcigpO1xuICB9XG4gIGlmIChwc2J0IGluc3RhbmNlb2YgQnVmZmVyIHx8IHBzYnQgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgcmV0dXJuIFdhc21Qc2J0LmRlc2VyaWFsaXplKHBzYnQpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnB1dCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9VdHhvUHNidChwc2J0OiBXYXNtUHNidCB8IEJ1ZmZlciB8IFVpbnQ4QXJyYXksIG5ldHdvcms6IHV0eG9saWIuTmV0d29yayk6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBpZiAocHNidCBpbnN0YW5jZW9mIFdhc21Qc2J0KSB7XG4gICAgcHNidCA9IHBzYnQuc2VyaWFsaXplKCk7XG4gIH1cbiAgaWYgKHBzYnQgaW5zdGFuY2VvZiBCdWZmZXIgfHwgcHNidCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHtcbiAgICByZXR1cm4gdXR4b2xpYi5iaXRnby5VdHhvUHNidC5mcm9tQnVmZmVyKEJ1ZmZlci5mcm9tKHBzYnQpLCB7IG5ldHdvcmsgfSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGlucHV0Jyk7XG59XG5cbi8qKlxuICogVXNlIGB3YXNtLW1pbmlzY3JpcHRgIHRvIGZpbmFsaXplIGEgUFNCVC5cbiAqIE1pbmlzY3JpcHQgYmFzZWQgZmluYWxpemF0aW9uIGlzIG1vcmUgcG93ZXJmdWwgdGhhbiBiaXRjb2luanMtbGliJ3MgLyB1dHhvLWxpYidzIGZpbmFsaXphdGlvblxuICogYW5kIGNhbiBmaW5hbGl6ZSBtb3JlIGNvbXBsZXggc2NyaXB0cyAoZS5nLiBtaW5pc2NyaXB0IGRlc2NyaXB0b3JzKS5cbiAqIEBwYXJhbSBwc2J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5hbGl6ZVBzYnQocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCk6IHZvaWQge1xuICBpZiAodXR4b2xpYi5nZXRNYWlubmV0KHBzYnQubmV0d29yaykgIT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbikge1xuICAgIHRocm93IG5ldyBFcnJvcignb25seSBiaXRjb2luIGFuZCB0ZXN0bmV0IGFyZSBzdXBwb3J0ZWQnKTtcbiAgfVxuICBjb25zdCB3cmFwcGVkUHNidCA9IHRvV3JhcHBlZFBzYnQocHNidCk7XG4gIHdyYXBwZWRQc2J0LmZpbmFsaXplKCk7XG4gIGNvbnN0IHVud3JhcHBlZFBzYnQgPSB0b1V0eG9Qc2J0KHdyYXBwZWRQc2J0LCBwc2J0Lm5ldHdvcmspO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoOyBpKyspIHtcbiAgICBwc2J0LmRhdGEuaW5wdXRzW2ldID0gdW53cmFwcGVkUHNidC5kYXRhLmlucHV0c1tpXTtcbiAgfVxufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!