UNPKG

@proton/ccxt

Version:

A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges

258 lines (254 loc) 8.31 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /* eslint-disable max-classes-per-file */ // import { errorHierarchy } from './errorHierarchy.js'; // Commented out since I'm not sure this is mandatory anymore // and does not work out of the box with esm // /* ------------------------------------------------------------------------ */ // function subclass (BaseClass, classes, namespace = {}) { // for (const [className, subclasses] of Object.entries (classes)) { // const Class = Object.assign (namespace, { // /* By creating a named property, we trick compiler to assign our class constructor function a name. // Otherwise, all our error constructors would be shown as [Function: Error] in the debugger! And // the super-useful `e.constructor.name` magic wouldn't work — we then would have no chance to // obtain a error type string from an error instance programmatically! */ // [className]: class extends BaseClass { // constructor (message) { // super (message) // /* A workaround to make `instanceof` work on custom Error classes in transpiled ES5. // See my blog post for the explanation of this hack: // https://medium.com/@xpl/javascript-deriving-from-error-properly-8d2f8f315801 */ // this.constructor = Class // this.__proto__ = Class.prototype // this.name = className // this.message = message // // https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work // Object.setPrototypeOf (this, Class.prototype) // } // } // })[className] // subclass (Class, subclasses, namespace) // } // return namespace // } class BaseError extends Error { constructor(message) { super(message); this.name = 'BaseError'; } } // Exchange Error errors class ExchangeError extends Error { constructor(message) { super(message); this.name = 'ExchangeError'; } } class AuthenticationError extends ExchangeError { constructor(message) { super(message); this.name = 'AuthenticationError'; } } class PermissionDenied extends ExchangeError { constructor(message) { super(message); this.name = 'PermissionDenied'; } } class AccountNotEnabled extends ExchangeError { constructor(message) { super(message); this.name = 'AccountNotEnabled'; } } class AccountSuspended extends ExchangeError { constructor(message) { super(message); this.name = 'AccountSuspended'; } } class ArgumentsRequired extends ExchangeError { constructor(message) { super(message); this.name = 'ArgumentsRequired'; } } class BadRequest extends ExchangeError { constructor(message) { super(message); this.name = 'BadRequest'; } } class BadSymbol extends BadRequest { constructor(message) { super(message); this.name = 'BadSymbol'; } } class MarginModeAlreadySet extends BadRequest { constructor(message) { super(message); this.name = 'MarginModeAlreadySet'; } } class BadResponse extends ExchangeError { constructor(message) { super(message); this.name = 'BadResponse'; } } class NullResponse extends ExchangeError { constructor(message) { super(message); this.name = 'NullResponse'; } } class InsufficientFunds extends ExchangeError { constructor(message) { super(message); this.name = 'InsufficientFunds'; } } class InvalidAddress extends ExchangeError { constructor(message) { super(message); this.name = 'InvalidAddress'; } } class AddressPending extends InvalidAddress { constructor(message) { super(message); this.name = 'AddressPending'; } } class InvalidOrder extends ExchangeError { constructor(message) { super(message); this.name = 'InvalidOrder'; } } class OrderNotFound extends InvalidOrder { constructor(message) { super(message); this.name = 'OrderNotFound'; } } class OrderNotCached extends InvalidOrder { constructor(message) { super(message); this.name = 'OrderNotCached'; } } class CancelPending extends InvalidOrder { constructor(message) { super(message); this.name = 'CancelPending'; } } class OrderImmediatelyFillable extends InvalidOrder { constructor(message) { super(message); this.name = 'OrderImmediatelyFillable'; } } class OrderNotFillable extends InvalidOrder { constructor(message) { super(message); this.name = 'OrderNotFillable'; } } class DuplicateOrderId extends InvalidOrder { constructor(message) { super(message); this.name = 'DuplicateOrderId'; } } class NotSupported extends ExchangeError { constructor(message) { super(message); this.name = 'NotSupported'; } } // Network error class NetworkError extends BaseError { constructor(message) { super(message); this.name = 'NetworkError'; } } class DDoSProtection extends NetworkError { constructor(message) { super(message); this.name = 'DDoSProtection'; } } class RateLimitExceeded extends DDoSProtection { constructor(message) { super(message); this.name = 'RateLimitExceeded'; } } class ExchangeNotAvailable extends NetworkError { constructor(message) { super(message); this.name = 'ExchangeNotAvailable'; } } class OnMaintenance extends ExchangeNotAvailable { constructor(message) { super(message); this.name = 'OnMaintenance'; } } class InvalidNonce extends NetworkError { constructor(message) { super(message); this.name = 'InvalidNonce'; } } class RequestTimeout extends NetworkError { constructor(message) { super(message); this.name = 'RequestTimeout'; } } /* ------------------------------------------------------------------------ */ // export default subclass ( // // Root class // Error, // // Derived class hierarchy // errorHierarchy // ) const errors = { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending }; exports.AccountNotEnabled = AccountNotEnabled; exports.AccountSuspended = AccountSuspended; exports.AddressPending = AddressPending; exports.ArgumentsRequired = ArgumentsRequired; exports.AuthenticationError = AuthenticationError; exports.BadRequest = BadRequest; exports.BadResponse = BadResponse; exports.BadSymbol = BadSymbol; exports.BaseError = BaseError; exports.CancelPending = CancelPending; exports.DDoSProtection = DDoSProtection; exports.DuplicateOrderId = DuplicateOrderId; exports.ExchangeError = ExchangeError; exports.ExchangeNotAvailable = ExchangeNotAvailable; exports.InsufficientFunds = InsufficientFunds; exports.InvalidAddress = InvalidAddress; exports.InvalidNonce = InvalidNonce; exports.InvalidOrder = InvalidOrder; exports.MarginModeAlreadySet = MarginModeAlreadySet; exports.NetworkError = NetworkError; exports.NotSupported = NotSupported; exports.NullResponse = NullResponse; exports.OnMaintenance = OnMaintenance; exports.OrderImmediatelyFillable = OrderImmediatelyFillable; exports.OrderNotCached = OrderNotCached; exports.OrderNotFillable = OrderNotFillable; exports.OrderNotFound = OrderNotFound; exports.PermissionDenied = PermissionDenied; exports.RateLimitExceeded = RateLimitExceeded; exports.RequestTimeout = RequestTimeout; exports["default"] = errors;