ccxt
Version:
1,012 lines (1,010 loc) • 435 kB
JavaScript
// ----------------------------------------------------------------------------
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
// ---------------------------------------------------------------------------
import Exchange from './abstract/bybit.js';
import { TICK_SIZE } from './base/functions/number.js';
import { AuthenticationError, ExchangeError, ArgumentsRequired, PermissionDenied, AccountSuspended, InvalidOrder, OrderNotFound, InsufficientFunds, BadRequest, RateLimitExceeded, InvalidNonce, NotSupported, RequestTimeout, MarginModeAlreadySet, NoChange, ManualInteractionNeeded, BadSymbol } from './base/errors.js';
import { Precise } from './base/Precise.js';
import { sha256 } from './static_dependencies/noble-hashes/sha256.js';
import { rsa } from './base/functions/rsa.js';
// ---------------------------------------------------------------------------
/**
* @class bybit
* @augments Exchange
*/
export default class bybit extends Exchange {
describe() {
return this.deepExtend(super.describe(), {
'id': 'bybit',
'name': 'Bybit',
'countries': ['VG'],
'version': 'v5',
'userAgent': undefined,
'rateLimit': 20,
'hostname': 'bybit.com',
'pro': true,
'certified': true,
'has': {
'CORS': true,
'spot': true,
'margin': true,
'swap': true,
'future': true,
'option': true,
'borrowCrossMargin': true,
'cancelAllOrders': true,
'cancelAllOrdersAfter': true,
'cancelOrder': true,
'cancelOrders': true,
'cancelOrdersForSymbols': true,
'closeAllPositions': false,
'closePosition': false,
'createConvertTrade': true,
'createMarketBuyOrderWithCost': true,
'createMarketSellOrderWithCost': true,
'createOrder': true,
'createOrders': true,
'createOrderWithTakeProfitAndStopLoss': true,
'createPostOnlyOrder': true,
'createReduceOnlyOrder': true,
'createStopLimitOrder': true,
'createStopLossOrder': true,
'createStopMarketOrder': true,
'createStopOrder': true,
'createTakeProfitOrder': true,
'createTrailingAmountOrder': true,
'createTriggerOrder': true,
'editOrder': true,
'editOrders': true,
'fetchAllGreeks': true,
'fetchBalance': true,
'fetchBidsAsks': 'emulated',
'fetchBorrowInterest': false,
'fetchBorrowRateHistories': false,
'fetchBorrowRateHistory': false,
'fetchCanceledAndClosedOrders': true,
'fetchCanceledOrders': true,
'fetchClosedOrder': true,
'fetchClosedOrders': true,
'fetchConvertCurrencies': true,
'fetchConvertQuote': true,
'fetchConvertTrade': true,
'fetchConvertTradeHistory': true,
'fetchCrossBorrowRate': true,
'fetchCrossBorrowRates': false,
'fetchCurrencies': true,
'fetchDeposit': false,
'fetchDepositAddress': true,
'fetchDepositAddresses': false,
'fetchDepositAddressesByNetwork': true,
'fetchDeposits': true,
'fetchDepositWithdrawFee': 'emulated',
'fetchDepositWithdrawFees': true,
'fetchFundingHistory': true,
'fetchFundingRate': 'emulated',
'fetchFundingRateHistory': true,
'fetchFundingRates': true,
'fetchGreeks': true,
'fetchIndexOHLCV': true,
'fetchIsolatedBorrowRate': false,
'fetchIsolatedBorrowRates': false,
'fetchLedger': true,
'fetchLeverage': true,
'fetchLeverageTiers': true,
'fetchLongShortRatio': false,
'fetchLongShortRatioHistory': true,
'fetchMarginAdjustmentHistory': false,
'fetchMarketLeverageTiers': true,
'fetchMarkets': true,
'fetchMarkOHLCV': true,
'fetchMyLiquidations': true,
'fetchMySettlementHistory': true,
'fetchMyTrades': true,
'fetchOHLCV': true,
'fetchOpenInterest': true,
'fetchOpenInterestHistory': true,
'fetchOpenOrder': true,
'fetchOpenOrders': true,
'fetchOption': true,
'fetchOptionChain': true,
'fetchOrder': true,
'fetchOrderBook': true,
'fetchOrders': false,
'fetchOrderTrades': true,
'fetchPosition': true,
'fetchPositionHistory': 'emulated',
'fetchPositions': true,
'fetchPositionsHistory': true,
'fetchPremiumIndexOHLCV': true,
'fetchSettlementHistory': true,
'fetchTicker': true,
'fetchTickers': true,
'fetchTime': true,
'fetchTrades': true,
'fetchTradingFee': true,
'fetchTradingFees': true,
'fetchTransactions': false,
'fetchTransfers': true,
'fetchUnderlyingAssets': false,
'fetchVolatilityHistory': true,
'fetchWithdrawals': true,
'repayCrossMargin': true,
'sandbox': true,
'setLeverage': true,
'setMarginMode': true,
'setPositionMode': true,
'transfer': true,
'withdraw': true,
},
'timeframes': {
'1m': '1',
'3m': '3',
'5m': '5',
'15m': '15',
'30m': '30',
'1h': '60',
'2h': '120',
'4h': '240',
'6h': '360',
'12h': '720',
'1d': 'D',
'1w': 'W',
'1M': 'M',
},
'urls': {
'test': {
'spot': 'https://api-testnet.{hostname}',
'futures': 'https://api-testnet.{hostname}',
'v2': 'https://api-testnet.{hostname}',
'public': 'https://api-testnet.{hostname}',
'private': 'https://api-testnet.{hostname}',
},
'logo': 'https://github.com/user-attachments/assets/97a5d0b3-de10-423d-90e1-6620960025ed',
'api': {
'spot': 'https://api.{hostname}',
'futures': 'https://api.{hostname}',
'v2': 'https://api.{hostname}',
'public': 'https://api.{hostname}',
'private': 'https://api.{hostname}',
},
'demotrading': {
'spot': 'https://api-demo.{hostname}',
'futures': 'https://api-demo.{hostname}',
'v2': 'https://api-demo.{hostname}',
'public': 'https://api-demo.{hostname}',
'private': 'https://api-demo.{hostname}',
},
'www': 'https://www.bybit.com',
'doc': [
'https://bybit-exchange.github.io/docs/inverse/',
'https://bybit-exchange.github.io/docs/linear/',
'https://github.com/bybit-exchange',
],
'fees': 'https://help.bybit.com/hc/en-us/articles/360039261154',
'referral': 'https://www.bybit.com/register?affiliate_id=35953',
},
'api': {
'public': {
'get': {
// spot
'spot/v3/public/symbols': 1,
'spot/v3/public/quote/depth': 1,
'spot/v3/public/quote/depth/merged': 1,
'spot/v3/public/quote/trades': 1,
'spot/v3/public/quote/kline': 1,
'spot/v3/public/quote/ticker/24hr': 1,
'spot/v3/public/quote/ticker/price': 1,
'spot/v3/public/quote/ticker/bookTicker': 1,
'spot/v3/public/server-time': 1,
'spot/v3/public/infos': 1,
'spot/v3/public/margin-product-infos': 1,
'spot/v3/public/margin-ensure-tokens': 1,
// data
'v3/public/time': 1,
'contract/v3/public/copytrading/symbol/list': 1,
// derivative
'derivatives/v3/public/order-book/L2': 1,
'derivatives/v3/public/kline': 1,
'derivatives/v3/public/tickers': 1,
'derivatives/v3/public/instruments-info': 1,
'derivatives/v3/public/mark-price-kline': 1,
'derivatives/v3/public/index-price-kline': 1,
'derivatives/v3/public/funding/history-funding-rate': 1,
'derivatives/v3/public/risk-limit/list': 1,
'derivatives/v3/public/delivery-price': 1,
'derivatives/v3/public/recent-trade': 1,
'derivatives/v3/public/open-interest': 1,
'derivatives/v3/public/insurance': 1,
// v5
'v5/announcements/index': 5,
// market
'v5/market/time': 5,
'v5/market/kline': 5,
'v5/market/mark-price-kline': 5,
'v5/market/index-price-kline': 5,
'v5/market/premium-index-price-kline': 5,
'v5/market/instruments-info': 5,
'v5/market/orderbook': 5,
'v5/market/tickers': 5,
'v5/market/funding/history': 5,
'v5/market/recent-trade': 5,
'v5/market/open-interest': 5,
'v5/market/historical-volatility': 5,
'v5/market/insurance': 5,
'v5/market/risk-limit': 5,
'v5/market/delivery-price': 5,
'v5/market/account-ratio': 5,
// spot leverage token
'v5/spot-lever-token/info': 5,
'v5/spot-lever-token/reference': 5,
// spot margin trade
'v5/spot-margin-trade/data': 5,
'v5/spot-margin-trade/collateral': 5,
'v5/spot-cross-margin-trade/data': 5,
'v5/spot-cross-margin-trade/pledge-token': 5,
'v5/spot-cross-margin-trade/borrow-token': 5,
// crypto loan
'v5/crypto-loan/collateral-data': 5,
'v5/crypto-loan/loanable-data': 5,
// institutional lending
'v5/ins-loan/product-infos': 5,
'v5/ins-loan/ensure-tokens-convert': 5,
// earn
'v5/earn/product': 5,
},
},
'private': {
'get': {
'v5/market/instruments-info': 5,
// Legacy inverse swap
'v2/private/wallet/fund/records': 25,
// spot
'spot/v3/private/order': 2.5,
'spot/v3/private/open-orders': 2.5,
'spot/v3/private/history-orders': 2.5,
'spot/v3/private/my-trades': 2.5,
'spot/v3/private/account': 2.5,
'spot/v3/private/reference': 2.5,
'spot/v3/private/record': 2.5,
'spot/v3/private/cross-margin-orders': 10,
'spot/v3/private/cross-margin-account': 10,
'spot/v3/private/cross-margin-loan-info': 10,
'spot/v3/private/cross-margin-repay-history': 10,
'spot/v3/private/margin-loan-infos': 10,
'spot/v3/private/margin-repaid-infos': 10,
'spot/v3/private/margin-ltv': 10,
// account
'asset/v3/private/transfer/inter-transfer/list/query': 50,
'asset/v3/private/transfer/sub-member/list/query': 50,
'asset/v3/private/transfer/sub-member-transfer/list/query': 50,
'asset/v3/private/transfer/universal-transfer/list/query': 25,
'asset/v3/private/coin-info/query': 25,
'asset/v3/private/deposit/address/query': 10,
'contract/v3/private/copytrading/order/list': 30,
'contract/v3/private/copytrading/position/list': 40,
'contract/v3/private/copytrading/wallet/balance': 25,
'contract/v3/private/position/limit-info': 25,
'contract/v3/private/order/unfilled-orders': 1,
'contract/v3/private/order/list': 1,
'contract/v3/private/position/list': 1,
'contract/v3/private/execution/list': 1,
'contract/v3/private/position/closed-pnl': 1,
'contract/v3/private/account/wallet/balance': 1,
'contract/v3/private/account/fee-rate': 1,
'contract/v3/private/account/wallet/fund-records': 1,
// derivative
'unified/v3/private/order/unfilled-orders': 1,
'unified/v3/private/order/list': 1,
'unified/v3/private/position/list': 1,
'unified/v3/private/execution/list': 1,
'unified/v3/private/delivery-record': 1,
'unified/v3/private/settlement-record': 1,
'unified/v3/private/account/wallet/balance': 1,
'unified/v3/private/account/transaction-log': 1,
'unified/v3/private/account/borrow-history': 1,
'unified/v3/private/account/borrow-rate': 1,
'unified/v3/private/account/info': 1,
'user/v3/private/frozen-sub-member': 10,
'user/v3/private/query-sub-members': 5,
'user/v3/private/query-api': 5,
'user/v3/private/get-member-type': 1,
'asset/v3/private/transfer/transfer-coin/list/query': 50,
'asset/v3/private/transfer/account-coin/balance/query': 50,
'asset/v3/private/transfer/account-coins/balance/query': 25,
'asset/v3/private/transfer/asset-info/query': 50,
'asset/v3/public/deposit/allowed-deposit-list/query': 0.17,
'asset/v3/private/deposit/record/query': 10,
'asset/v3/private/withdraw/record/query': 10,
// v5
// trade
'v5/order/realtime': 5,
'v5/order/history': 5,
'v5/order/spot-borrow-check': 1,
// position
'v5/position/list': 5,
'v5/execution/list': 5,
'v5/position/closed-pnl': 5,
'v5/position/move-history': 5,
// pre-upgrade
'v5/pre-upgrade/order/history': 5,
'v5/pre-upgrade/execution/list': 5,
'v5/pre-upgrade/position/closed-pnl': 5,
'v5/pre-upgrade/account/transaction-log': 5,
'v5/pre-upgrade/asset/delivery-record': 5,
'v5/pre-upgrade/asset/settlement-record': 5,
// account
'v5/account/wallet-balance': 1,
'v5/account/borrow-history': 1,
'v5/account/collateral-info': 1,
'v5/asset/coin-greeks': 1,
'v5/account/fee-rate': 10,
'v5/account/info': 5,
'v5/account/transaction-log': 1,
'v5/account/contract-transaction-log': 1,
'v5/account/smp-group': 1,
'v5/account/mmp-state': 5,
'v5/account/withdrawal': 5,
// asset
'v5/asset/exchange/query-coin-list': 0.5,
'v5/asset/exchange/convert-result-query': 0.5,
'v5/asset/exchange/query-convert-history': 0.5,
'v5/asset/exchange/order-record': 5,
'v5/asset/delivery-record': 5,
'v5/asset/settlement-record': 5,
'v5/asset/transfer/query-asset-info': 50,
'v5/asset/transfer/query-account-coins-balance': 25,
'v5/asset/transfer/query-account-coin-balance': 50,
'v5/asset/transfer/query-transfer-coin-list': 50,
'v5/asset/transfer/query-inter-transfer-list': 50,
'v5/asset/transfer/query-sub-member-list': 50,
'v5/asset/transfer/query-universal-transfer-list': 25,
'v5/asset/deposit/query-allowed-list': 5,
'v5/asset/deposit/query-record': 10,
'v5/asset/deposit/query-sub-member-record': 10,
'v5/asset/deposit/query-internal-record': 5,
'v5/asset/deposit/query-address': 10,
'v5/asset/deposit/query-sub-member-address': 10,
'v5/asset/coin/query-info': 28,
'v5/asset/withdraw/query-record': 10,
'v5/asset/withdraw/withdrawable-amount': 5,
'v5/asset/withdraw/vasp/list': 5,
// user
'v5/user/query-sub-members': 5,
'v5/user/query-api': 5,
'v5/user/sub-apikeys': 5,
'v5/user/get-member-type': 5,
'v5/user/aff-customer-info': 5,
'v5/user/del-submember': 5,
'v5/user/submembers': 5,
// affilate
'v5/affiliate/aff-user-list': 5,
// spot leverage token
'v5/spot-lever-token/order-record': 1,
// spot margin trade
'v5/spot-margin-trade/interest-rate-history': 5,
'v5/spot-margin-trade/state': 5,
'v5/spot-cross-margin-trade/loan-info': 1,
'v5/spot-cross-margin-trade/account': 1,
'v5/spot-cross-margin-trade/orders': 1,
'v5/spot-cross-margin-trade/repay-history': 1,
// crypto loan
'v5/crypto-loan/borrowable-collateralisable-number': 5,
'v5/crypto-loan/ongoing-orders': 5,
'v5/crypto-loan/repayment-history': 5,
'v5/crypto-loan/borrow-history': 5,
'v5/crypto-loan/max-collateral-amount': 5,
'v5/crypto-loan/adjustment-history': 5,
// institutional lending
'v5/ins-loan/product-infos': 5,
'v5/ins-loan/ensure-tokens-convert': 5,
'v5/ins-loan/loan-order': 5,
'v5/ins-loan/repaid-history': 5,
'v5/ins-loan/ltv-convert': 5,
// c2c lending
'v5/lending/info': 5,
'v5/lending/history-order': 5,
'v5/lending/account': 5,
// broker
'v5/broker/earning-record': 5,
'v5/broker/earnings-info': 5,
'v5/broker/account-info': 5,
'v5/broker/asset/query-sub-member-deposit-record': 10,
// earn
'v5/earn/order': 5,
'v5/earn/position': 5,
},
'post': {
// spot
'spot/v3/private/order': 2.5,
'spot/v3/private/cancel-order': 2.5,
'spot/v3/private/cancel-orders': 2.5,
'spot/v3/private/cancel-orders-by-ids': 2.5,
'spot/v3/private/purchase': 2.5,
'spot/v3/private/redeem': 2.5,
'spot/v3/private/cross-margin-loan': 10,
'spot/v3/private/cross-margin-repay': 10,
// account
'asset/v3/private/transfer/inter-transfer': 150,
'asset/v3/private/withdraw/create': 300,
'asset/v3/private/withdraw/cancel': 50,
'asset/v3/private/transfer/sub-member-transfer': 150,
'asset/v3/private/transfer/transfer-sub-member-save': 150,
'asset/v3/private/transfer/universal-transfer': 10,
'user/v3/private/create-sub-member': 10,
'user/v3/private/create-sub-api': 10,
'user/v3/private/update-api': 10,
'user/v3/private/delete-api': 10,
'user/v3/private/update-sub-api': 10,
'user/v3/private/delete-sub-api': 10,
// contract
'contract/v3/private/copytrading/order/create': 30,
'contract/v3/private/copytrading/order/cancel': 30,
'contract/v3/private/copytrading/order/close': 30,
'contract/v3/private/copytrading/position/close': 40,
'contract/v3/private/copytrading/position/set-leverage': 40,
'contract/v3/private/copytrading/wallet/transfer': 25,
'contract/v3/private/copytrading/order/trading-stop': 2.5,
'contract/v3/private/order/create': 1,
'contract/v3/private/order/cancel': 1,
'contract/v3/private/order/cancel-all': 1,
'contract/v3/private/order/replace': 1,
'contract/v3/private/position/set-auto-add-margin': 1,
'contract/v3/private/position/switch-isolated': 1,
'contract/v3/private/position/switch-mode': 1,
'contract/v3/private/position/switch-tpsl-mode': 1,
'contract/v3/private/position/set-leverage': 1,
'contract/v3/private/position/trading-stop': 1,
'contract/v3/private/position/set-risk-limit': 1,
'contract/v3/private/account/setMarginMode': 1,
// derivative
'unified/v3/private/order/create': 30,
'unified/v3/private/order/replace': 30,
'unified/v3/private/order/cancel': 30,
'unified/v3/private/order/create-batch': 30,
'unified/v3/private/order/replace-batch': 30,
'unified/v3/private/order/cancel-batch': 30,
'unified/v3/private/order/cancel-all': 30,
'unified/v3/private/position/set-leverage': 2.5,
'unified/v3/private/position/tpsl/switch-mode': 2.5,
'unified/v3/private/position/set-risk-limit': 2.5,
'unified/v3/private/position/trading-stop': 2.5,
'unified/v3/private/account/upgrade-unified-account': 2.5,
'unified/v3/private/account/setMarginMode': 2.5,
// tax
'fht/compliance/tax/v3/private/registertime': 50,
'fht/compliance/tax/v3/private/create': 50,
'fht/compliance/tax/v3/private/status': 50,
'fht/compliance/tax/v3/private/url': 50,
// v5
// trade
'v5/order/create': 2.5,
'v5/order/amend': 5,
'v5/order/cancel': 2.5,
'v5/order/cancel-all': 50,
'v5/order/create-batch': 5,
'v5/order/amend-batch': 5,
'v5/order/cancel-batch': 5,
'v5/order/disconnected-cancel-all': 5,
// position
'v5/position/set-leverage': 5,
'v5/position/switch-isolated': 5,
'v5/position/set-tpsl-mode': 5,
'v5/position/switch-mode': 5,
'v5/position/set-risk-limit': 5,
'v5/position/trading-stop': 5,
'v5/position/set-auto-add-margin': 5,
'v5/position/add-margin': 5,
'v5/position/move-positions': 5,
'v5/position/confirm-pending-mmr': 5,
// account
'v5/account/upgrade-to-uta': 5,
'v5/account/quick-repayment': 5,
'v5/account/set-margin-mode': 5,
'v5/account/set-hedging-mode': 5,
'v5/account/mmp-modify': 5,
'v5/account/mmp-reset': 5,
// asset
'v5/asset/exchange/quote-apply': 1,
'v5/asset/exchange/convert-execute': 1,
'v5/asset/transfer/inter-transfer': 50,
'v5/asset/transfer/save-transfer-sub-member': 150,
'v5/asset/transfer/universal-transfer': 10,
'v5/asset/deposit/deposit-to-account': 5,
'v5/asset/withdraw/create': 50,
'v5/asset/withdraw/cancel': 50,
// user
'v5/user/create-sub-member': 10,
'v5/user/create-sub-api': 10,
'v5/user/frozen-sub-member': 10,
'v5/user/update-api': 10,
'v5/user/update-sub-api': 10,
'v5/user/delete-api': 10,
'v5/user/delete-sub-api': 10,
// spot leverage token
'v5/spot-lever-token/purchase': 2.5,
'v5/spot-lever-token/redeem': 2.5,
// spot margin trade
'v5/spot-margin-trade/switch-mode': 5,
'v5/spot-margin-trade/set-leverage': 5,
'v5/spot-cross-margin-trade/loan': 2.5,
'v5/spot-cross-margin-trade/repay': 2.5,
'v5/spot-cross-margin-trade/switch': 2.5,
// crypto loan
'v5/crypto-loan/borrow': 5,
'v5/crypto-loan/repay': 5,
'v5/crypto-loan/adjust-ltv': 5,
// institutional lending
'v5/ins-loan/association-uid': 5,
// c2c lending
'v5/lending/purchase': 5,
'v5/lending/redeem': 5,
'v5/lending/redeem-cancel': 5,
'v5/account/set-collateral-switch': 5,
'v5/account/set-collateral-switch-batch': 5,
// demo trading
'v5/account/demo-apply-money': 5,
// broker
'v5/broker/award/info': 5,
'v5/broker/award/distribute-award': 5,
'v5/broker/award/distribution-record': 5,
// earn
'v5/earn/place-order': 5,
},
},
},
'httpExceptions': {
'403': RateLimitExceeded, // Forbidden -- You request too many times
},
'exceptions': {
// Uncodumented explanation of error strings:
// - oc_diff: order cost needed to place this order
// - new_oc: total order cost of open orders including the order you are trying to open
// - ob: order balance - the total cost of current open orders
// - ab: available balance
'exact': {
'-10009': BadRequest,
'-1004': BadRequest,
'-1021': BadRequest,
'-1103': BadRequest,
'-1140': InvalidOrder,
'-1197': InvalidOrder,
'-2013': InvalidOrder,
'-2015': AuthenticationError,
'-6017': BadRequest,
'-6025': BadRequest,
'-6029': BadRequest,
'5004': ExchangeError,
'7001': BadRequest,
'10001': BadRequest,
'10002': InvalidNonce,
'10003': AuthenticationError,
'10004': AuthenticationError,
'10005': PermissionDenied,
'10006': RateLimitExceeded,
'10007': AuthenticationError,
'10008': AccountSuspended,
'10009': AuthenticationError,
'10010': PermissionDenied,
'10014': BadRequest,
'10016': ExchangeError,
'10017': BadRequest,
'10018': RateLimitExceeded,
'10020': PermissionDenied,
'10024': PermissionDenied,
'10027': PermissionDenied,
'10028': PermissionDenied,
'10029': PermissionDenied,
'12137': InvalidOrder,
'12201': BadRequest,
'12141': BadRequest,
'100028': PermissionDenied,
'110001': OrderNotFound,
'110003': InvalidOrder,
'110004': InsufficientFunds,
'110005': InvalidOrder,
'110006': InsufficientFunds,
'110007': InsufficientFunds,
'110008': InvalidOrder,
'110009': InvalidOrder,
'110010': InvalidOrder,
'110011': InvalidOrder,
'110012': InsufficientFunds,
'110013': BadRequest,
'110014': InsufficientFunds,
'110015': BadRequest,
'110016': InvalidOrder,
'110017': InvalidOrder,
'110018': BadRequest,
'110019': InvalidOrder,
'110020': InvalidOrder,
'110021': InvalidOrder,
'110022': InvalidOrder,
'110023': InvalidOrder,
'110024': BadRequest,
'110025': NoChange,
'110026': MarginModeAlreadySet,
'110027': NoChange,
'110028': BadRequest,
'110029': BadRequest,
'110030': InvalidOrder,
'110031': InvalidOrder,
'110032': InvalidOrder,
'110033': InvalidOrder,
'110034': InvalidOrder,
'110035': InvalidOrder,
'110036': InvalidOrder,
'110037': InvalidOrder,
'110038': InvalidOrder,
'110039': InvalidOrder,
'110040': InvalidOrder,
'110041': InvalidOrder,
'110042': InvalidOrder,
'110043': BadRequest,
'110044': InsufficientFunds,
'110045': InsufficientFunds,
'110046': BadRequest,
'110047': BadRequest,
'110048': BadRequest,
'110049': BadRequest,
'110050': BadRequest,
'110051': InsufficientFunds,
'110052': InsufficientFunds,
'110053': InsufficientFunds,
'110054': InvalidOrder,
'110055': InvalidOrder,
'110056': InvalidOrder,
'110057': InvalidOrder,
'110058': InvalidOrder,
'110059': InvalidOrder,
'110060': BadRequest,
'110061': BadRequest,
'110062': BadRequest,
'110063': ExchangeError,
'110064': InvalidOrder,
'110065': PermissionDenied,
'110066': ExchangeError,
'110067': PermissionDenied,
'110068': PermissionDenied,
'110069': PermissionDenied,
'110070': InvalidOrder,
'110071': ExchangeError,
'110072': InvalidOrder,
'110073': ExchangeError,
'110092': InvalidOrder,
'110093': InvalidOrder,
'110094': InvalidOrder,
'130006': InvalidOrder,
'130021': InsufficientFunds,
'130074': InvalidOrder,
'131001': InsufficientFunds,
'131084': ExchangeError,
'131200': ExchangeError,
'131201': ExchangeError,
'131202': BadRequest,
'131203': BadRequest,
'131204': BadRequest,
'131205': BadRequest,
'131206': ExchangeError,
'131207': BadRequest,
'131208': ExchangeError,
'131209': BadRequest,
'131210': BadRequest,
'131211': BadRequest,
'131212': InsufficientFunds,
'131213': BadRequest,
'131214': BadRequest,
'131215': BadRequest,
'131216': ExchangeError,
'131217': ExchangeError,
'131231': NotSupported,
'131232': NotSupported,
'131002': BadRequest,
'131003': ExchangeError,
'131004': AuthenticationError,
'131085': InsufficientFunds,
'131086': BadRequest,
'131088': BadRequest,
'131089': BadRequest,
'131090': ExchangeError,
'131091': ExchangeError,
'131092': ExchangeError,
'131093': ExchangeError,
'131094': BadRequest,
'131095': BadRequest,
'131096': BadRequest,
'131097': ExchangeError,
'131098': ExchangeError,
'131099': ExchangeError,
'140001': OrderNotFound,
'140003': InvalidOrder,
'140004': InsufficientFunds,
'140005': InvalidOrder,
'140006': InsufficientFunds,
'140007': InsufficientFunds,
'140008': InvalidOrder,
'140009': InvalidOrder,
'140010': InvalidOrder,
'140011': InvalidOrder,
'140012': InsufficientFunds,
'140013': BadRequest,
'140014': InsufficientFunds,
'140015': InvalidOrder,
'140016': InvalidOrder,
'140017': InvalidOrder,
'140018': BadRequest,
'140019': InvalidOrder,
'140020': InvalidOrder,
'140021': InvalidOrder,
'140022': InvalidOrder,
'140023': InvalidOrder,
'140024': BadRequest,
'140025': BadRequest,
'140026': BadRequest,
'140027': BadRequest,
'140028': InvalidOrder,
'140029': BadRequest,
'140030': InvalidOrder,
'140031': BadRequest,
'140032': InvalidOrder,
'140033': InvalidOrder,
'140034': InvalidOrder,
'140035': InvalidOrder,
'140036': BadRequest,
'140037': InvalidOrder,
'140038': BadRequest,
'140039': BadRequest,
'140040': InvalidOrder,
'140041': InvalidOrder,
'140042': InvalidOrder,
'140043': BadRequest,
'140044': InsufficientFunds,
'140045': InsufficientFunds,
'140046': BadRequest,
'140047': BadRequest,
'140048': BadRequest,
'140049': BadRequest,
'140050': InvalidOrder,
'140051': InsufficientFunds,
'140052': InsufficientFunds,
'140053': InsufficientFunds,
'140054': InvalidOrder,
'140055': InvalidOrder,
'140056': InvalidOrder,
'140057': InvalidOrder,
'140058': InvalidOrder,
'140059': InvalidOrder,
'140060': BadRequest,
'140061': BadRequest,
'140062': BadRequest,
'140063': ExchangeError,
'140064': InvalidOrder,
'140065': PermissionDenied,
'140066': ExchangeError,
'140067': PermissionDenied,
'140068': PermissionDenied,
'140069': PermissionDenied,
'140070': InvalidOrder,
'170001': ExchangeError,
'170005': InvalidOrder,
'170007': RequestTimeout,
'170010': InvalidOrder,
'170011': InvalidOrder,
'170019': InvalidOrder,
'170031': ExchangeError,
'170032': ExchangeError,
'170033': InsufficientFunds,
'170034': InsufficientFunds,
'170035': BadRequest,
'170036': BadRequest,
'170037': BadRequest,
'170105': BadRequest,
'170115': InvalidOrder,
'170116': InvalidOrder,
'170117': InvalidOrder,
'170121': InvalidOrder,
'170124': InvalidOrder,
'170130': BadRequest,
'170131': InsufficientFunds,
'170132': InvalidOrder,
'170133': InvalidOrder,
'170134': InvalidOrder,
'170135': InvalidOrder,
'170136': InvalidOrder,
'170137': InvalidOrder,
'170139': InvalidOrder,
'170140': InvalidOrder,
'170141': InvalidOrder,
'170142': InvalidOrder,
'170143': InvalidOrder,
'170144': InvalidOrder,
'170145': InvalidOrder,
'170146': InvalidOrder,
'170147': InvalidOrder,
'170148': InvalidOrder,
'170149': ExchangeError,
'170150': ExchangeError,
'170151': InvalidOrder,
'170157': InvalidOrder,
'170159': InvalidOrder,
'170190': InvalidOrder,
'170191': InvalidOrder,
'170192': InvalidOrder,
'170193': InvalidOrder,
'170194': InvalidOrder,
'170195': InvalidOrder,
'170196': InvalidOrder,
'170197': InvalidOrder,
'170198': InvalidOrder,
'170199': InvalidOrder,
'170200': InvalidOrder,
'170201': PermissionDenied,
'170202': InvalidOrder,
'170203': InvalidOrder,
'170204': InvalidOrder,
'170206': InvalidOrder,
'170210': InvalidOrder,
'170213': OrderNotFound,
'170217': InvalidOrder,
'170218': InvalidOrder,
'170221': BadRequest,
'170222': RateLimitExceeded,
'170223': InsufficientFunds,
'170224': PermissionDenied,
'170226': InsufficientFunds,
'170227': ExchangeError,
'170228': InvalidOrder,
'170229': InvalidOrder,
'170234': ExchangeError,
'170241': ManualInteractionNeeded,
'175000': InvalidOrder,
'175001': InvalidOrder,
'175002': InvalidOrder,
'175003': InsufficientFunds,
'175004': InvalidOrder,
'175005': InvalidOrder,
'175006': InsufficientFunds,
'175007': InvalidOrder,
'175008': InvalidOrder,
'175009': InvalidOrder,
'175010': PermissionDenied,
'175012': InvalidOrder,
'175013': InvalidOrder,
'175014': InvalidOrder,
'175015': InvalidOrder,
'175016': InvalidOrder,
'175017': InvalidOrder,
'175027': ExchangeError,
'176002': BadRequest,
'176004': BadRequest,
'176003': BadRequest,
'176006': BadRequest,
'176005': BadRequest,
'176008': BadRequest,
'176007': BadRequest,
'176010': BadRequest,
'176009': BadRequest,
'176012': BadRequest,
'176011': BadRequest,
'176014': BadRequest,
'176013': BadRequest,
'176015': InsufficientFunds,
'176016': BadRequest,
'176017': BadRequest,
'176018': BadRequest,
'176019': BadRequest,
'176020': BadRequest,
'176021': BadRequest,
'176022': BadRequest,
'176023': BadRequest,
'176024': BadRequest,
'176025': BadRequest,
'176026': BadRequest,
'176027': BadRequest,
'176028': BadRequest,
'176029': BadRequest,
'176030': BadRequest,
'176031': BadRequest,
'176034': BadRequest,
'176035': PermissionDenied,
'176036': PermissionDenied,
'176037': PermissionDenied,
'176038': BadRequest,
'176039': BadRequest,
'176040': BadRequest,
'181000': BadRequest,
'181001': BadRequest,
'181002': InvalidOrder,
'181003': InvalidOrder,
'181004': InvalidOrder,
'182000': InvalidOrder,
'181017': BadRequest,
'20001': OrderNotFound,
'20003': InvalidOrder,
'20004': InvalidOrder,
'20005': InvalidOrder,
'20006': InvalidOrder,
'20007': InvalidOrder,
'20008': InvalidOrder,
'20009': InvalidOrder,
'20010': InvalidOrder,
'20011': InvalidOrder,
'20012': InvalidOrder,
'20013': InvalidOrder,
'20014': InvalidOrder,
'20015': InvalidOrder,
'20016': InvalidOrder,
'20017': InvalidOrder,
'20018': InvalidOrder,
'20019': InvalidOrder,
'20020': InvalidOrder,
'20021': InvalidOrder,
'20022': BadRequest,
'20023': BadRequest,
'20031': BadRequest,
'20070': BadRequest,
'20071': BadRequest,
'20084': BadRequest,
'30001': BadRequest,
'30003': InvalidOrder,
'30004': InvalidOrder,
'30005': InvalidOrder,
'30007': InvalidOrder,
'30008': InvalidOrder,
'30009': ExchangeError,
'30010': InsufficientFunds,
'30011': PermissionDenied,
'30012': PermissionDenied,
'30013': PermissionDenied,
'30014': InvalidOrder,
'30015': InvalidOrder,
'30016': ExchangeError,
'30017': InvalidOrder,
'30018': InvalidOrder,
'30019': InvalidOrder,
'30020': InvalidOrder,
'30021': InvalidOrder,
'30022': InvalidOrder,
'30023': InvalidOrder,
'30024': InvalidOrder,
'30025': InvalidOrder,
'30026': InvalidOrder,
'30027': InvalidOrder,
'30028': InvalidOrder,
'30029': InvalidOrder,
'30030': InvalidOrder,
'30031': InsufficientFunds,
'30032': InvalidOrder,
'30033': RateLimitExceeded,
'30034': OrderNotFound,
'30035': RateLimitExceeded,
'30036': ExchangeError,
'30037': InvalidOrder,
'30041': ExchangeError,
'30042': InsufficientFunds,
'30043': InvalidOrder,
'30044': InvalidOrder,
'30045': InvalidOrder,
'30049': InsufficientFunds,
'30050': ExchangeError,
'30051': ExchangeError,
'30052': ExchangeError,
'30054': ExchangeError,
'30057': ExchangeError,
'30063': ExchangeError,
'30067': InsufficientFunds,
'30068': ExchangeError,
'30074': InvalidOrder,
'30075': InvalidOrder,
'30078': ExchangeError,
// '30084': BadRequest, // Isolated not modified, see handleErrors below
'33004': AuthenticationError,
'34026': ExchangeError,
'34036': BadRequest,
'35015': BadRequest,
'340099': ExchangeError,
'3400045': ExchangeError,
'3100116': BadRequest,
'3100198': BadRequest,
'3200300': InsufficientFunds, // {"retCode":3200300,"retMsg":"Insufficient margin balance.","result":null,"retExtMap"