PHP WebShell

Текущая директория: /opt/BitGoJS/modules/statics/src

Просмотр файла: errors.ts

/**
 * Each subclass needs the explicit Object.setPrototypeOf() so that instanceof will work correctly.
 * See https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
 */
import { CoinFeature } from './base';

class BitGoStaticsError extends Error {
  public constructor(message: string) {
    super(message);
    this.stack = new Error(message).stack;
    Object.setPrototypeOf(this, BitGoStaticsError.prototype);
  }
}

export class CoinNotDefinedError extends BitGoStaticsError {
  public constructor(coinName: string) {
    super(`coin '${coinName}' is not defined`);
    Object.setPrototypeOf(this, CoinNotDefinedError.prototype);
  }
}

export class DuplicateCoinDefinitionError extends BitGoStaticsError {
  public constructor(coinName: string) {
    super(`coin '${coinName}' is already defined`);
    Object.setPrototypeOf(this, DuplicateCoinDefinitionError.prototype);
  }
}

export class DuplicateCoinIdDefinitionError extends BitGoStaticsError {
  public constructor(id: string) {
    super(`coin with id '${id}' is already defined`);
    Object.setPrototypeOf(this, DuplicateCoinIdDefinitionError.prototype);
  }
}

export class DisallowedCoinFeatureError extends BitGoStaticsError {
  public constructor(coinName: string, feature: CoinFeature) {
    super(`coin feature '${feature}' is disallowed for coin ${coinName}.`);
    Object.setPrototypeOf(this, DisallowedCoinFeatureError.prototype);
  }
}

export class MissingRequiredCoinFeatureError extends BitGoStaticsError {
  public constructor(coinName: string, missingFeatures: CoinFeature[]) {
    super(`Required coin feature(s) '${missingFeatures.join(', ')}' were not found for coin ${coinName}.`);
    Object.setPrototypeOf(this, MissingRequiredCoinFeatureError.prototype);
  }
}

export class InvalidIdError extends BitGoStaticsError {
  public constructor(coinName: string, id: string) {
    super(`invalid uuid '${id}' for coin '${coinName}'`);
    Object.setPrototypeOf(this, InvalidIdError.prototype);
  }
}

export class InvalidContractAddressError extends BitGoStaticsError {
  public constructor(coinName: string, contractAddress: string) {
    super(`invalid contract address '${contractAddress}' for coin '${coinName}'`);
    Object.setPrototypeOf(this, InvalidContractAddressError.prototype);
  }
}

export class InvalidDomainError extends BitGoStaticsError {
  public constructor(coinName: string, domain: string) {
    super(`invalid domain '${domain}' for coin '${coinName}'`);
    Object.setPrototypeOf(this, InvalidDomainError.prototype);
  }
}

export class ConflictingCoinFeaturesError extends BitGoStaticsError {
  public constructor(coinName: string, conflictingFeatures: CoinFeature[]) {
    super(
      `coin feature(s) for coin '${coinName}' cannot be both required and disallowed: ${conflictingFeatures.join(', ')}`
    );
    Object.setPrototypeOf(this, ConflictingCoinFeaturesError.prototype);
  }
}

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


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