PHP WebShell

Текущая директория: /opt/BitGoJS/modules/utxo-core/dist/src/descriptor

Просмотр файла: derive.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDescriptorAtIndex = getDescriptorAtIndex;
exports.getDescriptorAtIndexCheckScript = getDescriptorAtIndexCheckScript;
const assert_1 = __importDefault(require("assert"));
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
/**
 * Get a descriptor at a specific derivation index.
 * For wildcard descriptors (containing '*'), the index is required and used for derivation.
 * For definite descriptors (not containing '*'), no index should be provided.
 * @param descriptor - The descriptor to derive from
 * @param index - The derivation index for wildcard descriptors
 * @returns A new descriptor at the specified index for wildcard descriptors, or the original descriptor for definite ones
 * @throws {Error} If index is undefined for a wildcard descriptor or if index is provided for a definite descriptor
 */
function getDescriptorAtIndex(descriptor, index) {
    (0, assert_1.default)(descriptor instanceof wasm_miniscript_1.Descriptor);
    wasm_miniscript_1.Descriptor.fromString(descriptor.toString(), 'derivable');
    descriptor = wasm_miniscript_1.Descriptor.fromStringDetectType(descriptor.toString());
    if (descriptor.hasWildcard()) {
        if (index === undefined) {
            throw new Error('Derivable descriptor requires an index');
        }
        return descriptor.atDerivationIndex(index);
    }
    else {
        if (index !== undefined) {
            throw new Error('Definite descriptor cannot be derived with index');
        }
        return descriptor;
    }
}
function getDescriptorAtIndexCheckScript(descriptor, index, script, descriptorString = descriptor.toString()) {
    (0, assert_1.default)(descriptor instanceof wasm_miniscript_1.Descriptor);
    const descriptorAtIndex = getDescriptorAtIndex(descriptor, index);
    if (!script.equals(descriptorAtIndex.scriptPubkey())) {
        throw new Error(`Script mismatch: descriptor ${descriptorString} script=${script.toString('hex')}`);
    }
    (0, assert_1.default)(descriptorAtIndex instanceof wasm_miniscript_1.Descriptor);
    return descriptorAtIndex;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvZGVyaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBYUEsb0RBZUM7QUFFRCwwRUFhQztBQTNDRCxvREFBNEI7QUFFNUIsNERBQW9EO0FBRXBEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsVUFBc0IsRUFBRSxLQUF5QjtJQUNwRixJQUFBLGdCQUFNLEVBQUMsVUFBVSxZQUFZLDRCQUFVLENBQUMsQ0FBQztJQUN6Qyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUQsVUFBVSxHQUFHLDRCQUFVLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUM3QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxDQUFDO1FBQ04sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLCtCQUErQixDQUM3QyxVQUFzQixFQUN0QixLQUF5QixFQUN6QixNQUFjLEVBQ2QsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRTtJQUV4QyxJQUFBLGdCQUFNLEVBQUMsVUFBVSxZQUFZLDRCQUFVLENBQUMsQ0FBQztJQUN6QyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsZ0JBQWdCLFdBQVcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUNELElBQUEsZ0JBQU0sRUFBQyxpQkFBaUIsWUFBWSw0QkFBVSxDQUFDLENBQUM7SUFDaEQsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBEZXNjcmlwdG9yIH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5cbi8qKlxuICogR2V0IGEgZGVzY3JpcHRvciBhdCBhIHNwZWNpZmljIGRlcml2YXRpb24gaW5kZXguXG4gKiBGb3Igd2lsZGNhcmQgZGVzY3JpcHRvcnMgKGNvbnRhaW5pbmcgJyonKSwgdGhlIGluZGV4IGlzIHJlcXVpcmVkIGFuZCB1c2VkIGZvciBkZXJpdmF0aW9uLlxuICogRm9yIGRlZmluaXRlIGRlc2NyaXB0b3JzIChub3QgY29udGFpbmluZyAnKicpLCBubyBpbmRleCBzaG91bGQgYmUgcHJvdmlkZWQuXG4gKiBAcGFyYW0gZGVzY3JpcHRvciAtIFRoZSBkZXNjcmlwdG9yIHRvIGRlcml2ZSBmcm9tXG4gKiBAcGFyYW0gaW5kZXggLSBUaGUgZGVyaXZhdGlvbiBpbmRleCBmb3Igd2lsZGNhcmQgZGVzY3JpcHRvcnNcbiAqIEByZXR1cm5zIEEgbmV3IGRlc2NyaXB0b3IgYXQgdGhlIHNwZWNpZmllZCBpbmRleCBmb3Igd2lsZGNhcmQgZGVzY3JpcHRvcnMsIG9yIHRoZSBvcmlnaW5hbCBkZXNjcmlwdG9yIGZvciBkZWZpbml0ZSBvbmVzXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgaW5kZXggaXMgdW5kZWZpbmVkIGZvciBhIHdpbGRjYXJkIGRlc2NyaXB0b3Igb3IgaWYgaW5kZXggaXMgcHJvdmlkZWQgZm9yIGEgZGVmaW5pdGUgZGVzY3JpcHRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckF0SW5kZXgoZGVzY3JpcHRvcjogRGVzY3JpcHRvciwgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZCk6IERlc2NyaXB0b3Ige1xuICBhc3NlcnQoZGVzY3JpcHRvciBpbnN0YW5jZW9mIERlc2NyaXB0b3IpO1xuICBEZXNjcmlwdG9yLmZyb21TdHJpbmcoZGVzY3JpcHRvci50b1N0cmluZygpLCAnZGVyaXZhYmxlJyk7XG4gIGRlc2NyaXB0b3IgPSBEZXNjcmlwdG9yLmZyb21TdHJpbmdEZXRlY3RUeXBlKGRlc2NyaXB0b3IudG9TdHJpbmcoKSk7XG4gIGlmIChkZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkpIHtcbiAgICBpZiAoaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEZXJpdmFibGUgZGVzY3JpcHRvciByZXF1aXJlcyBhbiBpbmRleCcpO1xuICAgIH1cbiAgICByZXR1cm4gZGVzY3JpcHRvci5hdERlcml2YXRpb25JbmRleChpbmRleCk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGVmaW5pdGUgZGVzY3JpcHRvciBjYW5ub3QgYmUgZGVyaXZlZCB3aXRoIGluZGV4Jyk7XG4gICAgfVxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yQXRJbmRleENoZWNrU2NyaXB0KFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBzY3JpcHQ6IEJ1ZmZlcixcbiAgZGVzY3JpcHRvclN0cmluZyA9IGRlc2NyaXB0b3IudG9TdHJpbmcoKVxuKTogRGVzY3JpcHRvciB7XG4gIGFzc2VydChkZXNjcmlwdG9yIGluc3RhbmNlb2YgRGVzY3JpcHRvcik7XG4gIGNvbnN0IGRlc2NyaXB0b3JBdEluZGV4ID0gZ2V0RGVzY3JpcHRvckF0SW5kZXgoZGVzY3JpcHRvciwgaW5kZXgpO1xuICBpZiAoIXNjcmlwdC5lcXVhbHMoZGVzY3JpcHRvckF0SW5kZXguc2NyaXB0UHVia2V5KCkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTY3JpcHQgbWlzbWF0Y2g6IGRlc2NyaXB0b3IgJHtkZXNjcmlwdG9yU3RyaW5nfSBzY3JpcHQ9JHtzY3JpcHQudG9TdHJpbmcoJ2hleCcpfWApO1xuICB9XG4gIGFzc2VydChkZXNjcmlwdG9yQXRJbmRleCBpbnN0YW5jZW9mIERlc2NyaXB0b3IpO1xuICByZXR1cm4gZGVzY3JpcHRvckF0SW5kZXg7XG59XG4iXX0=

Выполнить команду


Для локальной разработки. Не используйте в интернете!