PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/sdk-core/dist/src/api

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

"use strict";
/**
 * @prettier
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.sanitizeLegacyPath = sanitizeLegacyPath;
/**
 * BitGoJS includes some custom hand-rolled bip32 derivation logic in `bitcoin.ts`, which sadly
 * has numerous bugs.
 *
 * One of the effects is that the methods accept invalid bip32 paths:
 * - the `m` prefix is ignored ('m/0' === '0')
 * - path components that cannot be parsed as base-10 numbers are mapped to `0` ('0/x' === '0/0')
 * - path components with trailing characters after numerals are accepted, trailing characters
 *   are ignored ('1x' === '1')
 *
 * This probably does not cover everything but it should cover most bugs encountered in our code.
 *
 * This method attempts to convert a "legacy path", which may be invalid, to a standard bip32 path:
 * meaning the result should be equivalent to the input path when passed to either our custom
 * derivation log or when passed to a standard bip32 library.
 *
 * @param path - legacy path
 * @return string - somewhat sanitized path that can be passed to standard bip32 libraries
 */
function sanitizeLegacyPath(path) {
    const parts = path
        .split('/')
        .filter((p) => p !== '')
        .filter((p, i) => i !== 0 || p !== 'm')
        .map((p) => {
        const hardened = p.slice(-1) === "'";
        const v = parseInt(p.slice(0, hardened ? -1 : undefined), 10);
        if (Number.isNaN(v)) {
            return '0';
        }
        return String(v) + (hardened ? "'" : '');
    });
    if (parts.length === 0) {
        throw new Error(`empty path`);
    }
    return parts.join('/');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlwMzJwYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9iaXAzMnBhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQXFCSCxnREFrQkM7QUFyQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLElBQVk7SUFDN0MsTUFBTSxLQUFLLEdBQWEsSUFBSTtTQUN6QixLQUFLLENBQUMsR0FBRyxDQUFDO1NBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztTQUN0QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNULE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7UUFDckMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUFDO0lBRUwsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuXG4vKipcbiAqIEJpdEdvSlMgaW5jbHVkZXMgc29tZSBjdXN0b20gaGFuZC1yb2xsZWQgYmlwMzIgZGVyaXZhdGlvbiBsb2dpYyBpbiBgYml0Y29pbi50c2AsIHdoaWNoIHNhZGx5XG4gKiBoYXMgbnVtZXJvdXMgYnVncy5cbiAqXG4gKiBPbmUgb2YgdGhlIGVmZmVjdHMgaXMgdGhhdCB0aGUgbWV0aG9kcyBhY2NlcHQgaW52YWxpZCBiaXAzMiBwYXRoczpcbiAqIC0gdGhlIGBtYCBwcmVmaXggaXMgaWdub3JlZCAoJ20vMCcgPT09ICcwJylcbiAqIC0gcGF0aCBjb21wb25lbnRzIHRoYXQgY2Fubm90IGJlIHBhcnNlZCBhcyBiYXNlLTEwIG51bWJlcnMgYXJlIG1hcHBlZCB0byBgMGAgKCcwL3gnID09PSAnMC8wJylcbiAqIC0gcGF0aCBjb21wb25lbnRzIHdpdGggdHJhaWxpbmcgY2hhcmFjdGVycyBhZnRlciBudW1lcmFscyBhcmUgYWNjZXB0ZWQsIHRyYWlsaW5nIGNoYXJhY3RlcnNcbiAqICAgYXJlIGlnbm9yZWQgKCcxeCcgPT09ICcxJylcbiAqXG4gKiBUaGlzIHByb2JhYmx5IGRvZXMgbm90IGNvdmVyIGV2ZXJ5dGhpbmcgYnV0IGl0IHNob3VsZCBjb3ZlciBtb3N0IGJ1Z3MgZW5jb3VudGVyZWQgaW4gb3VyIGNvZGUuXG4gKlxuICogVGhpcyBtZXRob2QgYXR0ZW1wdHMgdG8gY29udmVydCBhIFwibGVnYWN5IHBhdGhcIiwgd2hpY2ggbWF5IGJlIGludmFsaWQsIHRvIGEgc3RhbmRhcmQgYmlwMzIgcGF0aDpcbiAqIG1lYW5pbmcgdGhlIHJlc3VsdCBzaG91bGQgYmUgZXF1aXZhbGVudCB0byB0aGUgaW5wdXQgcGF0aCB3aGVuIHBhc3NlZCB0byBlaXRoZXIgb3VyIGN1c3RvbVxuICogZGVyaXZhdGlvbiBsb2cgb3Igd2hlbiBwYXNzZWQgdG8gYSBzdGFuZGFyZCBiaXAzMiBsaWJyYXJ5LlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gbGVnYWN5IHBhdGhcbiAqIEByZXR1cm4gc3RyaW5nIC0gc29tZXdoYXQgc2FuaXRpemVkIHBhdGggdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHN0YW5kYXJkIGJpcDMyIGxpYnJhcmllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVMZWdhY3lQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IHBhdGhcbiAgICAuc3BsaXQoJy8nKVxuICAgIC5maWx0ZXIoKHApID0+IHAgIT09ICcnKVxuICAgIC5maWx0ZXIoKHAsIGkpID0+IGkgIT09IDAgfHwgcCAhPT0gJ20nKVxuICAgIC5tYXAoKHApID0+IHtcbiAgICAgIGNvbnN0IGhhcmRlbmVkID0gcC5zbGljZSgtMSkgPT09IFwiJ1wiO1xuICAgICAgY29uc3QgdiA9IHBhcnNlSW50KHAuc2xpY2UoMCwgaGFyZGVuZWQgPyAtMSA6IHVuZGVmaW5lZCksIDEwKTtcbiAgICAgIGlmIChOdW1iZXIuaXNOYU4odikpIHtcbiAgICAgICAgcmV0dXJuICcwJztcbiAgICAgIH1cbiAgICAgIHJldHVybiBTdHJpbmcodikgKyAoaGFyZGVuZWQgPyBcIidcIiA6ICcnKTtcbiAgICB9KTtcblxuICBpZiAocGFydHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBlbXB0eSBwYXRoYCk7XG4gIH1cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJy8nKTtcbn1cbiJdfQ==

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


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