PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-hbar/dist/src/lib
Просмотр файла: keyPair.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyPair = exports.PUBLIC_KEY_PREFIX = void 0;
const sdk_1 = require("@hashgraph/sdk");
const sdk_core_1 = require("@bitgo/sdk-core");
const utils_1 = require("./utils");
exports.PUBLIC_KEY_PREFIX = '302a300506032b6570032100';
const PRIVATE_KEY_PREFIX = '302e020100300506032b657004220420';
class KeyPair extends sdk_core_1.Ed25519KeyPair {
/**
* Public constructor. By default, creates a key pair with a random master seed.
*
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
*/
constructor(source) {
super(source);
}
/**
* Hedera default keys format is a pair of Uint8Array keys
*
* @param {boolean} raw defines if the key is returned in raw or protocol default format
* @returns { DefaultKeys } The keys in the defined format
*/
getKeys(raw = false) {
const pub = sdk_1.PublicKey.fromString(this.keyPair.pub).toString();
const result = {
pub: raw ? pub.slice(exports.PUBLIC_KEY_PREFIX.length) : pub,
};
if (this.keyPair.prv) {
const prv = sdk_1.PrivateKey.fromString(this.keyPair.prv).toString();
result.prv = raw ? prv.slice(PRIVATE_KEY_PREFIX.length) : prv;
}
return result;
}
/** @inheritdoc */
getAddress(format) {
throw new sdk_core_1.NotSupported('Address derivation is not supported in Hedera');
}
/** @inheritdoc */
recordKeysFromPublicKeyInProtocolFormat(pub) {
try {
const hederaPub = sdk_1.PublicKey.fromString(pub.toLowerCase()).toString();
const ed25519Pub = (0, utils_1.removePrefix)(exports.PUBLIC_KEY_PREFIX, hederaPub);
return { pub: ed25519Pub };
}
catch (e) {
throw new sdk_core_1.InvalidKey('Invalid public key: ' + pub);
}
}
/** @inheritdoc */
recordKeysFromPrivateKeyInProtocolFormat(prv) {
if (!/^([a-f\d]{2})+$/i.test(prv)) {
throw new sdk_core_1.InvalidKey('Invalid private key length. Must be a hex and multiple of 2');
}
try {
const hederaPrv = sdk_1.PrivateKey.fromString(prv);
const ed25519Prv = (0, utils_1.removePrefix)(PRIVATE_KEY_PREFIX, hederaPrv.toString());
const ed25519Pub = (0, utils_1.removePrefix)(exports.PUBLIC_KEY_PREFIX, hederaPrv.publicKey.toString());
return {
prv: ed25519Prv,
pub: ed25519Pub,
};
}
catch (e) {
throw new sdk_core_1.InvalidKey('Invalid private key');
}
}
}
exports.KeyPair = KeyPair;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBdUQ7QUFDdkQsOENBQXVIO0FBQ3ZILG1DQUF1QztBQUUxQixRQUFBLGlCQUFpQixHQUFHLDBCQUEwQixDQUFDO0FBQzVELE1BQU0sa0JBQWtCLEdBQUcsa0NBQWtDLENBQUM7QUFFOUQsTUFBYSxPQUFRLFNBQVEseUJBQWM7SUFDekM7Ozs7T0FJRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxHQUFHLEdBQUcsS0FBSztRQUNqQixNQUFNLEdBQUcsR0FBRyxlQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUQsTUFBTSxNQUFNLEdBQWdCO1lBQzFCLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMseUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7U0FDckQsQ0FBQztRQUVGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQixNQUFNLEdBQUcsR0FBRyxnQkFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9ELE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsVUFBVSxDQUFDLE1BQXNCO1FBQy9CLE1BQU0sSUFBSSx1QkFBWSxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxHQUFHLGVBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckUsTUFBTSxVQUFVLEdBQUcsSUFBQSxvQkFBWSxFQUFDLHlCQUFpQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzlELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDN0IsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUkscUJBQVUsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix3Q0FBd0MsQ0FBQyxHQUFXO1FBQ2xELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUkscUJBQVUsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO1FBQ3RGLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxnQkFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxNQUFNLFVBQVUsR0FBRyxJQUFBLG9CQUFZLEVBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUUsTUFBTSxVQUFVLEdBQUcsSUFBQSxvQkFBWSxFQUFDLHlCQUFpQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRixPQUFPO2dCQUNMLEdBQUcsRUFBRSxVQUFVO2dCQUNmLEdBQUcsRUFBRSxVQUFVO2FBQ2hCLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxxQkFBVSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTlERCwwQkE4REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcml2YXRlS2V5LCBQdWJsaWNLZXkgfSBmcm9tICdAaGFzaGdyYXBoL3Nkayc7XG5pbXBvcnQgeyBBZGRyZXNzRm9ybWF0LCBEZWZhdWx0S2V5cywgRWQyNTUxOUtleVBhaXIsIEludmFsaWRLZXksIEtleVBhaXJPcHRpb25zLCBOb3RTdXBwb3J0ZWQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgcmVtb3ZlUHJlZml4IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBQVUJMSUNfS0VZX1BSRUZJWCA9ICczMDJhMzAwNTA2MDMyYjY1NzAwMzIxMDAnO1xuY29uc3QgUFJJVkFURV9LRVlfUFJFRklYID0gJzMwMmUwMjAxMDAzMDA1MDYwMzJiNjU3MDA0MjIwNDIwJztcblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBFZDI1NTE5S2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gIH1cblxuICAvKipcbiAgICogSGVkZXJhIGRlZmF1bHQga2V5cyBmb3JtYXQgaXMgYSBwYWlyIG9mIFVpbnQ4QXJyYXkga2V5c1xuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJhdyBkZWZpbmVzIGlmIHRoZSBrZXkgaXMgcmV0dXJuZWQgaW4gcmF3IG9yIHByb3RvY29sIGRlZmF1bHQgZm9ybWF0XG4gICAqIEByZXR1cm5zIHsgRGVmYXVsdEtleXMgfSBUaGUga2V5cyBpbiB0aGUgZGVmaW5lZCBmb3JtYXRcbiAgICovXG4gIGdldEtleXMocmF3ID0gZmFsc2UpOiBEZWZhdWx0S2V5cyB7XG4gICAgY29uc3QgcHViID0gUHVibGljS2V5LmZyb21TdHJpbmcodGhpcy5rZXlQYWlyLnB1YikudG9TdHJpbmcoKTtcbiAgICBjb25zdCByZXN1bHQ6IERlZmF1bHRLZXlzID0ge1xuICAgICAgcHViOiByYXcgPyBwdWIuc2xpY2UoUFVCTElDX0tFWV9QUkVGSVgubGVuZ3RoKSA6IHB1YixcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIGNvbnN0IHBydiA9IFByaXZhdGVLZXkuZnJvbVN0cmluZyh0aGlzLmtleVBhaXIucHJ2KS50b1N0cmluZygpO1xuICAgICAgcmVzdWx0LnBydiA9IHJhdyA/IHBydi5zbGljZShQUklWQVRFX0tFWV9QUkVGSVgubGVuZ3RoKSA6IHBydjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKGZvcm1hdD86IEFkZHJlc3NGb3JtYXQpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBOb3RTdXBwb3J0ZWQoJ0FkZHJlc3MgZGVyaXZhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIEhlZGVyYScpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHVibGljS2V5SW5Qcm90b2NvbEZvcm1hdChwdWI6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgaGVkZXJhUHViID0gUHVibGljS2V5LmZyb21TdHJpbmcocHViLnRvTG93ZXJDYXNlKCkpLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBlZDI1NTE5UHViID0gcmVtb3ZlUHJlZml4KFBVQkxJQ19LRVlfUFJFRklYLCBoZWRlcmFQdWIpO1xuICAgICAgcmV0dXJuIHsgcHViOiBlZDI1NTE5UHViIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRLZXkoJ0ludmFsaWQgcHVibGljIGtleTogJyArIHB1Yik7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgaWYgKCEvXihbYS1mXFxkXXsyfSkrJC9pLnRlc3QocHJ2KSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRLZXkoJ0ludmFsaWQgcHJpdmF0ZSBrZXkgbGVuZ3RoLiBNdXN0IGJlIGEgaGV4IGFuZCBtdWx0aXBsZSBvZiAyJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBoZWRlcmFQcnYgPSBQcml2YXRlS2V5LmZyb21TdHJpbmcocHJ2KTtcbiAgICAgIGNvbnN0IGVkMjU1MTlQcnYgPSByZW1vdmVQcmVmaXgoUFJJVkFURV9LRVlfUFJFRklYLCBoZWRlcmFQcnYudG9TdHJpbmcoKSk7XG4gICAgICBjb25zdCBlZDI1NTE5UHViID0gcmVtb3ZlUHJlZml4KFBVQkxJQ19LRVlfUFJFRklYLCBoZWRlcmFQcnYucHVibGljS2V5LnRvU3RyaW5nKCkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJ2OiBlZDI1NTE5UHJ2LFxuICAgICAgICBwdWI6IGVkMjU1MTlQdWIsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KCdJbnZhbGlkIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=Выполнить команду
Для локальной разработки. Не используйте в интернете!