PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/abstract-utxo/dist/src/descriptor/builder
Просмотр файла: builder.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDescriptorFromBuilder = getDescriptorFromBuilder;
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
function toXPub(k) {
if (typeof k === 'string') {
return k;
}
return k.neutered().toBase58();
}
function multi(m, n, keys, path) {
if (n < m) {
throw new Error(`Cannot create ${m} of ${n} multisig`);
}
if (keys.length < n) {
throw new Error(`Not enough keys for ${m} of ${n} multisig: keys.length=${keys.length}`);
}
keys = keys.slice(0, n);
return `multi(${m},${keys.map((k) => `${toXPub(k)}/${path}`).join(',')})`;
}
function getDescriptorString(builder) {
switch (builder.name) {
case 'Wsh2Of3':
return `wsh(${multi(2, 3, builder.keys, builder.path)})`;
case 'Wsh2Of2':
return `wsh(${multi(2, 2, builder.keys, builder.path)})`;
case 'Wsh2Of3CltvDrop':
return `wsh(and_v(r:after(${builder.locktime}),${multi(2, 3, builder.keys, builder.path)}))`;
case 'ShWsh2Of3CltvDrop':
return `sh(${getDescriptorString({ ...builder, name: 'Wsh2Of3CltvDrop' })})`;
}
throw new Error(`Unknown descriptor template: ${builder}`);
}
function getDescriptorFromBuilder(builder) {
return wasm_miniscript_1.Descriptor.fromString(getDescriptorString(builder), 'derivable');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yL2J1aWxkZXIvYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1EQSw0REFFQztBQXBERCw0REFBb0Q7QUFrQnBELFNBQVMsTUFBTSxDQUFDLENBQTBCO0lBQ3hDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsSUFBaUMsRUFBRSxJQUFZO0lBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4QixPQUFPLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsT0FBMEI7SUFDckQsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsS0FBSyxTQUFTO1lBQ1osT0FBTyxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDM0QsS0FBSyxTQUFTO1lBQ1osT0FBTyxPQUFPLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDM0QsS0FBSyxpQkFBaUI7WUFDcEIsT0FBTyxxQkFBcUIsT0FBTyxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQy9GLEtBQUssbUJBQW1CO1lBQ3RCLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUNqRixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsT0FBMEI7SUFDakUsT0FBTyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQklQMzJJbnRlcmZhY2UgfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG50eXBlIERlc2NyaXB0b3JXaXRoS2V5czxUTmFtZSBleHRlbmRzIHN0cmluZz4gPSB7XG4gIG5hbWU6IFROYW1lO1xuICBrZXlzOiBCSVAzMkludGVyZmFjZVtdO1xuICBwYXRoOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yQnVpbGRlciA9XG4gIHwgRGVzY3JpcHRvcldpdGhLZXlzPCdXc2gyT2YyJz5cbiAgfCBEZXNjcmlwdG9yV2l0aEtleXM8J1dzaDJPZjMnPlxuICAvKlxuICAgKiBUaGlzIGlzIGEgc2Vnd2l0ICh3cmFwcGVkIG9yIG5hdGl2ZSkgMm9mMyBtdWx0aXNpZyB0aGF0IGFsc28gdXNlcyBhXG4gICAqIHJlbGF0aXZlIGxvY2t0aW1lIHdpdGggYW4gT1BfRFJPUCAocmVxdWlyaW5nIGEgbWluaXNjcmlwdCBleHRlbnNpb24pLlxuICAgKiBJdCBpcyBiYXNpY2FsbHkgd2hhdCBpcyB1c2VkIGluIENvcmVEYW8gc3Rha2luZyB0cmFuc2FjdGlvbnMuXG4gICAqL1xuICB8IChEZXNjcmlwdG9yV2l0aEtleXM8J1NoV3NoMk9mM0NsdHZEcm9wJyB8ICdXc2gyT2YzQ2x0dkRyb3AnPiAmIHsgbG9ja3RpbWU6IG51bWJlciB9KTtcblxuZnVuY3Rpb24gdG9YUHViKGs6IEJJUDMySW50ZXJmYWNlIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBrID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBrO1xuICB9XG4gIHJldHVybiBrLm5ldXRlcmVkKCkudG9CYXNlNTgoKTtcbn1cblxuZnVuY3Rpb24gbXVsdGkobTogbnVtYmVyLCBuOiBudW1iZXIsIGtleXM6IEJJUDMySW50ZXJmYWNlW10gfCBzdHJpbmdbXSwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKG4gPCBtKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY3JlYXRlICR7bX0gb2YgJHtufSBtdWx0aXNpZ2ApO1xuICB9XG4gIGlmIChrZXlzLmxlbmd0aCA8IG4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE5vdCBlbm91Z2gga2V5cyBmb3IgJHttfSBvZiAke259IG11bHRpc2lnOiBrZXlzLmxlbmd0aD0ke2tleXMubGVuZ3RofWApO1xuICB9XG4gIGtleXMgPSBrZXlzLnNsaWNlKDAsIG4pO1xuICByZXR1cm4gYG11bHRpKCR7bX0sJHtrZXlzLm1hcCgoaykgPT4gYCR7dG9YUHViKGspfS8ke3BhdGh9YCkuam9pbignLCcpfSlgO1xufVxuXG5mdW5jdGlvbiBnZXREZXNjcmlwdG9yU3RyaW5nKGJ1aWxkZXI6IERlc2NyaXB0b3JCdWlsZGVyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChidWlsZGVyLm5hbWUpIHtcbiAgICBjYXNlICdXc2gyT2YzJzpcbiAgICAgIHJldHVybiBgd3NoKCR7bXVsdGkoMiwgMywgYnVpbGRlci5rZXlzLCBidWlsZGVyLnBhdGgpfSlgO1xuICAgIGNhc2UgJ1dzaDJPZjInOlxuICAgICAgcmV0dXJuIGB3c2goJHttdWx0aSgyLCAyLCBidWlsZGVyLmtleXMsIGJ1aWxkZXIucGF0aCl9KWA7XG4gICAgY2FzZSAnV3NoMk9mM0NsdHZEcm9wJzpcbiAgICAgIHJldHVybiBgd3NoKGFuZF92KHI6YWZ0ZXIoJHtidWlsZGVyLmxvY2t0aW1lfSksJHttdWx0aSgyLCAzLCBidWlsZGVyLmtleXMsIGJ1aWxkZXIucGF0aCl9KSlgO1xuICAgIGNhc2UgJ1NoV3NoMk9mM0NsdHZEcm9wJzpcbiAgICAgIHJldHVybiBgc2goJHtnZXREZXNjcmlwdG9yU3RyaW5nKHsgLi4uYnVpbGRlciwgbmFtZTogJ1dzaDJPZjNDbHR2RHJvcCcgfSl9KWA7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGRlc2NyaXB0b3IgdGVtcGxhdGU6ICR7YnVpbGRlcn1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JGcm9tQnVpbGRlcihidWlsZGVyOiBEZXNjcmlwdG9yQnVpbGRlcik6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGdldERlc2NyaXB0b3JTdHJpbmcoYnVpbGRlciksICdkZXJpdmFibGUnKTtcbn1cbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!