PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-coin-sol/dist/src/lib

Просмотр файла: keyPair.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyPair = void 0;
const web3_js_1 = require("@solana/web3.js");
const sdk_core_1 = require("@bitgo/sdk-core");
const utils_1 = require("./utils");
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);
    }
    /** @inheritdoc */
    recordKeysFromPrivateKeyInProtocolFormat(prv) {
        const prvKey = (0, utils_1.base58ToUint8Array)(prv);
        const keyPair = web3_js_1.Keypair.fromSecretKey(prvKey);
        return {
            pub: keyPair.publicKey.toBuffer().toString('hex'),
            prv: Buffer.from(keyPair.secretKey.slice(0, 32)).toString('hex'),
        };
    }
    /** @inheritdoc */
    recordKeysFromPublicKeyInProtocolFormat(pub) {
        return {
            pub: Buffer.from((0, utils_1.base58ToUint8Array)(pub)).toString('hex'),
        };
    }
    /**
     * Solana default keys format public key as a base58 string and secret key as Uint8Array
     *
     * @param {boolean} raw defines if the prv key is returned in Uint8Array, default is base58
     * @returns {SolanaKeys} The keys in the defined format
     */
    getKeys(raw = false) {
        // keys are originally created in hex, but we need base58
        const publicKeyBuffer = Buffer.from(this.keyPair.pub, 'hex');
        const base58Pub = (0, utils_1.Uint8ArrayTobase58)(publicKeyBuffer);
        const result = { pub: base58Pub };
        if (!!this.keyPair.prv) {
            const secretKeyBuffer = Buffer.from(this.keyPair.prv, 'hex');
            const solanaSecretKey = new Uint8Array(64);
            solanaSecretKey.set(secretKeyBuffer);
            solanaSecretKey.set(publicKeyBuffer, 32);
            if (raw) {
                result.prv = solanaSecretKey;
            }
            else {
                result.prv = (0, utils_1.Uint8ArrayTobase58)(solanaSecretKey);
            }
        }
        return result;
    }
    /** @inheritdoc */
    getAddress() {
        const keys = this.getKeys();
        return keys.pub;
    }
}
exports.KeyPair = KeyPair;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBd0Q7QUFDeEQsOENBQThFO0FBRTlFLG1DQUFpRTtBQUVqRSxNQUFhLE9BQVEsU0FBUSx5QkFBYztJQUl6Qzs7OztPQUlHO0lBQ0gsWUFBWSxNQUF1QjtRQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix3Q0FBd0MsQ0FBQyxHQUFXO1FBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsaUJBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQsT0FBTztZQUNMLEdBQUcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDakQsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUNqRSxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELE9BQU87WUFDTCxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLDBCQUFrQixFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLEdBQUcsR0FBRyxLQUFLO1FBQ2pCLHlEQUF5RDtRQUN6RCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdELE1BQU0sU0FBUyxHQUFHLElBQUEsMEJBQWtCLEVBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEQsTUFBTSxNQUFNLEdBQWUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdELE1BQU0sZUFBZSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDckMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFekMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixNQUFNLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQztZQUMvQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFBLDBCQUFrQixFQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVO1FBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUEvREQsMEJBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5cGFpciBhcyBTb2xLZXlwYWlyIH0gZnJvbSAnQHNvbGFuYS93ZWIzLmpzJztcbmltcG9ydCB7IERlZmF1bHRLZXlzLCBLZXlQYWlyT3B0aW9ucywgRWQyNTUxOUtleVBhaXIgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgU29sYW5hS2V5cyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgYmFzZTU4VG9VaW50OEFycmF5LCBVaW50OEFycmF5VG9iYXNlNTggfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEtleVBhaXIgZXh0ZW5kcyBFZDI1NTE5S2V5UGFpciB7XG4gIHByb3RlY3RlZCBrZXlQYWlyOiBEZWZhdWx0S2V5cztcbiAgcHJvdGVjdGVkIHNvdXJjZT86IEtleVBhaXJPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSwgb3IgYSBwdWJsaWMga2V5XG4gICAqL1xuICBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIHN1cGVyKHNvdXJjZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5SW5Qcm90b2NvbEZvcm1hdChwcnY6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCBwcnZLZXkgPSBiYXNlNThUb1VpbnQ4QXJyYXkocHJ2KTtcbiAgICBjb25zdCBrZXlQYWlyID0gU29sS2V5cGFpci5mcm9tU2VjcmV0S2V5KHBydktleSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHViOiBrZXlQYWlyLnB1YmxpY0tleS50b0J1ZmZlcigpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHBydjogQnVmZmVyLmZyb20oa2V5UGFpci5zZWNyZXRLZXkuc2xpY2UoMCwgMzIpKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleUluUHJvdG9jb2xGb3JtYXQocHViOiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHB1YjogQnVmZmVyLmZyb20oYmFzZTU4VG9VaW50OEFycmF5KHB1YikpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbGFuYSBkZWZhdWx0IGtleXMgZm9ybWF0IHB1YmxpYyBrZXkgYXMgYSBiYXNlNTggc3RyaW5nIGFuZCBzZWNyZXQga2V5IGFzIFVpbnQ4QXJyYXlcbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSByYXcgZGVmaW5lcyBpZiB0aGUgcHJ2IGtleSBpcyByZXR1cm5lZCBpbiBVaW50OEFycmF5LCBkZWZhdWx0IGlzIGJhc2U1OFxuICAgKiBAcmV0dXJucyB7U29sYW5hS2V5c30gVGhlIGtleXMgaW4gdGhlIGRlZmluZWQgZm9ybWF0XG4gICAqL1xuICBnZXRLZXlzKHJhdyA9IGZhbHNlKTogU29sYW5hS2V5cyB7XG4gICAgLy8ga2V5cyBhcmUgb3JpZ2luYWxseSBjcmVhdGVkIGluIGhleCwgYnV0IHdlIG5lZWQgYmFzZTU4XG4gICAgY29uc3QgcHVibGljS2V5QnVmZmVyID0gQnVmZmVyLmZyb20odGhpcy5rZXlQYWlyLnB1YiwgJ2hleCcpO1xuICAgIGNvbnN0IGJhc2U1OFB1YiA9IFVpbnQ4QXJyYXlUb2Jhc2U1OChwdWJsaWNLZXlCdWZmZXIpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBTb2xhbmFLZXlzID0geyBwdWI6IGJhc2U1OFB1YiB9O1xuICAgIGlmICghIXRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIGNvbnN0IHNlY3JldEtleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHRoaXMua2V5UGFpci5wcnYsICdoZXgnKTtcbiAgICAgIGNvbnN0IHNvbGFuYVNlY3JldEtleSA9IG5ldyBVaW50OEFycmF5KDY0KTtcbiAgICAgIHNvbGFuYVNlY3JldEtleS5zZXQoc2VjcmV0S2V5QnVmZmVyKTtcbiAgICAgIHNvbGFuYVNlY3JldEtleS5zZXQocHVibGljS2V5QnVmZmVyLCAzMik7XG5cbiAgICAgIGlmIChyYXcpIHtcbiAgICAgICAgcmVzdWx0LnBydiA9IHNvbGFuYVNlY3JldEtleTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdC5wcnYgPSBVaW50OEFycmF5VG9iYXNlNTgoc29sYW5hU2VjcmV0S2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuZ2V0S2V5cygpO1xuICAgIHJldHVybiBrZXlzLnB1YjtcbiAgfVxufVxuIl19

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


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