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=

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


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