PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/utxo-core/dist/src/descriptor
Просмотр файла: fromFixedScriptWallet.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.getDescriptorForScriptType = getDescriptorForScriptType;
exports.getNamedDescriptorsForRootWalletKeys = getNamedDescriptorsForRootWalletKeys;
const utxolib = __importStar(require("@bitgo/utxo-lib"));
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
/** Expand a template with the given root wallet keys and chain code */
function expand(rootWalletKeys, keyIndex, chainCode) {
if (keyIndex !== 0 && keyIndex !== 1 && keyIndex !== 2) {
throw new Error('Invalid key index');
}
const xpub = rootWalletKeys.triple[keyIndex].neutered().toBase58();
const prefix = rootWalletKeys.derivationPrefixes[keyIndex];
return xpub + '/' + prefix + '/' + chainCode + '/*';
}
/**
* Get a standard output descriptor that corresponds to the proprietary HD wallet setup
* used in BitGo wallets.
* Only supports a subset of script types.
*/
function getDescriptorForScriptType(rootWalletKeys, scriptType, scope) {
const chain = scope === 'external'
? utxolib.bitgo.getExternalChainCode(scriptType)
: utxolib.bitgo.getInternalChainCode(scriptType);
const multi = {
multi: [2, ...rootWalletKeys.triple.map((_, i) => expand(rootWalletKeys, i, chain))],
};
switch (scriptType) {
case 'p2sh':
return wasm_miniscript_1.Descriptor.fromString(wasm_miniscript_1.ast.formatNode({ sh: multi }), 'derivable');
case 'p2shP2wsh':
return wasm_miniscript_1.Descriptor.fromString(wasm_miniscript_1.ast.formatNode({ sh: { wsh: multi } }), 'derivable');
case 'p2wsh':
return wasm_miniscript_1.Descriptor.fromString(wasm_miniscript_1.ast.formatNode({ wsh: multi }), 'derivable');
default:
throw new Error(`Unsupported script type ${scriptType}`);
}
}
function isSupportedScriptType(scriptType) {
return ['p2sh', 'p2shP2wsh', 'p2wsh'].includes(scriptType);
}
/**
* Get a map of named descriptors for the given root wallet keys.
* Unsupported script types will have a value of null.
* Currently supports p2sh, p2shP2wsh, and p2wsh script types.
* @param rootWalletKeys
*/
function getNamedDescriptorsForRootWalletKeys(rootWalletKeys) {
const scopes = ['external', 'internal'];
return new Map(utxolib.bitgo.outputScripts.scriptTypes2Of3.flatMap((scriptType) => scopes.map((scope) => [
`${scriptType}/${scope}`,
isSupportedScriptType(scriptType) ? getDescriptorForScriptType(rootWalletKeys, scriptType, scope) : null,
])));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbUZpeGVkU2NyaXB0V2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZnJvbUZpeGVkU2NyaXB0V2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLGdFQXNCQztBQWNELG9GQVlDO0FBbEVELHlEQUEyQztBQUMzQyw0REFBeUQ7QUFFekQsdUVBQXVFO0FBQ3ZFLFNBQVMsTUFBTSxDQUFDLGNBQTRDLEVBQUUsUUFBZ0IsRUFBRSxTQUFpQjtJQUMvRixJQUFJLFFBQVEsS0FBSyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25FLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzRCxPQUFPLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQ3RELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQ3hDLGNBQTRDLEVBQzVDLFVBQTBDLEVBQzFDLEtBQThCO0lBRTlCLE1BQU0sS0FBSyxHQUNULEtBQUssS0FBSyxVQUFVO1FBQ2xCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQztRQUNoRCxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBdUI7UUFDaEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQ3JGLENBQUM7SUFDRixRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssTUFBTTtZQUNULE9BQU8sNEJBQVUsQ0FBQyxVQUFVLENBQUMscUJBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMzRSxLQUFLLFdBQVc7WUFDZCxPQUFPLDRCQUFVLENBQUMsVUFBVSxDQUFDLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRixLQUFLLE9BQU87WUFDVixPQUFPLDRCQUFVLENBQUMsVUFBVSxDQUFDLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUU7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FDNUIsVUFBc0Q7SUFFdEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9DQUFvQyxDQUNsRCxjQUE0QztJQUU1QyxNQUFNLE1BQU0sR0FBRyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQVUsQ0FBQztJQUNqRCxPQUFPLElBQUksR0FBRyxDQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNqRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNwQixHQUFHLFVBQVUsSUFBSSxLQUFLLEVBQUU7UUFDeEIscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7S0FDekcsQ0FBQyxDQUNILENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBEZXNjcmlwdG9yLCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuLyoqIEV4cGFuZCBhIHRlbXBsYXRlIHdpdGggdGhlIGdpdmVuIHJvb3Qgd2FsbGV0IGtleXMgYW5kIGNoYWluIGNvZGUgKi9cbmZ1bmN0aW9uIGV4cGFuZChyb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cywga2V5SW5kZXg6IG51bWJlciwgY2hhaW5Db2RlOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoa2V5SW5kZXggIT09IDAgJiYga2V5SW5kZXggIT09IDEgJiYga2V5SW5kZXggIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IGluZGV4Jyk7XG4gIH1cbiAgY29uc3QgeHB1YiA9IHJvb3RXYWxsZXRLZXlzLnRyaXBsZVtrZXlJbmRleF0ubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICBjb25zdCBwcmVmaXggPSByb290V2FsbGV0S2V5cy5kZXJpdmF0aW9uUHJlZml4ZXNba2V5SW5kZXhdO1xuICByZXR1cm4geHB1YiArICcvJyArIHByZWZpeCArICcvJyArIGNoYWluQ29kZSArICcvKic7XG59XG5cbi8qKlxuICogR2V0IGEgc3RhbmRhcmQgb3V0cHV0IGRlc2NyaXB0b3IgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcHJpZXRhcnkgSEQgd2FsbGV0IHNldHVwXG4gKiB1c2VkIGluIEJpdEdvIHdhbGxldHMuXG4gKiBPbmx5IHN1cHBvcnRzIGEgc3Vic2V0IG9mIHNjcmlwdCB0eXBlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JGb3JTY3JpcHRUeXBlKFxuICByb290V2FsbGV0S2V5czogdXR4b2xpYi5iaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgc2NyaXB0VHlwZTogJ3Ayc2gnIHwgJ3Ayc2hQMndzaCcgfCAncDJ3c2gnLFxuICBzY29wZTogJ2ludGVybmFsJyB8ICdleHRlcm5hbCdcbik6IERlc2NyaXB0b3Ige1xuICBjb25zdCBjaGFpbiA9XG4gICAgc2NvcGUgPT09ICdleHRlcm5hbCdcbiAgICAgID8gdXR4b2xpYi5iaXRnby5nZXRFeHRlcm5hbENoYWluQ29kZShzY3JpcHRUeXBlKVxuICAgICAgOiB1dHhvbGliLmJpdGdvLmdldEludGVybmFsQ2hhaW5Db2RlKHNjcmlwdFR5cGUpO1xuICBjb25zdCBtdWx0aTogYXN0Lk1pbmlzY3JpcHROb2RlID0ge1xuICAgIG11bHRpOiBbMiwgLi4ucm9vdFdhbGxldEtleXMudHJpcGxlLm1hcCgoXywgaSkgPT4gZXhwYW5kKHJvb3RXYWxsZXRLZXlzLCBpLCBjaGFpbikpXSxcbiAgfTtcbiAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgY2FzZSAncDJzaCc6XG4gICAgICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgc2g6IG11bHRpIH0pLCAnZGVyaXZhYmxlJyk7XG4gICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgIHJldHVybiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoeyBzaDogeyB3c2g6IG11bHRpIH0gfSksICdkZXJpdmFibGUnKTtcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgd3NoOiBtdWx0aSB9KSwgJ2Rlcml2YWJsZScpO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNjcmlwdCB0eXBlICR7c2NyaXB0VHlwZX1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1N1cHBvcnRlZFNjcmlwdFR5cGUoXG4gIHNjcmlwdFR5cGU6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mM1xuKTogc2NyaXB0VHlwZSBpcyAncDJzaCcgfCAncDJzaFAyd3NoJyB8ICdwMndzaCcge1xuICByZXR1cm4gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCddLmluY2x1ZGVzKHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqIEdldCBhIG1hcCBvZiBuYW1lZCBkZXNjcmlwdG9ycyBmb3IgdGhlIGdpdmVuIHJvb3Qgd2FsbGV0IGtleXMuXG4gKiBVbnN1cHBvcnRlZCBzY3JpcHQgdHlwZXMgd2lsbCBoYXZlIGEgdmFsdWUgb2YgbnVsbC5cbiAqIEN1cnJlbnRseSBzdXBwb3J0cyBwMnNoLCBwMnNoUDJ3c2gsIGFuZCBwMndzaCBzY3JpcHQgdHlwZXMuXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE5hbWVkRGVzY3JpcHRvcnNGb3JSb290V2FsbGV0S2V5cyhcbiAgcm9vdFdhbGxldEtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXNcbik6IE1hcDxzdHJpbmcsIERlc2NyaXB0b3IgfCBudWxsPiB7XG4gIGNvbnN0IHNjb3BlcyA9IFsnZXh0ZXJuYWwnLCAnaW50ZXJuYWwnXSBhcyBjb25zdDtcbiAgcmV0dXJuIG5ldyBNYXAoXG4gICAgdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLnNjcmlwdFR5cGVzMk9mMy5mbGF0TWFwKChzY3JpcHRUeXBlKSA9PlxuICAgICAgc2NvcGVzLm1hcCgoc2NvcGUpID0+IFtcbiAgICAgICAgYCR7c2NyaXB0VHlwZX0vJHtzY29wZX1gLFxuICAgICAgICBpc1N1cHBvcnRlZFNjcmlwdFR5cGUoc2NyaXB0VHlwZSkgPyBnZXREZXNjcmlwdG9yRm9yU2NyaXB0VHlwZShyb290V2FsbGV0S2V5cywgc2NyaXB0VHlwZSwgc2NvcGUpIDogbnVsbCxcbiAgICAgIF0pXG4gICAgKVxuICApO1xufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!