PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/sdk-core/dist/src/coins

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.OfcToken = void 0;
const lodash_1 = require("lodash");
const ofc_1 = require("./ofc");
const publicIdRegex = /^[a-f\d]{32}$/i;
class OfcToken extends ofc_1.Ofc {
    constructor(bitgo, tokenConfig) {
        super(bitgo);
        this.tokenConfig = tokenConfig;
    }
    get coin() {
        return this.tokenConfig.coin;
    }
    get decimalPlaces() {
        return this.tokenConfig.decimalPlaces;
    }
    get name() {
        return this.tokenConfig.name;
    }
    get backingCoin() {
        return this.tokenConfig.backingCoin;
    }
    get isFiat() {
        return this.tokenConfig.isFiat;
    }
    getChain() {
        return this.type;
    }
    getFullName() {
        return this.name;
    }
    getBaseFactor() {
        return String(Math.pow(10, this.decimalPlaces));
    }
    get type() {
        return this.tokenConfig.type;
    }
    /**
     * Flag for sending value of 0
     * @returns {boolean} True if okay to send 0 value, false otherwise
     */
    valuelessTransferAllowed() {
        return false;
    }
    static createTokenConstructor(config) {
        return (bitgo) => new OfcToken(bitgo, config);
    }
    /**
     * Assemble keychain and half-sign prebuilt transaction
     * @param params
     * @returns {Promise<SignedTransaction>}
     */
    async signTransaction(params) {
        const txPrebuild = params.txPrebuild;
        const payload = txPrebuild.payload;
        const signatureBuffer = (await this.signMessage(params, payload));
        const signature = signatureBuffer.toString('hex');
        return { halfSigned: { payload, signature } };
    }
    /**
     * Check if an address is valid for this ofc token.
     *
     * These addresses are either bg-<publicid>, where public id is the internal address to send to,
     * or are an address which is valid on the backing coin of this ofc token.
     * @param address address to check for validity
     */
    isValidAddress(address) {
        if (!(0, lodash_1.isString)(address)) {
            return false;
        }
        if (address.startsWith('bg-')) {
            const parts = address.split('-');
            const accountId = parts[1];
            return parts.length === 2 && publicIdRegex.test(accountId);
        }
        else {
            const backingCoin = this.bitgo.coin(this.backingCoin);
            return backingCoin.isValidAddress(address);
        }
    }
}
exports.OfcToken = OfcToken;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZjVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29pbnMvb2ZjVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsbUNBQWtDO0FBT2xDLCtCQUE0QjtBQVc1QixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQztBQUN2QyxNQUFhLFFBQVMsU0FBUSxTQUFHO0lBRy9CLFlBQVksS0FBZ0IsRUFBRSxXQUEyQjtRQUN2RCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXNCO1FBQ2xELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQThCO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNuQyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQVEsQ0FBQztRQUN6RSxNQUFNLFNBQVMsR0FBVyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQVMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsY0FBYyxDQUFDLE9BQWdCO1FBQzdCLElBQUksQ0FBQyxJQUFBLGlCQUFRLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0QsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEQsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF6RkQsNEJBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgT2ZjVG9rZW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBCaXRHb0Jhc2UsXG4gIENvaW5Db25zdHJ1Y3RvcixcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyBhcyBCYXNlU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU2lnbmVkVHJhbnNhY3Rpb24sXG59IGZyb20gJy4uLyc7XG5pbXBvcnQgeyBPZmMgfSBmcm9tICcuL29mYyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyBleHRlbmRzIEJhc2VTaWduVHJhbnNhY3Rpb25PcHRpb25zIHtcbiAgdHhQcmVidWlsZDoge1xuICAgIHBheWxvYWQ6IHN0cmluZztcbiAgfTtcbiAgcHJ2OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB7IE9mY1Rva2VuQ29uZmlnIH07XG5cbmNvbnN0IHB1YmxpY0lkUmVnZXggPSAvXlthLWZcXGRdezMyfSQvaTtcbmV4cG9ydCBjbGFzcyBPZmNUb2tlbiBleHRlbmRzIE9mYyB7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlbkNvbmZpZzogT2ZjVG9rZW5Db25maWc7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgdG9rZW5Db25maWc6IE9mY1Rva2VuQ29uZmlnKSB7XG4gICAgc3VwZXIoYml0Z28pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgfVxuXG4gIGdldCBjb2luKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmNvaW47XG4gIH1cblxuICBnZXQgZGVjaW1hbFBsYWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5kZWNpbWFsUGxhY2VzO1xuICB9XG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmFtZTtcbiAgfVxuXG4gIGdldCBiYWNraW5nQ29pbigpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5iYWNraW5nQ29pbjtcbiAgfVxuXG4gIGdldCBpc0ZpYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuaXNGaWF0O1xuICB9XG5cbiAgZ2V0Q2hhaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldEZ1bGxOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRCYXNlRmFjdG9yKCkge1xuICAgIHJldHVybiBTdHJpbmcoTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbFBsYWNlcykpO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyBmb3Igc2VuZGluZyB2YWx1ZSBvZiAwXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIG9rYXkgdG8gc2VuZCAwIHZhbHVlLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcihjb25maWc6IE9mY1Rva2VuQ29uZmlnKTogQ29pbkNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gKGJpdGdvOiBCaXRHb0Jhc2UpID0+IG5ldyBPZmNUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NlbWJsZSBrZXljaGFpbiBhbmQgaGFsZi1zaWduIHByZWJ1aWx0IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHJldHVybnMge1Byb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+fVxuICAgKi9cbiAgYXN5bmMgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eFByZWJ1aWxkID0gcGFyYW1zLnR4UHJlYnVpbGQ7XG4gICAgY29uc3QgcGF5bG9hZCA9IHR4UHJlYnVpbGQucGF5bG9hZDtcbiAgICBjb25zdCBzaWduYXR1cmVCdWZmZXIgPSAoYXdhaXQgdGhpcy5zaWduTWVzc2FnZShwYXJhbXMsIHBheWxvYWQpKSBhcyBhbnk7XG4gICAgY29uc3Qgc2lnbmF0dXJlOiBzdHJpbmcgPSBzaWduYXR1cmVCdWZmZXIudG9TdHJpbmcoJ2hleCcpO1xuICAgIHJldHVybiB7IGhhbGZTaWduZWQ6IHsgcGF5bG9hZCwgc2lnbmF0dXJlIH0gfSBhcyBhbnk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gYWRkcmVzcyBpcyB2YWxpZCBmb3IgdGhpcyBvZmMgdG9rZW4uXG4gICAqXG4gICAqIFRoZXNlIGFkZHJlc3NlcyBhcmUgZWl0aGVyIGJnLTxwdWJsaWNpZD4sIHdoZXJlIHB1YmxpYyBpZCBpcyB0aGUgaW50ZXJuYWwgYWRkcmVzcyB0byBzZW5kIHRvLFxuICAgKiBvciBhcmUgYW4gYWRkcmVzcyB3aGljaCBpcyB2YWxpZCBvbiB0aGUgYmFja2luZyBjb2luIG9mIHRoaXMgb2ZjIHRva2VuLlxuICAgKiBAcGFyYW0gYWRkcmVzcyBhZGRyZXNzIHRvIGNoZWNrIGZvciB2YWxpZGl0eVxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzcz86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghaXNTdHJpbmcoYWRkcmVzcykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFkZHJlc3Muc3RhcnRzV2l0aCgnYmctJykpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gYWRkcmVzcy5zcGxpdCgnLScpO1xuICAgICAgY29uc3QgYWNjb3VudElkID0gcGFydHNbMV07XG4gICAgICByZXR1cm4gcGFydHMubGVuZ3RoID09PSAyICYmIHB1YmxpY0lkUmVnZXgudGVzdChhY2NvdW50SWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBiYWNraW5nQ29pbiA9IHRoaXMuYml0Z28uY29pbih0aGlzLmJhY2tpbmdDb2luKTtcbiAgICAgIHJldHVybiBiYWNraW5nQ29pbi5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

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


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