PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-ton/dist/test/unit
Просмотр файла: keyPair.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const src_1 = require("../../src");
const utils_1 = __importDefault(require("../../src/lib/utils"));
const should_1 = __importDefault(require("should"));
const sdk_core_1 = require("@bitgo/sdk-core");
const sdk_lib_mpc_1 = require("@bitgo/sdk-lib-mpc");
describe('Ton KeyPair', function () {
let rootKeychain;
let rootPublicKey;
let MPC;
let hdTree;
before(async () => {
hdTree = await sdk_lib_mpc_1.Ed25519Bip32HdTree.initialize();
MPC = await sdk_core_1.Eddsa.initialize(hdTree);
const A = MPC.keyShare(1, 2, 3);
const B = MPC.keyShare(2, 2, 3);
const C = MPC.keyShare(3, 2, 3);
const A_combine = MPC.keyCombine(A.uShare, [B.yShares[1], C.yShares[1]]);
const commonKeychain = A_combine.pShare.y + A_combine.pShare.chaincode;
rootKeychain = MPC.deriveUnhardened(commonKeychain, 'm/0');
rootPublicKey = Buffer.from(rootKeychain, 'hex').slice(0, 32).toString('hex');
});
describe('should create a valid KeyPair', () => {
it('from an empty value', async () => {
const keyPair = new src_1.KeyPair();
should_1.default.exists(keyPair.getKeys().prv);
should_1.default.exists(keyPair.getKeys().pub);
const address = await utils_1.default.getAddressFromPublicKey(keyPair.getKeys().pub);
should_1.default.exists(address);
});
});
describe('Keypair from derived Public Key', () => {
it('should create keypair with just derived public key', () => {
const keyPair = new src_1.KeyPair({ pub: rootPublicKey });
keyPair.getKeys().pub.should.equal(rootPublicKey);
});
it('should derived ed25519 public key should be valid', () => {
utils_1.default.isValidPublicKey(rootPublicKey).should.be.true();
});
});
describe('should fail to create a KeyPair', function () {
it('from an invalid public key', () => {
const source = {
pub: '01D63D',
};
assert_1.default.throws(() => new src_1.KeyPair(source));
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUFvQztBQUNwQyxnRUFBd0M7QUFDeEMsb0RBQTRCO0FBQzVCLDhDQUF3QztBQUN4QyxvREFBZ0U7QUFFaEUsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixJQUFJLFlBQVksQ0FBQztJQUNqQixJQUFJLGFBQWEsQ0FBQztJQUNsQixJQUFJLEdBQVUsQ0FBQztJQUNmLElBQUksTUFBYyxDQUFDO0lBRW5CLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNoQixNQUFNLEdBQUcsTUFBTSxnQ0FBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxHQUFHLEdBQUcsTUFBTSxnQkFBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVoQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpFLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3ZFLFlBQVksR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNELGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRixDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFDN0MsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksYUFBTyxFQUFFLENBQUM7WUFDOUIsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLGdCQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxNQUFNLGVBQUssQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0UsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7UUFDL0MsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtZQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUU7WUFDM0QsZUFBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxpQ0FBaUMsRUFBRTtRQUMxQyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sTUFBTSxHQUFHO2dCQUNiLEdBQUcsRUFBRSxRQUFRO2FBQ2QsQ0FBQztZQUVGLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgS2V5UGFpciB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBFZGRzYSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBFZDI1NTE5QmlwMzJIZFRyZWUsIEhEVHJlZSB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5cbmRlc2NyaWJlKCdUb24gS2V5UGFpcicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHJvb3RLZXljaGFpbjtcbiAgbGV0IHJvb3RQdWJsaWNLZXk7XG4gIGxldCBNUEM6IEVkZHNhO1xuICBsZXQgaGRUcmVlOiBIRFRyZWU7XG5cbiAgYmVmb3JlKGFzeW5jICgpID0+IHtcbiAgICBoZFRyZWUgPSBhd2FpdCBFZDI1NTE5QmlwMzJIZFRyZWUuaW5pdGlhbGl6ZSgpO1xuICAgIE1QQyA9IGF3YWl0IEVkZHNhLmluaXRpYWxpemUoaGRUcmVlKTtcbiAgICBjb25zdCBBID0gTVBDLmtleVNoYXJlKDEsIDIsIDMpO1xuICAgIGNvbnN0IEIgPSBNUEMua2V5U2hhcmUoMiwgMiwgMyk7XG4gICAgY29uc3QgQyA9IE1QQy5rZXlTaGFyZSgzLCAyLCAzKTtcblxuICAgIGNvbnN0IEFfY29tYmluZSA9IE1QQy5rZXlDb21iaW5lKEEudVNoYXJlLCBbQi55U2hhcmVzWzFdLCBDLnlTaGFyZXNbMV1dKTtcblxuICAgIGNvbnN0IGNvbW1vbktleWNoYWluID0gQV9jb21iaW5lLnBTaGFyZS55ICsgQV9jb21iaW5lLnBTaGFyZS5jaGFpbmNvZGU7XG4gICAgcm9vdEtleWNoYWluID0gTVBDLmRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW4sICdtLzAnKTtcbiAgICByb290UHVibGljS2V5ID0gQnVmZmVyLmZyb20ocm9vdEtleWNoYWluLCAnaGV4Jykuc2xpY2UoMCwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBjcmVhdGUgYSB2YWxpZCBLZXlQYWlyJywgKCkgPT4ge1xuICAgIGl0KCdmcm9tIGFuIGVtcHR5IHZhbHVlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKCk7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICBjb25zdCBhZGRyZXNzID0gYXdhaXQgdXRpbHMuZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIHNob3VsZC5leGlzdHMoYWRkcmVzcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdLZXlwYWlyIGZyb20gZGVyaXZlZCBQdWJsaWMgS2V5JywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY3JlYXRlIGtleXBhaXIgd2l0aCBqdXN0IGRlcml2ZWQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1Yjogcm9vdFB1YmxpY0tleSB9KTtcbiAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnB1Yi5zaG91bGQuZXF1YWwocm9vdFB1YmxpY0tleSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGRlcml2ZWQgZWQyNTUxOSBwdWJsaWMga2V5IHNob3VsZCBiZSB2YWxpZCcsICgpID0+IHtcbiAgICAgIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkocm9vdFB1YmxpY0tleSkuc2hvdWxkLmJlLnRydWUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsIHRvIGNyZWF0ZSBhIEtleVBhaXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ2Zyb20gYW4gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICcwMUQ2M0QnLFxuICAgICAgfTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzb3VyY2UpKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!