PHP WebShell
Текущая директория: /opt/BitGoJS/modules/bitgo/dist/test/v2/unit/coins/utxo/util
Просмотр файла: keychains.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.keychains = exports.keychainsBase58 = exports.KeyNames = void 0;
exports.toKeychainBase58 = toKeychainBase58;
exports.toKeychainObjects = toKeychainObjects;
exports.getWalletUnspentSignerUserBitGo = getWalletUnspentSignerUserBitGo;
exports.getDefaultWalletKeys = getDefaultWalletKeys;
exports.getDefaultWalletUnspentSigner = getDefaultWalletUnspentSigner;
exports.encryptKeychain = encryptKeychain;
exports.getWalletKeys = getWalletKeys;
const sdk_api_1 = require("@bitgo/sdk-api");
const sdk_test_1 = require("@bitgo/sdk-test");
const utxo_lib_1 = require("@bitgo/utxo-lib");
function toKeychainBase58(k) {
if (k.isNeutered()) {
throw new Error(`must provide private key`);
}
return {
prv: k.toBase58(),
pub: k.neutered().toBase58(),
};
}
function toKeychainObjects(rootWalletKeys, walletPassphrase) {
return rootWalletKeys.triple.map((bip32, keyIdx) => {
const pub = bip32.neutered().toBase58();
return {
id: (0, sdk_test_1.getSeed)(pub).toString('hex'),
pub,
source: exports.KeyNames[keyIdx],
encryptedPrv: (0, sdk_api_1.encrypt)(walletPassphrase, bip32.toBase58()),
coinSpecific: {},
};
});
}
exports.KeyNames = ['user', 'backup', 'bitgo'];
exports.keychainsBase58 = [
{
pub: 'xpub661MyMwAqRbcGiQhVk1J7cD1YodF9tc5Y1B8vpTjjB1pcB1J1m1QX8fMtYP2sYqFmW6J2ra69tNoARKjvTGo9cGUrbPbJdjwrSzGGzPzWWS',
prv: 'xprv9s21ZrQH143K4ELEPiUHkUGGzmnkkRtEAnFY8S48AqUqjNg9UDh9yLLt3FcfATyCjbsMB9JCGHAD8MeBTAK1P7trFppkoswu5ZAsHYASfbk',
},
{
pub: 'xpub661MyMwAqRbcFzLXuganogQvd7MrefQQqCcJP2ZDumnCdQecf5cw1P1nD5qBz8SNS1yCLSC9VqpNUWnQU3V6qmnPt2r21oXhicQFzPA6Lby',
prv: 'xprv9s21ZrQH143K3WG4of3nSYUC55XNFCgZTyghae9cMSFDkcKU7YJgTahJMpdTY9CjCcjgSo2TJ635uUVx176BufUMBFpieKYVJD9J3VvrGRm',
},
{
pub: 'xpub661MyMwAqRbcFHpwWrzPB61U2CgBmdD21WNVM1JKUn9rEExkoGE4yafUVFbPSd78vdX8tWcEUQWaALFkU9fUbUM4Cc49DKEJSCYGRnbzCym',
prv: 'xprv9s21ZrQH143K2okUQqTNox4jUAqhNAVAeHStYcthvScsMSdcFiupRnLzdxzfJithak5Zs92FQJeeJ9Jiya63KfUNxawuMZDCp2cGT9cdMKs',
},
];
exports.keychains = exports.keychainsBase58.map(({ pub, prv }) => {
const k = utxo_lib_1.bip32.fromBase58(prv);
if (k.neutered().toBase58() !== pub) {
throw new Error(`mismatch`);
}
return k;
});
function getWalletUnspentSignerUserBitGo(keys) {
return new utxo_lib_1.bitgo.WalletUnspentSigner(keys, keys[0], keys[2]);
}
function getDefaultWalletKeys() {
return new utxo_lib_1.bitgo.RootWalletKeys(exports.keychains);
}
function getDefaultWalletUnspentSigner() {
return getWalletUnspentSignerUserBitGo(exports.keychains);
}
function encryptKeychain(password, keychain) {
return (0, sdk_api_1.encrypt)(password, keychain.prv);
}
function getWalletKeys(seed) {
return new utxo_lib_1.bitgo.RootWalletKeys(Array.from({ length: 3 }).map((_, i) => utxo_lib_1.bip32.fromSeed((0, sdk_test_1.getSeed)(`${seed}/${i}`))));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGVzdC92Mi91bml0L2NvaW5zL3V0eG8vdXRpbC9rZXljaGFpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUJBLDRDQVFDO0FBRUQsOENBV0M7QUEyQkQsMEVBSUM7QUFFRCxvREFFQztBQUVELHNFQUVDO0FBRUQsMENBRUM7QUFFRCxzQ0FJQztBQXpGRCw0Q0FBeUM7QUFDekMsOENBQTBDO0FBQzFDLDhDQUErRDtBQWlCL0QsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBaUI7SUFDaEQsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELE9BQU87UUFDTCxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtRQUNqQixHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUM3QixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLGNBQThCLEVBQUUsZ0JBQXdCO0lBQ3hGLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDakQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hDLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBQSxrQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDaEMsR0FBRztZQUNILE1BQU0sRUFBRSxnQkFBUSxDQUFDLE1BQU0sQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBQSxpQkFBTyxFQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6RCxZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRVksUUFBQSxRQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXZDLFFBQUEsZUFBZSxHQUEyQjtJQUNyRDtRQUNFLEdBQUcsRUFBRSxpSEFBaUg7UUFDdEgsR0FBRyxFQUFFLGlIQUFpSDtLQUN2SDtJQUNEO1FBQ0UsR0FBRyxFQUFFLGlIQUFpSDtRQUN0SCxHQUFHLEVBQUUsaUhBQWlIO0tBQ3ZIO0lBQ0Q7UUFDRSxHQUFHLEVBQUUsaUhBQWlIO1FBQ3RILEdBQUcsRUFBRSxpSEFBaUg7S0FDdkg7Q0FDRixDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQTJCLHVCQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUNwRixNQUFNLENBQUMsR0FBRyxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBMkIsQ0FBQztBQUU3QixTQUFnQiwrQkFBK0IsQ0FDN0MsSUFBNEI7SUFFNUIsT0FBTyxJQUFJLGdCQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CO0lBQ2xDLE9BQU8sSUFBSSxnQkFBSyxDQUFDLGNBQWMsQ0FBQyxpQkFBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELFNBQWdCLDZCQUE2QjtJQUMzQyxPQUFPLCtCQUErQixDQUFDLGlCQUFTLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFDLFFBQWdCLEVBQUUsUUFBd0I7SUFDeEUsT0FBTyxJQUFBLGlCQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLElBQVk7SUFDeEMsT0FBTyxJQUFJLGdCQUFLLENBQUMsY0FBYyxDQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsZ0JBQUssQ0FBQyxRQUFRLENBQUMsSUFBQSxrQkFBTyxFQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBMkIsQ0FDM0csQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgZW5jcnlwdCB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcbmltcG9ydCB7IGdldFNlZWQgfSBmcm9tICdAYml0Z28vc2RrLXRlc3QnO1xuaW1wb3J0IHsgYmlwMzIsIEJJUDMySW50ZXJmYWNlLCBiaXRnbyB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbnR5cGUgUm9vdFdhbGxldEtleXMgPSBiaXRnby5Sb290V2FsbGV0S2V5cztcblxuZXhwb3J0IHR5cGUgS2V5Y2hhaW5CYXNlNTggPSB7XG4gIHB1Yjogc3RyaW5nO1xuICBwcnY6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEtleURvYyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgcHViOiBzdHJpbmc7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBlbmNyeXB0ZWRQcnY6IHN0cmluZztcbiAgY29pblNwZWNpZmljOiBhbnk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9LZXljaGFpbkJhc2U1OChrOiBCSVAzMkludGVyZmFjZSk6IEtleWNoYWluQmFzZTU4IHtcbiAgaWYgKGsuaXNOZXV0ZXJlZCgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgcHJpdmF0ZSBrZXlgKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHBydjogay50b0Jhc2U1OCgpLFxuICAgIHB1Yjogay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0tleWNoYWluT2JqZWN0cyhyb290V2FsbGV0S2V5czogUm9vdFdhbGxldEtleXMsIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZyk6IEtleURvY1tdIHtcbiAgcmV0dXJuIHJvb3RXYWxsZXRLZXlzLnRyaXBsZS5tYXAoKGJpcDMyLCBrZXlJZHgpID0+IHtcbiAgICBjb25zdCBwdWIgPSBiaXAzMi5uZXV0ZXJlZCgpLnRvQmFzZTU4KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBnZXRTZWVkKHB1YikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgcHViLFxuICAgICAgc291cmNlOiBLZXlOYW1lc1trZXlJZHhdLFxuICAgICAgZW5jcnlwdGVkUHJ2OiBlbmNyeXB0KHdhbGxldFBhc3NwaHJhc2UsIGJpcDMyLnRvQmFzZTU4KCkpLFxuICAgICAgY29pblNwZWNpZmljOiB7fSxcbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IEtleU5hbWVzID0gWyd1c2VyJywgJ2JhY2t1cCcsICdiaXRnbyddO1xuXG5leHBvcnQgY29uc3Qga2V5Y2hhaW5zQmFzZTU4OiBUcmlwbGU8S2V5Y2hhaW5CYXNlNTg+ID0gW1xuICB7XG4gICAgcHViOiAneHB1YjY2MU15TXdBcVJiY0dpUWhWazFKN2NEMVlvZEY5dGM1WTFCOHZwVGpqQjFwY0IxSjFtMVFYOGZNdFlQMnNZcUZtVzZKMnJhNjl0Tm9BUktqdlRHbzljR1VyYlBiSmRqd3JTekdHelB6V1dTJyxcbiAgICBwcnY6ICd4cHJ2OXMyMVpyUUgxNDNLNEVMRVBpVUhrVUdHem1ua2tSdEVBbkZZOFM0OEFxVXFqTmc5VURoOXlMTHQzRmNmQVR5Q2pic01COUpDR0hBRDhNZUJUQUsxUDd0ckZwcGtvc3d1NVpBc0hZQVNmYmsnLFxuICB9LFxuICB7XG4gICAgcHViOiAneHB1YjY2MU15TXdBcVJiY0Z6TFh1Z2Fub2dRdmQ3TXJlZlFRcUNjSlAyWkR1bW5DZFFlY2Y1Y3cxUDFuRDVxQno4U05TMXlDTFNDOVZxcE5VV25RVTNWNnFtblB0MnIyMW9YaGljUUZ6UEE2TGJ5JyxcbiAgICBwcnY6ICd4cHJ2OXMyMVpyUUgxNDNLM1dHNG9mM25TWVVDNTVYTkZDZ1pUeWdoYWU5Y01TRkRrY0tVN1lKZ1RhaEpNcGRUWTlDakNjamdTbzJUSjYzNXVVVngxNzZCdWZVTUJGcGllS1lWSkQ5SjNWdnJHUm0nLFxuICB9LFxuICB7XG4gICAgcHViOiAneHB1YjY2MU15TXdBcVJiY0ZIcHdXcnpQQjYxVTJDZ0JtZEQyMVdOVk0xSktVbjlyRUV4a29HRTR5YWZVVkZiUFNkNzh2ZFg4dFdjRVVRV2FBTEZrVTlmVWJVTTRDYzQ5REtFSlNDWUdSbmJ6Q3ltJyxcbiAgICBwcnY6ICd4cHJ2OXMyMVpyUUgxNDNLMm9rVVFxVE5veDRqVUFxaE5BVkFlSFN0WWN0aHZTY3NNU2RjRml1cFJuTHpkeHpmSml0aGFrNVpzOTJGUUplZUo5Sml5YTYzS2ZVTnhhd3VNWkRDcDJjR1Q5Y2RNS3MnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IGtleWNoYWluczogVHJpcGxlPEJJUDMySW50ZXJmYWNlPiA9IGtleWNoYWluc0Jhc2U1OC5tYXAoKHsgcHViLCBwcnYgfSkgPT4ge1xuICBjb25zdCBrID0gYmlwMzIuZnJvbUJhc2U1OChwcnYpO1xuICBpZiAoay5uZXV0ZXJlZCgpLnRvQmFzZTU4KCkgIT09IHB1Yikge1xuICAgIHRocm93IG5ldyBFcnJvcihgbWlzbWF0Y2hgKTtcbiAgfVxuICByZXR1cm4gaztcbn0pIGFzIFRyaXBsZTxCSVAzMkludGVyZmFjZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXYWxsZXRVbnNwZW50U2lnbmVyVXNlckJpdEdvKFxuICBrZXlzOiBUcmlwbGU8QklQMzJJbnRlcmZhY2U+XG4pOiBiaXRnby5XYWxsZXRVbnNwZW50U2lnbmVyPFJvb3RXYWxsZXRLZXlzPiB7XG4gIHJldHVybiBuZXcgYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcihrZXlzLCBrZXlzWzBdLCBrZXlzWzJdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRXYWxsZXRLZXlzKCk6IFJvb3RXYWxsZXRLZXlzIHtcbiAgcmV0dXJuIG5ldyBiaXRnby5Sb290V2FsbGV0S2V5cyhrZXljaGFpbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFdhbGxldFVuc3BlbnRTaWduZXIoKTogYml0Z28uV2FsbGV0VW5zcGVudFNpZ25lcjxSb290V2FsbGV0S2V5cz4ge1xuICByZXR1cm4gZ2V0V2FsbGV0VW5zcGVudFNpZ25lclVzZXJCaXRHbyhrZXljaGFpbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jcnlwdEtleWNoYWluKHBhc3N3b3JkOiBzdHJpbmcsIGtleWNoYWluOiBLZXljaGFpbkJhc2U1OCk6IHN0cmluZyB7XG4gIHJldHVybiBlbmNyeXB0KHBhc3N3b3JkLCBrZXljaGFpbi5wcnYpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0S2V5cyhzZWVkOiBzdHJpbmcpOiBSb290V2FsbGV0S2V5cyB7XG4gIHJldHVybiBuZXcgYml0Z28uUm9vdFdhbGxldEtleXMoXG4gICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogMyB9KS5tYXAoKF8sIGkpID0+IGJpcDMyLmZyb21TZWVkKGdldFNlZWQoYCR7c2VlZH0vJHtpfWApKSkgYXMgVHJpcGxlPEJJUDMySW50ZXJmYWNlPlxuICApO1xufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!