PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-lib/dist/test/bitgo/wallet
Просмотр файла: WalletKeys.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const assert = require("assert");
const bitgo_1 = require("../../../src/bitgo");
const testutil_1 = require("../../../src/testutil");
describe('WalletKeys', function () {
let defaultWalletKeys;
let exoticWalletKeys;
let defaultWalletKeysDerived;
let exoticWalletKeysDerived;
function mapBase58(k) {
return k.triple.map((k) => k.toBase58());
}
before('setup derivations', function () {
defaultWalletKeys = (0, testutil_1.getDefaultWalletKeys)();
defaultWalletKeysDerived = defaultWalletKeys.deriveForChainAndIndex(1, 2);
exoticWalletKeys = new bitgo_1.RootWalletKeys(defaultWalletKeys.triple, [
'99/99',
bitgo_1.RootWalletKeys.defaultPrefix,
bitgo_1.RootWalletKeys.defaultPrefix,
]);
exoticWalletKeysDerived = exoticWalletKeys.deriveForChainAndIndex(1, 2);
});
it('does not accept duplicate keys', function () {
const [a, b, c] = defaultWalletKeys.triple;
assert.throws(() => {
new bitgo_1.WalletKeys([a, b, b]);
});
assert.throws(() => {
new bitgo_1.WalletKeys([a, a, c]);
});
});
function assertEqlDerivedPaths(root, derived, chain, index, expectedPaths) {
const paths = root.triple.map((k) => root.getDerivationPath(k, chain, index));
assert.deepStrictEqual(paths, expectedPaths);
assert.deepStrictEqual(paths, derived.paths);
}
it('derives to expected values for default wallet keys', function () {
assertEqlDerivedPaths(defaultWalletKeys, defaultWalletKeysDerived, 1, 2, ['0/0/1/2', '0/0/1/2', '0/0/1/2']);
assert.deepStrictEqual(mapBase58(defaultWalletKeysDerived), [
'xprv9zz8umnxxQR63smXBW8YkywRjpchgxuuUH1iJg5ViS8QwZmNuBCbkx69Bzyijwcvsthd3zF8FCy74FU3DC1gYKtzPinfPF5iWJwarkhHinS',
'xprvA1gzohJxuwdy7UtoYwTA8pbskksjiywygp6LUJXW133TJn6ad2KX6XRGsV33nVYKqzsVZGq5h56u5NNkVFKmfMkn7Xqjen3MpZs8XdxABKQ',
'xprv9zuZc2cWHuBL7PJyppMtjCtsRz5QKaGfrPKBgA1SsHMZHxNzC3ZaJYDSYzcuSwwf6duVWQvBs4CcwMknC9mQieFKqKpwc3Yo2hpusjMsZJi',
]);
});
it('derives to expected values for exotic wallet keys', function () {
assertEqlDerivedPaths(exoticWalletKeys, exoticWalletKeysDerived, 1, 2, ['99/99/1/2', '0/0/1/2', '0/0/1/2']);
assert.deepStrictEqual(mapBase58(exoticWalletKeysDerived), [
'xprvA22MDSEU9wGJWzCGXQVFdYfcoTmhsXqQpMzGpLCG1Ad7txFp4bbbu1rckowNRVL96kH5rSWgmkaoJMgrgUuds7sQax5jdjqsXKauWAcvp3V',
mapBase58(defaultWalletKeysDerived)[1],
mapBase58(defaultWalletKeysDerived)[2],
]);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2FsbGV0S2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvYml0Z28vd2FsbGV0L1dhbGxldEtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFFakMsOENBQW1GO0FBQ25GLG9EQUE2RDtBQUU3RCxRQUFRLENBQUMsWUFBWSxFQUFFO0lBQ3JCLElBQUksaUJBQWlDLENBQUM7SUFDdEMsSUFBSSxnQkFBZ0MsQ0FBQztJQUNyQyxJQUFJLHdCQUEyQyxDQUFDO0lBQ2hELElBQUksdUJBQTBDLENBQUM7SUFFL0MsU0FBUyxTQUFTLENBQUMsQ0FBYTtRQUM5QixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQixFQUFFO1FBQzFCLGlCQUFpQixHQUFHLElBQUEsK0JBQW9CLEdBQUUsQ0FBQztRQUMzQyx3QkFBd0IsR0FBRyxpQkFBaUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFMUUsZ0JBQWdCLEdBQUcsSUFBSSxzQkFBYyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtZQUM5RCxPQUFPO1lBQ1Asc0JBQWMsQ0FBQyxhQUFhO1lBQzVCLHNCQUFjLENBQUMsYUFBYTtTQUM3QixDQUFDLENBQUM7UUFDSCx1QkFBdUIsR0FBRyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsZ0NBQWdDLEVBQUU7UUFDbkMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksa0JBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksa0JBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxxQkFBcUIsQ0FDNUIsSUFBb0IsRUFDcEIsT0FBMEIsRUFDMUIsS0FBYSxFQUNiLEtBQWEsRUFDYixhQUF1QjtRQUV2QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RSxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEVBQUUsQ0FBQyxvREFBb0QsRUFBRTtRQUN2RCxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVHLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDMUQsaUhBQWlIO1lBQ2pILGlIQUFpSDtZQUNqSCxpSEFBaUg7U0FDbEgsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbURBQW1ELEVBQUU7UUFDdEQscUJBQXFCLENBQUMsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM1RyxNQUFNLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO1lBQ3pELGlIQUFpSDtZQUNqSCxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgRGVyaXZlZFdhbGxldEtleXMsIFJvb3RXYWxsZXRLZXlzLCBXYWxsZXRLZXlzIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2JpdGdvJztcbmltcG9ydCB7IGdldERlZmF1bHRXYWxsZXRLZXlzIH0gZnJvbSAnLi4vLi4vLi4vc3JjL3Rlc3R1dGlsJztcblxuZGVzY3JpYmUoJ1dhbGxldEtleXMnLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBkZWZhdWx0V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXM7XG4gIGxldCBleG90aWNXYWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cztcbiAgbGV0IGRlZmF1bHRXYWxsZXRLZXlzRGVyaXZlZDogRGVyaXZlZFdhbGxldEtleXM7XG4gIGxldCBleG90aWNXYWxsZXRLZXlzRGVyaXZlZDogRGVyaXZlZFdhbGxldEtleXM7XG5cbiAgZnVuY3Rpb24gbWFwQmFzZTU4KGs6IFdhbGxldEtleXMpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGsudHJpcGxlLm1hcCgoaykgPT4gay50b0Jhc2U1OCgpKTtcbiAgfVxuXG4gIGJlZm9yZSgnc2V0dXAgZGVyaXZhdGlvbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgZGVmYXVsdFdhbGxldEtleXMgPSBnZXREZWZhdWx0V2FsbGV0S2V5cygpO1xuICAgIGRlZmF1bHRXYWxsZXRLZXlzRGVyaXZlZCA9IGRlZmF1bHRXYWxsZXRLZXlzLmRlcml2ZUZvckNoYWluQW5kSW5kZXgoMSwgMik7XG5cbiAgICBleG90aWNXYWxsZXRLZXlzID0gbmV3IFJvb3RXYWxsZXRLZXlzKGRlZmF1bHRXYWxsZXRLZXlzLnRyaXBsZSwgW1xuICAgICAgJzk5Lzk5JyxcbiAgICAgIFJvb3RXYWxsZXRLZXlzLmRlZmF1bHRQcmVmaXgsXG4gICAgICBSb290V2FsbGV0S2V5cy5kZWZhdWx0UHJlZml4LFxuICAgIF0pO1xuICAgIGV4b3RpY1dhbGxldEtleXNEZXJpdmVkID0gZXhvdGljV2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KDEsIDIpO1xuICB9KTtcblxuICBpdCgnZG9lcyBub3QgYWNjZXB0IGR1cGxpY2F0ZSBrZXlzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IFthLCBiLCBjXSA9IGRlZmF1bHRXYWxsZXRLZXlzLnRyaXBsZTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IHtcbiAgICAgIG5ldyBXYWxsZXRLZXlzKFthLCBiLCBiXSk7XG4gICAgfSk7XG4gICAgYXNzZXJ0LnRocm93cygoKSA9PiB7XG4gICAgICBuZXcgV2FsbGV0S2V5cyhbYSwgYSwgY10pO1xuICAgIH0pO1xuICB9KTtcblxuICBmdW5jdGlvbiBhc3NlcnRFcWxEZXJpdmVkUGF0aHMoXG4gICAgcm9vdDogUm9vdFdhbGxldEtleXMsXG4gICAgZGVyaXZlZDogRGVyaXZlZFdhbGxldEtleXMsXG4gICAgY2hhaW46IG51bWJlcixcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIGV4cGVjdGVkUGF0aHM6IHN0cmluZ1tdXG4gICkge1xuICAgIGNvbnN0IHBhdGhzID0gcm9vdC50cmlwbGUubWFwKChrKSA9PiByb290LmdldERlcml2YXRpb25QYXRoKGssIGNoYWluLCBpbmRleCkpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGF0aHMsIGV4cGVjdGVkUGF0aHMpO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwocGF0aHMsIGRlcml2ZWQucGF0aHMpO1xuICB9XG5cbiAgaXQoJ2Rlcml2ZXMgdG8gZXhwZWN0ZWQgdmFsdWVzIGZvciBkZWZhdWx0IHdhbGxldCBrZXlzJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydEVxbERlcml2ZWRQYXRocyhkZWZhdWx0V2FsbGV0S2V5cywgZGVmYXVsdFdhbGxldEtleXNEZXJpdmVkLCAxLCAyLCBbJzAvMC8xLzInLCAnMC8wLzEvMicsICcwLzAvMS8yJ10pO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwobWFwQmFzZTU4KGRlZmF1bHRXYWxsZXRLZXlzRGVyaXZlZCksIFtcbiAgICAgICd4cHJ2OXp6OHVtbnh4UVI2M3NtWEJXOFlreXdSanBjaGd4dXVVSDFpSmc1VmlTOFF3Wm1OdUJDYmt4NjlCenlpandjdnN0aGQzekY4RkN5NzRGVTNEQzFnWUt0elBpbmZQRjVpV0p3YXJraEhpblMnLFxuICAgICAgJ3hwcnZBMWd6b2hKeHV3ZHk3VXRvWXdUQThwYnNra3NqaXl3eWdwNkxVSlhXMTMzVEpuNmFkMktYNlhSR3NWMzNuVllLcXpzVlpHcTVoNTZ1NU5Oa1ZGS21mTWtuN1hxamVuM01wWnM4WGR4QUJLUScsXG4gICAgICAneHBydjl6dVpjMmNXSHVCTDdQSnlwcE10akN0c1J6NVFLYUdmclBLQmdBMVNzSE1aSHhOekMzWmFKWURTWXpjdVN3d2Y2ZHVWV1F2QnM0Q2N3TWtuQzltUWllRktxS3B3YzNZbzJocHVzak1zWkppJyxcbiAgICBdKTtcbiAgfSk7XG5cbiAgaXQoJ2Rlcml2ZXMgdG8gZXhwZWN0ZWQgdmFsdWVzIGZvciBleG90aWMgd2FsbGV0IGtleXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgYXNzZXJ0RXFsRGVyaXZlZFBhdGhzKGV4b3RpY1dhbGxldEtleXMsIGV4b3RpY1dhbGxldEtleXNEZXJpdmVkLCAxLCAyLCBbJzk5Lzk5LzEvMicsICcwLzAvMS8yJywgJzAvMC8xLzInXSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChtYXBCYXNlNTgoZXhvdGljV2FsbGV0S2V5c0Rlcml2ZWQpLCBbXG4gICAgICAneHBydkEyMk1EU0VVOXdHSld6Q0dYUVZGZFlmY29UbWhzWHFRcE16R3BMQ0cxQWQ3dHhGcDRiYmJ1MXJja293TlJWTDk2a0g1clNXZ21rYW9KTWdyZ1V1ZHM3c1FheDVqZGpxc1hLYXVXQWN2cDNWJyxcbiAgICAgIG1hcEJhc2U1OChkZWZhdWx0V2FsbGV0S2V5c0Rlcml2ZWQpWzFdLFxuICAgICAgbWFwQmFzZTU4KGRlZmF1bHRXYWxsZXRLZXlzRGVyaXZlZClbMl0sXG4gICAgXSk7XG4gIH0pO1xufSk7XG4iXX0=Выполнить команду
Для локальной разработки. Не используйте в интернете!