PHP WebShell

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

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

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.sign = sign;
exports.getCommon = getCommon;
exports.isValidEthAddress = isValidEthAddress;
exports.isValidEthPrivateKey = isValidEthPrivateKey;
exports.isValidEthPublicKey = isValidEthPublicKey;
exports.getToken = getToken;
const assert_1 = __importDefault(require("assert"));
const statics_1 = require("@bitgo/statics");
const ethereumjs_util_1 = require("ethereumjs-util");
const sdk_coin_eth_1 = require("@bitgo/sdk-coin-eth");
const sdk_core_1 = require("@bitgo/sdk-core");
const resources_1 = require("./resources");
/**
 * Signs the transaction using the appropriate algorithm
 *
 * @param {TxData} transactionData the transaction data to sign
 * @param {KeyPair} keyPair the signer's keypair
 * @returns {string} the transaction signed and encoded
 */
async function sign(transactionData, keyPair) {
    return sdk_coin_eth_1.Utils.signInternal(transactionData, keyPair, resources_1.testnetCommon);
}
const commons = new Map([
    [statics_1.NetworkType.MAINNET, resources_1.mainnetCommon],
    [statics_1.NetworkType.TESTNET, resources_1.testnetCommon],
]);
/**
 * @param {NetworkType} network either mainnet or testnet
 * @returns {EthereumCommon} Ethereum common configuration object
 */
function getCommon(network) {
    const common = commons.get(network);
    if (!common) {
        throw new sdk_core_1.InvalidTransactionError('Missing network common configuration');
    }
    return common;
}
/**
 * Returns whether or not the string is a valid C-Chain address in Eth format
 *
 * @param {string} address - the address string
 * @returns {boolean} - the validation result
 */
function isValidEthAddress(address) {
    return (0, ethereumjs_util_1.isValidAddress)(address);
}
/**
 * Returns whether or not the string is a valid C-Chain private key in Eth format
 *
 * @param {string} privateKey - the string formatted key
 * @returns {boolean} - the validation result
 */
function isValidEthPrivateKey(privateKey) {
    if (privateKey.length !== 64) {
        return false;
    }
    const privateKeyBuffer = Buffer.from(privateKey, 'hex');
    if (privateKeyBuffer.length !== 32) {
        return false;
    }
    return (0, ethereumjs_util_1.isValidPrivate)(privateKeyBuffer);
}
/**
 * Returns whether or not the string is a valid C-Chain public key in Eth format
 *
 * @param {string} publicKey - the uncompressed public key string
 * @returns {boolean} - the validation result
 */
function isValidEthPublicKey(publicKey) {
    // Uncompressed Eth Public Keys have a 04 prefix that needs to be removed in order to validate it.
    const publicKeyWithoutPrefix = publicKey.slice(2);
    const publicKeyBuffer = Buffer.from(publicKeyWithoutPrefix, 'hex');
    return (0, ethereumjs_util_1.isValidPublic)(publicKeyBuffer);
}
function getToken(tokenContractAddress, network) {
    const tokens = statics_1.coins.filter((coin) => {
        if (coin instanceof statics_1.AvaxERC20Token) {
            return (coin.network.type === network.type && coin.contractAddress.toLowerCase() === tokenContractAddress.toLowerCase());
        }
        return false;
    });
    // if length of tokens is 1, return the first, else return undefined
    // Can't directly index into tokens, or call `length`, so we use map to get an array
    const tokensArray = tokens.map((token) => token);
    if (tokensArray.length >= 1) {
        // there should never be two tokens with the same contract address, so we assert that here
        (0, assert_1.default)(tokensArray.length === 1, 'Found more than 1 token: ' + JSON.stringify(tokensArray));
        return tokensArray[0];
    }
    return undefined;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZ0JBLG9CQUVDO0FBV0QsOEJBTUM7QUFRRCw4Q0FFQztBQVFELG9EQVVDO0FBUUQsa0RBS0M7QUFFRCw0QkFtQkM7QUFqR0Qsb0RBQTRCO0FBRTVCLDRDQUEyRjtBQUMzRixxREFBZ0Y7QUFFaEYsc0RBQTZEO0FBQzdELDhDQUEwRDtBQUMxRCwyQ0FBMkQ7QUFFM0Q7Ozs7OztHQU1HO0FBQ0ksS0FBSyxVQUFVLElBQUksQ0FBQyxlQUF1QixFQUFFLE9BQWdCO0lBQ2xFLE9BQU8sb0JBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSx5QkFBYSxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVELE1BQU0sT0FBTyxHQUFxQyxJQUFJLEdBQUcsQ0FBOEI7SUFDckYsQ0FBQyxxQkFBVyxDQUFDLE9BQU8sRUFBRSx5QkFBYSxDQUFDO0lBQ3BDLENBQUMscUJBQVcsQ0FBQyxPQUFPLEVBQUUseUJBQWEsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxTQUFnQixTQUFTLENBQUMsT0FBb0I7SUFDNUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksa0NBQXVCLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsT0FBZTtJQUMvQyxPQUFPLElBQUEsZ0NBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxVQUFrQjtJQUNyRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV4RCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxPQUFPLElBQUEsZ0NBQWMsRUFBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLFNBQWlCO0lBQ25ELGtHQUFrRztJQUNsRyxNQUFNLHNCQUFzQixHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRSxPQUFPLElBQUEsK0JBQWEsRUFBQyxlQUFlLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBZ0IsUUFBUSxDQUFDLG9CQUE0QixFQUFFLE9BQW9CO0lBQ3pFLE1BQU0sTUFBTSxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNuQyxJQUFJLElBQUksWUFBWSx3QkFBYyxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FDaEgsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0lBRUgsb0VBQW9FO0lBQ3BFLG9GQUFvRjtJQUNwRixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDNUIsMEZBQTBGO1FBQzFGLElBQUEsZ0JBQU0sRUFBQyxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSwyQkFBMkIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDNUYsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IEF2YXhFUkMyMFRva2VuLCBCYXNlQ29pbiwgQmFzZU5ldHdvcmssIE5ldHdvcmtUeXBlLCBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IGlzVmFsaWRBZGRyZXNzLCBpc1ZhbGlkUHJpdmF0ZSwgaXNWYWxpZFB1YmxpYyB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgRXRoZXJldW1Db21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7IFV0aWxzLCBLZXlQYWlyLCBUeERhdGEgfSBmcm9tICdAYml0Z28vc2RrLWNvaW4tZXRoJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IHRlc3RuZXRDb21tb24sIG1haW5uZXRDb21tb24gfSBmcm9tICcuL3Jlc291cmNlcyc7XG5cbi8qKlxuICogU2lnbnMgdGhlIHRyYW5zYWN0aW9uIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBhbGdvcml0aG1cbiAqXG4gKiBAcGFyYW0ge1R4RGF0YX0gdHJhbnNhY3Rpb25EYXRhIHRoZSB0cmFuc2FjdGlvbiBkYXRhIHRvIHNpZ25cbiAqIEBwYXJhbSB7S2V5UGFpcn0ga2V5UGFpciB0aGUgc2lnbmVyJ3Mga2V5cGFpclxuICogQHJldHVybnMge3N0cmluZ30gdGhlIHRyYW5zYWN0aW9uIHNpZ25lZCBhbmQgZW5jb2RlZFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnbih0cmFuc2FjdGlvbkRhdGE6IFR4RGF0YSwga2V5UGFpcjogS2V5UGFpcik6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBVdGlscy5zaWduSW50ZXJuYWwodHJhbnNhY3Rpb25EYXRhLCBrZXlQYWlyLCB0ZXN0bmV0Q29tbW9uKTtcbn1cblxuY29uc3QgY29tbW9uczogTWFwPE5ldHdvcmtUeXBlLCBFdGhlcmV1bUNvbW1vbj4gPSBuZXcgTWFwPE5ldHdvcmtUeXBlLCBFdGhlcmV1bUNvbW1vbj4oW1xuICBbTmV0d29ya1R5cGUuTUFJTk5FVCwgbWFpbm5ldENvbW1vbl0sXG4gIFtOZXR3b3JrVHlwZS5URVNUTkVULCB0ZXN0bmV0Q29tbW9uXSxcbl0pO1xuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya1R5cGV9IG5ldHdvcmsgZWl0aGVyIG1haW5uZXQgb3IgdGVzdG5ldFxuICogQHJldHVybnMge0V0aGVyZXVtQ29tbW9ufSBFdGhlcmV1bSBjb21tb24gY29uZmlndXJhdGlvbiBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1vbihuZXR3b3JrOiBOZXR3b3JrVHlwZSk6IEV0aGVyZXVtQ29tbW9uIHtcbiAgY29uc3QgY29tbW9uID0gY29tbW9ucy5nZXQobmV0d29yayk7XG4gIGlmICghY29tbW9uKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIG5ldHdvcmsgY29tbW9uIGNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuICByZXR1cm4gY29tbW9uO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEMtQ2hhaW4gYWRkcmVzcyBpbiBFdGggZm9ybWF0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSB0aGUgYWRkcmVzcyBzdHJpbmdcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEV0aEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBDLUNoYWluIHByaXZhdGUga2V5IGluIEV0aCBmb3JtYXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJpdmF0ZUtleSAtIHRoZSBzdHJpbmcgZm9ybWF0dGVkIGtleVxuICogQHJldHVybnMge2Jvb2xlYW59IC0gdGhlIHZhbGlkYXRpb24gcmVzdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRXRoUHJpdmF0ZUtleShwcml2YXRlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHByaXZhdGVLZXkubGVuZ3RoICE9PSA2NCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBjb25zdCBwcml2YXRlS2V5QnVmZmVyID0gQnVmZmVyLmZyb20ocHJpdmF0ZUtleSwgJ2hleCcpO1xuXG4gIGlmIChwcml2YXRlS2V5QnVmZmVyLmxlbmd0aCAhPT0gMzIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGlzVmFsaWRQcml2YXRlKHByaXZhdGVLZXlCdWZmZXIpO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIHN0cmluZyBpcyBhIHZhbGlkIEMtQ2hhaW4gcHVibGljIGtleSBpbiBFdGggZm9ybWF0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHB1YmxpY0tleSAtIHRoZSB1bmNvbXByZXNzZWQgcHVibGljIGtleSBzdHJpbmdcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHRoZSB2YWxpZGF0aW9uIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEV0aFB1YmxpY0tleShwdWJsaWNLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAvLyBVbmNvbXByZXNzZWQgRXRoIFB1YmxpYyBLZXlzIGhhdmUgYSAwNCBwcmVmaXggdGhhdCBuZWVkcyB0byBiZSByZW1vdmVkIGluIG9yZGVyIHRvIHZhbGlkYXRlIGl0LlxuICBjb25zdCBwdWJsaWNLZXlXaXRob3V0UHJlZml4ID0gcHVibGljS2V5LnNsaWNlKDIpO1xuICBjb25zdCBwdWJsaWNLZXlCdWZmZXIgPSBCdWZmZXIuZnJvbShwdWJsaWNLZXlXaXRob3V0UHJlZml4LCAnaGV4Jyk7XG4gIHJldHVybiBpc1ZhbGlkUHVibGljKHB1YmxpY0tleUJ1ZmZlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2tlbih0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nLCBuZXR3b3JrOiBCYXNlTmV0d29yayk6IFJlYWRvbmx5PEJhc2VDb2luPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRva2VucyA9IGNvaW5zLmZpbHRlcigoY29pbikgPT4ge1xuICAgIGlmIChjb2luIGluc3RhbmNlb2YgQXZheEVSQzIwVG9rZW4pIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNvaW4ubmV0d29yay50eXBlID09PSBuZXR3b3JrLnR5cGUgJiYgY29pbi5jb250cmFjdEFkZHJlc3MudG9Mb3dlckNhc2UoKSA9PT0gdG9rZW5Db250cmFjdEFkZHJlc3MudG9Mb3dlckNhc2UoKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcblxuICAvLyBpZiBsZW5ndGggb2YgdG9rZW5zIGlzIDEsIHJldHVybiB0aGUgZmlyc3QsIGVsc2UgcmV0dXJuIHVuZGVmaW5lZFxuICAvLyBDYW4ndCBkaXJlY3RseSBpbmRleCBpbnRvIHRva2Vucywgb3IgY2FsbCBgbGVuZ3RoYCwgc28gd2UgdXNlIG1hcCB0byBnZXQgYW4gYXJyYXlcbiAgY29uc3QgdG9rZW5zQXJyYXkgPSB0b2tlbnMubWFwKCh0b2tlbikgPT4gdG9rZW4pO1xuICBpZiAodG9rZW5zQXJyYXkubGVuZ3RoID49IDEpIHtcbiAgICAvLyB0aGVyZSBzaG91bGQgbmV2ZXIgYmUgdHdvIHRva2VucyB3aXRoIHRoZSBzYW1lIGNvbnRyYWN0IGFkZHJlc3MsIHNvIHdlIGFzc2VydCB0aGF0IGhlcmVcbiAgICBhc3NlcnQodG9rZW5zQXJyYXkubGVuZ3RoID09PSAxLCAnRm91bmQgbW9yZSB0aGFuIDEgdG9rZW46ICcgKyBKU09OLnN0cmluZ2lmeSh0b2tlbnNBcnJheSkpO1xuICAgIHJldHVybiB0b2tlbnNBcnJheVswXTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19

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


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