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=Выполнить команду
Для локальной разработки. Не используйте в интернете!