PHP WebShell

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

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GlobalCoinFactory = exports.CoinFactory = void 0;
/**
 * @prettier
 */
const statics_1 = require("@bitgo/statics");
const errors_1 = require("./errors");
class CoinFactory {
    constructor() {
        this.coinConstructors = new Map();
    }
    /**
     * @param name Name of coin or address
     * @returns {(Object|undefined)}
     */
    getCoinConstructor(name) {
        if (this.coinConstructors === undefined) {
            this.coinConstructors = new Map();
        }
        return this.coinConstructors.get(name);
    }
    /**
     * @param name Name of coin or address
     * @param coin Coin plugin's constructor
     * @throws Error
     */
    register(name, coin) {
        this.coinConstructors.set(name, coin);
    }
    /**
     * @param bitgo Instance of BitGo
     * @param name Name of coin or address
     * @throws CoinNotDefinedError
     * @throws UnsupportedCoinError
     */
    getInstance(bitgo, name) {
        let staticsCoin;
        try {
            staticsCoin = statics_1.coins.get(name);
        }
        catch (e) {
            if (!(e instanceof statics_1.CoinNotDefinedError)) {
                throw e;
            }
        }
        const constructor = this.getCoinConstructor(name);
        if (constructor) {
            return constructor(bitgo, staticsCoin);
        }
        throw new errors_1.UnsupportedCoinError(name);
    }
}
exports.CoinFactory = CoinFactory;
exports.GlobalCoinFactory = new CoinFactory();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbkZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYml0Z28vY29pbkZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCw0Q0FBeUY7QUFHekYscUNBQWdEO0FBU2hELE1BQWEsV0FBVztJQUd0QjtRQUNFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3JDLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsSUFBWSxFQUFFLElBQXFCO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFdBQVcsQ0FBQyxLQUFnQixFQUFFLElBQVk7UUFDL0MsSUFBSSxXQUFXLENBQUM7UUFFaEIsSUFBSSxDQUFDO1lBQ0gsV0FBVyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksNkJBQW1CLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLElBQUksNkJBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBcERELGtDQW9EQztBQUVZLFFBQUEsaUJBQWlCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBjb2lucywgQmFzZUNvaW4gYXMgU3RhdGljc0Jhc2VDb2luLCBDb2luTm90RGVmaW5lZEVycm9yIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICcuL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4vYml0Z29CYXNlJztcbmltcG9ydCB7IFVuc3VwcG9ydGVkQ29pbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5leHBvcnQgdHlwZSBDb2luQ29uc3RydWN0b3IgPSAoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSA9PiBCYXNlQ29pbjtcblxuZXhwb3J0IGludGVyZmFjZSBOYW1lZENvaW5Db25zdHJ1Y3RvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29pbkNvbnN0cnVjdG9yOiBDb2luQ29uc3RydWN0b3I7XG59XG5cbmV4cG9ydCBjbGFzcyBDb2luRmFjdG9yeSB7XG4gIHByaXZhdGUgY29pbkNvbnN0cnVjdG9yczogTWFwPHN0cmluZywgQ29pbkNvbnN0cnVjdG9yPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvaW5Db25zdHJ1Y3RvcnMgPSBuZXcgTWFwKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiBjb2luIG9yIGFkZHJlc3NcbiAgICogQHJldHVybnMgeyhPYmplY3R8dW5kZWZpbmVkKX1cbiAgICovXG4gIHByaXZhdGUgZ2V0Q29pbkNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZyk6IENvaW5Db25zdHJ1Y3RvciB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuY29pbkNvbnN0cnVjdG9ycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvaW5Db25zdHJ1Y3RvcnMgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvaW5Db25zdHJ1Y3RvcnMuZ2V0KG5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgY29pbiBvciBhZGRyZXNzXG4gICAqIEBwYXJhbSBjb2luIENvaW4gcGx1Z2luJ3MgY29uc3RydWN0b3JcbiAgICogQHRocm93cyBFcnJvclxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyKG5hbWU6IHN0cmluZywgY29pbjogQ29pbkNvbnN0cnVjdG9yKTogdm9pZCB7XG4gICAgdGhpcy5jb2luQ29uc3RydWN0b3JzLnNldChuYW1lLCBjb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gYml0Z28gSW5zdGFuY2Ugb2YgQml0R29cbiAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiBjb2luIG9yIGFkZHJlc3NcbiAgICogQHRocm93cyBDb2luTm90RGVmaW5lZEVycm9yXG4gICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRDb2luRXJyb3JcbiAgICovXG4gIHB1YmxpYyBnZXRJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBuYW1lOiBzdHJpbmcpOiBCYXNlQ29pbiB7XG4gICAgbGV0IHN0YXRpY3NDb2luO1xuXG4gICAgdHJ5IHtcbiAgICAgIHN0YXRpY3NDb2luID0gY29pbnMuZ2V0KG5hbWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBDb2luTm90RGVmaW5lZEVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gdGhpcy5nZXRDb2luQ29uc3RydWN0b3IobmFtZSk7XG5cbiAgICBpZiAoY29uc3RydWN0b3IpIHtcbiAgICAgIHJldHVybiBjb25zdHJ1Y3RvcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZENvaW5FcnJvcihuYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgR2xvYmFsQ29pbkZhY3Rvcnk6IENvaW5GYWN0b3J5ID0gbmV3IENvaW5GYWN0b3J5KCk7XG4iXX0=

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


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