PHP WebShell

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

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

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyPair = void 0;
const sdk_core_1 = require("@bitgo/sdk-core");
const cardano_serialization_lib_nodejs_1 = require("@emurgo/cardano-serialization-lib-nodejs");
const nacl = __importStar(require("tweetnacl"));
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);
    }
    /**
     *  @returns { Address }
     */
    getAddress(format) {
        const bytesFromHex = new Uint8Array(Buffer.from(this.keyPair.pub, 'hex'));
        const pubKey = cardano_serialization_lib_nodejs_1.PublicKey.from_bytes(bytesFromHex);
        let enterpriseAddress;
        if (format === sdk_core_1.AddressFormat.testnet) {
            enterpriseAddress = cardano_serialization_lib_nodejs_1.EnterpriseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.testnet_preprod().network_id(), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(pubKey.hash()));
        }
        else if (format === sdk_core_1.AddressFormat.mainnet) {
            enterpriseAddress = cardano_serialization_lib_nodejs_1.EnterpriseAddress.new(cardano_serialization_lib_nodejs_1.NetworkInfo.mainnet().network_id(), cardano_serialization_lib_nodejs_1.Credential.from_keyhash(pubKey.hash()));
        }
        return enterpriseAddress.to_address().to_bech32();
    }
    getKeys() {
        const result = { pub: this.keyPair.pub };
        if (this.keyPair.prv) {
            result.prv = this.keyPair.prv;
        }
        return result;
    }
    recordKeysFromPrivateKeyInProtocolFormat(prv) {
        const rawPrv = cardano_serialization_lib_nodejs_1.PrivateKey.from_bech32(prv).as_bytes();
        return new KeyPair({ prv: (0, sdk_core_1.toHex)(rawPrv) }).keyPair;
    }
    recordKeysFromPublicKeyInProtocolFormat(pub) {
        const rawPub = cardano_serialization_lib_nodejs_1.PublicKey.from_bech32(pub).as_bytes();
        return { pub: (0, sdk_core_1.toHex)(rawPub) };
    }
    /** @inheritdoc */
    signMessage(message) {
        const messageToSign = new Uint8Array(Buffer.from(message, 'hex'));
        const prv = this.keyPair?.prv;
        if (!prv) {
            throw new Error('Missing private key');
        }
        return nacl.sign.detached(messageToSign, nacl.sign.keyPair.fromSeed((0, sdk_core_1.toUint8Array)(prv)).secretKey);
    }
}
exports.KeyPair = KeyPair;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBa0g7QUFDbEgsK0ZBTWtEO0FBQ2xELGdEQUFrQztBQUVsQyxNQUFhLE9BQVEsU0FBUSx5QkFBYztJQUN6Qzs7Ozs7T0FLRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxNQUFNO1FBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sTUFBTSxHQUFHLDRDQUFTLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELElBQUksaUJBQWlCLENBQUM7UUFDdEIsSUFBSSxNQUFNLEtBQUssd0JBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQyxpQkFBaUIsR0FBRyxvREFBaUIsQ0FBQyxHQUFHLENBQ3ZDLDhDQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQzFDLDZDQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUN2QyxDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksTUFBTSxLQUFLLHdCQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUMsaUJBQWlCLEdBQUcsb0RBQWlCLENBQUMsR0FBRyxDQUN2Qyw4Q0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUNsQyw2Q0FBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDdkMsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx3Q0FBd0MsQ0FBQyxHQUFXO1FBQ2xELE1BQU0sTUFBTSxHQUFHLDZDQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBQSxnQkFBSyxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDckQsQ0FBQztJQUVELHVDQUF1QyxDQUFDLEdBQVc7UUFDakQsTUFBTSxNQUFNLEdBQUcsNENBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFBLGdCQUFLLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxPQUFlO1FBQ3pCLE1BQU0sYUFBYSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBQSx1QkFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEcsQ0FBQztDQUNGO0FBM0RELDBCQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlZmF1bHRLZXlzLCBLZXlQYWlyT3B0aW9ucywgRWQyNTUxOUtleVBhaXIsIHRvSGV4LCBBZGRyZXNzRm9ybWF0LCB0b1VpbnQ4QXJyYXkgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgUHVibGljS2V5LFxuICBQcml2YXRlS2V5LFxuICBFbnRlcnByaXNlQWRkcmVzcyxcbiAgTmV0d29ya0luZm8sXG4gIENyZWRlbnRpYWwsXG59IGZyb20gJ0BlbXVyZ28vY2FyZGFuby1zZXJpYWxpemF0aW9uLWxpYi1ub2RlanMnO1xuaW1wb3J0ICogYXMgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEVkMjU1MTlLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7IEtleVBhaXJPcHRpb25zIH0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQHJldHVybnMgeyBBZGRyZXNzIH1cbiAgICovXG4gIGdldEFkZHJlc3MoZm9ybWF0KTogc3RyaW5nIHtcbiAgICBjb25zdCBieXRlc0Zyb21IZXggPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSh0aGlzLmtleVBhaXIucHViLCAnaGV4JykpO1xuICAgIGNvbnN0IHB1YktleSA9IFB1YmxpY0tleS5mcm9tX2J5dGVzKGJ5dGVzRnJvbUhleCk7XG4gICAgbGV0IGVudGVycHJpc2VBZGRyZXNzO1xuICAgIGlmIChmb3JtYXQgPT09IEFkZHJlc3NGb3JtYXQudGVzdG5ldCkge1xuICAgICAgZW50ZXJwcmlzZUFkZHJlc3MgPSBFbnRlcnByaXNlQWRkcmVzcy5uZXcoXG4gICAgICAgIE5ldHdvcmtJbmZvLnRlc3RuZXRfcHJlcHJvZCgpLm5ldHdvcmtfaWQoKSxcbiAgICAgICAgQ3JlZGVudGlhbC5mcm9tX2tleWhhc2gocHViS2V5Lmhhc2goKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IEFkZHJlc3NGb3JtYXQubWFpbm5ldCkge1xuICAgICAgZW50ZXJwcmlzZUFkZHJlc3MgPSBFbnRlcnByaXNlQWRkcmVzcy5uZXcoXG4gICAgICAgIE5ldHdvcmtJbmZvLm1haW5uZXQoKS5uZXR3b3JrX2lkKCksXG4gICAgICAgIENyZWRlbnRpYWwuZnJvbV9rZXloYXNoKHB1YktleS5oYXNoKCkpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZW50ZXJwcmlzZUFkZHJlc3MudG9fYWRkcmVzcygpLnRvX2JlY2gzMigpO1xuICB9XG5cbiAgZ2V0S2V5cygpOiBEZWZhdWx0S2V5cyB7XG4gICAgY29uc3QgcmVzdWx0OiBEZWZhdWx0S2V5cyA9IHsgcHViOiB0aGlzLmtleVBhaXIucHViIH07XG4gICAgaWYgKHRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIHJlc3VsdC5wcnYgPSB0aGlzLmtleVBhaXIucHJ2O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5SW5Qcm90b2NvbEZvcm1hdChwcnY6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCByYXdQcnYgPSBQcml2YXRlS2V5LmZyb21fYmVjaDMyKHBydikuYXNfYnl0ZXMoKTtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwcnY6IHRvSGV4KHJhd1BydikgfSkua2V5UGFpcjtcbiAgfVxuXG4gIHJlY29yZEtleXNGcm9tUHVibGljS2V5SW5Qcm90b2NvbEZvcm1hdChwdWI6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCByYXdQdWIgPSBQdWJsaWNLZXkuZnJvbV9iZWNoMzIocHViKS5hc19ieXRlcygpO1xuICAgIHJldHVybiB7IHB1YjogdG9IZXgocmF3UHViKSB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHNpZ25NZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IG1lc3NhZ2VUb1NpZ24gPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShtZXNzYWdlLCAnaGV4JykpO1xuICAgIGNvbnN0IHBydiA9IHRoaXMua2V5UGFpcj8ucHJ2O1xuICAgIGlmICghcHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hY2wuc2lnbi5kZXRhY2hlZChtZXNzYWdlVG9TaWduLCBuYWNsLnNpZ24ua2V5UGFpci5mcm9tU2VlZCh0b1VpbnQ4QXJyYXkocHJ2KSkuc2VjcmV0S2V5KTtcbiAgfVxufVxuIl19

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


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