UNPKG

@proton/ccxt

Version:

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

1,021 lines (1,019 loc) 213 kB
'use strict'; var bitget$1 = require('./abstract/bitget.js'); var errors = require('./base/errors.js'); var Precise = require('./base/Precise.js'); var number = require('./base/functions/number.js'); var sha256 = require('./static_dependencies/noble-hashes/sha256.js'); // --------------------------------------------------------------------------- // --------------------------------------------------------------------------- class bitget extends bitget$1 { describe() { return this.deepExtend(super.describe(), { 'id': 'bitget', 'name': 'Bitget', 'countries': ['SG'], 'version': 'v1', 'rateLimit': 50, 'certified': true, 'pro': true, 'has': { 'CORS': undefined, 'spot': true, 'margin': false, 'swap': true, 'future': true, 'option': false, 'addMargin': true, 'cancelAllOrders': true, 'cancelOrder': true, 'cancelOrders': true, 'createOrder': true, 'createReduceOnlyOrder': false, 'editOrder': true, 'fetchAccounts': false, 'fetchBalance': true, 'fetchBorrowRate': false, 'fetchBorrowRateHistories': false, 'fetchBorrowRateHistory': false, 'fetchBorrowRates': false, 'fetchBorrowRatesPerSymbol': false, 'fetchCanceledOrders': true, 'fetchClosedOrders': true, 'fetchCurrencies': true, 'fetchDepositAddress': true, 'fetchDepositAddresses': false, 'fetchDeposits': true, 'fetchDepositWithdrawFee': 'emulated', 'fetchDepositWithdrawFees': true, 'fetchFundingHistory': true, 'fetchFundingRate': true, 'fetchFundingRateHistory': true, 'fetchFundingRates': false, 'fetchIndexOHLCV': false, 'fetchLedger': true, 'fetchLeverage': true, 'fetchLeverageTiers': false, 'fetchMarginMode': undefined, 'fetchMarketLeverageTiers': true, 'fetchMarkets': true, 'fetchMarkOHLCV': false, 'fetchMyTrades': true, 'fetchOHLCV': true, 'fetchOpenInterest': true, 'fetchOpenInterestHistory': false, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, 'fetchOrders': false, 'fetchOrderTrades': true, 'fetchPosition': true, 'fetchPositionMode': false, 'fetchPositions': true, 'fetchPositionsRisk': false, 'fetchPremiumIndexOHLCV': false, 'fetchTicker': true, 'fetchTickers': true, 'fetchTime': true, 'fetchTrades': true, 'fetchTradingFee': true, 'fetchTradingFees': true, 'fetchTransfer': false, 'fetchTransfers': true, 'fetchWithdrawal': false, 'fetchWithdrawals': true, 'reduceMargin': true, 'setLeverage': true, 'setMarginMode': true, 'setPositionMode': true, 'transfer': true, 'withdraw': false, }, 'timeframes': { '1m': '1m', '3m': '3m', '5m': '5m', '15m': '15m', '30m': '30m', '1h': '1h', '2h': '2h', '4h': '4h', '6h': '6h', '12h': '12h', '1d': '1d', '3d': '3d', '1w': '1w', '1M': '1m', }, 'hostname': 'bitget.com', 'urls': { 'logo': 'https://user-images.githubusercontent.com/1294454/195989417-4253ddb0-afbe-4a1c-9dea-9dbcd121fa5d.jpg', 'api': { 'spot': 'https://api.{hostname}', 'mix': 'https://api.{hostname}', 'user': 'https://api.{hostname}', 'p2p': 'https://api.{hostname}', 'broker': 'https://api.{hostname}', 'margin': 'https://api.{hostname}', }, 'www': 'https://www.bitget.com', 'doc': [ 'https://bitgetlimited.github.io/apidoc/en/mix', 'https://bitgetlimited.github.io/apidoc/en/spot', 'https://bitgetlimited.github.io/apidoc/en/broker', 'https://bitgetlimited.github.io/apidoc/en/margin', ], 'fees': 'https://www.bitget.cc/zh-CN/rate?tab=1', 'referral': 'https://www.bitget.com/expressly?languageType=0&channelCode=ccxt&vipCode=tg9j', }, 'api': { 'public': { 'spot': { 'get': { 'public/time': 1, 'public/currencies': 6.6667, 'public/products': 1, 'public/product': 1, 'market/ticker': 1, 'market/tickers': 1, 'market/fills': 2, 'market/fills-history': 2, 'market/candles': 1, 'market/depth': 1, 'market/spot-vip-level': 2, }, }, 'mix': { 'get': { 'market/contracts': 1, 'market/depth': 1, 'market/ticker': 1, 'market/tickers': 1, 'market/contract-vip-level': 2, 'market/fills': 1, 'market/fills-history': 2, 'market/candles': 1, 'market/index': 1, 'market/funding-time': 1, 'market/history-fundRate': 1, 'market/current-fundRate': 1, 'market/open-interest': 1, 'market/mark-price': 1, 'market/symbol-leverage': 1, 'market/queryPositionLever': 1, }, }, 'margin': { 'get': { 'cross/public/interestRateAndLimit': 2, 'isolated/public/interestRateAndLimit': 2, 'cross/public/tierData': 2, 'isolated/public/tierData': 2, 'public/currencies': 1, 'cross/account/assets': 2, 'isolated/account/assets': 2, // 10 times/1s (IP) => 20/10 = 2 }, }, }, 'private': { 'spot': { 'get': { 'wallet/deposit-address': 4, 'wallet/withdrawal-list': 1, 'wallet/deposit-list': 1, 'account/getInfo': 20, 'account/assets': 2, 'account/assets-lite': 2, 'account/transferRecords': 1, // 20 times/1s (UID) => 20/20 = 1 }, 'post': { 'wallet/transfer': 4, 'wallet/transfer-v2': 4, 'wallet/subTransfer': 10, 'wallet/withdrawal': 4, 'wallet/withdrawal-v2': 4, 'wallet/withdrawal-inner': 4, 'wallet/withdrawal-inner-v2': 4, 'account/sub-account-spot-assets': 200, 'account/bills': 2, 'trade/orders': 2, 'trade/batch-orders': 4, 'trade/cancel-order': 2, 'trade/cancel-order-v2': 2, 'trade/cancel-symbol-order': 2, 'trade/cancel-batch-orders': 4, 'trade/cancel-batch-orders-v2': 4, 'trade/orderInfo': 1, 'trade/open-orders': 1, 'trade/history': 1, 'trade/fills': 1, 'plan/placePlan': 1, 'plan/modifyPlan': 1, 'plan/cancelPlan': 1, 'plan/currentPlan': 1, 'plan/historyPlan': 1, 'plan/batchCancelPlan': 2, 'trace/order/orderCurrentList': 2, 'trace/order/orderHistoryList': 2, 'trace/order/closeTrackingOrder': 2, 'trace/order/updateTpsl': 2, 'trace/order/followerEndOrder': 2, 'trace/order/spotInfoList': 2, 'trace/config/getTraderSettings': 2, 'trace/config/getFollowerSettings': 2, 'trace/user/myTraders': 2, 'trace/config/setFollowerConfig': 2, 'trace/user/myFollowers': 2, 'trace/config/setProductCode': 2, 'trace/user/removeTrader': 2, 'trace/profit/totalProfitInfo': 2, 'trace/profit/totalProfitList': 2, 'trace/profit/profitHisList': 2, 'trace/profit/profitHisDetailList': 2, 'trace/profit/waitProfitDetailList': 2, 'trace/user/getTraderInfo': 2, // 10 times/1s (UID) => 20/10 = 2 }, }, 'mix': { 'get': { 'account/account': 2, 'account/accounts': 2, 'position/singlePosition': 2, 'position/singlePosition-v2': 2, 'position/allPosition': 4, 'position/allPosition-v2': 4, 'account/accountBill': 2, 'account/accountBusinessBill': 4, 'order/current': 1, 'order/marginCoinCurrent': 1, 'order/history': 2, 'order/historyProductType': 4, 'order/detail': 2, 'order/fills': 2, 'order/allFills': 2, 'plan/currentPlan': 1, 'plan/historyPlan': 2, 'trace/currentTrack': 2, 'trace/followerOrder': 2, 'trace/followerHistoryOrders': 2, 'trace/historyTrack': 2, 'trace/summary': 1, 'trace/profitSettleTokenIdGroup': 1, 'trace/profitDateGroupList': 1, 'trade/profitDateList': 2, 'trace/waitProfitDateList': 1, 'trace/traderSymbols': 1, 'trace/traderList': 2, 'trace/traderDetail': 2, 'trace/queryTraceConfig': 2, }, 'post': { 'account/sub-account-contract-assets': 200, 'account/open-count': 1, 'account/setLeverage': 4, 'account/setMargin': 4, 'account/setMarginMode': 4, 'account/setPositionMode': 4, 'order/placeOrder': 2, 'order/batch-orders': 2, 'order/cancel-order': 2, 'order/cancel-batch-orders': 2, 'order/modifyOrder': 2, 'order/cancel-symbol-orders': 2, 'order/cancel-all-orders': 2, 'order/close-all-positions': 20, 'plan/placePlan': 2, 'plan/modifyPlan': 2, 'plan/modifyPlanPreset': 2, 'plan/placeTPSL': 2, 'plan/placeTrailStop': 2, 'plan/placePositionsTPSL': 2, 'plan/modifyTPSLPlan': 2, 'plan/cancelPlan': 2, 'plan/cancelSymbolPlan': 2, 'plan/cancelAllPlan': 2, 'trace/closeTrackOrder': 2, 'trace/modifyTPSL': 2, 'trace/setUpCopySymbols': 2, 'trace/followerSetBatchTraceConfig': 2, 'trace/followerCloseByTrackingNo': 2, 'trace/followerCloseByAll': 2, 'trace/followerSetTpsl': 2, 'trace/cancelCopyTrader': 4, 'trace/traderUpdateConfig': 2, 'trace/myTraderList': 2, 'trace/myFollowerList': 2, 'trace/removeFollower': 2, 'trace/public/getFollowerConfig': 2, 'trace/report/order/historyList': 2, 'trace/report/order/currentList': 2, 'trace/queryTraderTpslRatioConfig': 2, 'trace/traderUpdateTpslRatioConfig': 2, // 10 times/1s (UID) => 20/10 = 2 }, }, 'user': { 'get': { 'fee/query': 2, 'sub/virtual-list': 2, 'sub/virtual-api-list': 2, 'tax/spot-record': 1, 'tax/future-record': 1, 'tax/margin-record': 1, 'tax/p2p-record': 1, }, 'post': { 'sub/virtual-create': 4, 'sub/virtual-modify': 4, 'sub/virtual-api-batch-create': 20, 'sub/virtual-api-create': 4, 'sub/virtual-api-modify': 4, }, }, 'p2p': { 'get': { 'merchant/merchantList': 2, 'merchant/merchantInfo': 2, 'merchant/advList': 2, 'merchant/orderList': 2, // 10 times/1s (UID) => 20/10 = 2 }, }, 'broker': { 'get': { 'account/info': 2, 'account/sub-list': 20, 'account/sub-email': 20, 'account/sub-spot-assets': 2, 'account/sub-future-assets': 2, 'account/sub-api-list': 2, // 10 times/1s (UID) => 20/10 = 2 }, 'post': { 'account/sub-create': 20, 'account/sub-modify': 20, 'account/sub-modify-email': 20, 'account/sub-address': 2, 'account/sub-withdrawal': 2, 'account/sub-auto-transfer': 4, 'account/sub-api-create': 2, 'account/sub-api-modify': 2, // 10 times/1s (UID) => 20/10 = 2 }, }, 'margin': { 'get': { 'cross/account/riskRate': 2, 'cross/account/maxTransferOutAmount': 2, 'isolated/account/maxTransferOutAmount': 2, 'isolated/order/openOrders': 2, 'isolated/order/history': 2, 'isolated/order/fills': 2, 'isolated/loan/list': 2, 'isolated/repay/list': 2, 'isolated/interest/list': 2, 'isolated/liquidation/list': 2, 'isolated/fin/list': 2, 'cross/order/openOrders': 2, 'cross/order/history': 2, 'cross/order/fills': 2, 'cross/loan/list': 2, 'cross/repay/list': 2, 'cross/interest/list': 2, 'cross/liquidation/list': 2, 'cross/fin/list': 2, // 10 times/1s (UID) => 20/10 = 2 }, 'post': { 'cross/account/borrow': 2, 'isolated/account/borrow': 2, 'cross/account/repay': 2, 'isolated/account/repay': 2, 'isolated/account/riskRate': 2, 'cross/account/maxBorrowableAmount': 2, 'isolated/account/maxBorrowableAmount': 2, 'isolated/order/placeOrder': 4, 'isolated/order/batchPlaceOrder': 4, 'isolated/order/cancelOrder': 2, 'isolated/order/batchCancelOrder': 2, 'cross/order/placeOrder': 2, 'cross/order/batchPlaceOrder': 2, 'cross/order/cancelOrder': 2, 'cross/order/batchCancelOrder': 2, // 10 times/1s (UID) => 20/10 = 2 }, }, }, }, 'fees': { 'spot': { 'taker': this.parseNumber('0.002'), 'maker': this.parseNumber('0.002'), }, 'swap': { 'taker': this.parseNumber('0.0006'), 'maker': this.parseNumber('0.0004'), }, }, 'requiredCredentials': { 'apiKey': true, 'secret': true, 'password': true, }, 'exceptions': { // http error codes // 400 Bad Request — Invalid request format // 401 Unauthorized — Invalid API Key // 403 Forbidden — You do not have access to the requested resource // 404 Not Found // 500 Internal Server Error — We had a problem with our server 'exact': { '1': errors.ExchangeError, // undocumented 'failure to get a peer from the ring-balancer': errors.ExchangeNotAvailable, '4010': errors.PermissionDenied, // common // '0': ExchangeError, // 200 successful,when the order placement / cancellation / operation is successful '4001': errors.ExchangeError, '4002': errors.ExchangeError, // -------------------------------------------------------- '30001': errors.AuthenticationError, '30002': errors.AuthenticationError, '30003': errors.AuthenticationError, '30004': errors.AuthenticationError, '30005': errors.InvalidNonce, '30006': errors.AuthenticationError, '30007': errors.BadRequest, '30008': errors.RequestTimeout, '30009': errors.ExchangeError, '30010': errors.AuthenticationError, '30011': errors.PermissionDenied, '30012': errors.AuthenticationError, '30013': errors.AuthenticationError, '30014': errors.DDoSProtection, '30015': errors.AuthenticationError, '30016': errors.ExchangeError, '30017': errors.ExchangeError, '30018': errors.ExchangeError, '30019': errors.ExchangeNotAvailable, '30020': errors.BadRequest, '30021': errors.BadRequest, '30022': errors.PermissionDenied, '30023': errors.BadRequest, '30024': errors.BadSymbol, '30025': errors.BadRequest, '30026': errors.DDoSProtection, '30027': errors.AuthenticationError, '30028': errors.PermissionDenied, '30029': errors.AccountSuspended, '30030': errors.ExchangeError, '30031': errors.BadRequest, '30032': errors.BadSymbol, '30033': errors.BadRequest, '30034': errors.ExchangeError, '30035': errors.ExchangeError, '30036': errors.ExchangeError, '30037': errors.ExchangeNotAvailable, // '30038': AuthenticationError, // { "code": 30038, "message": "user does not exist" } '30038': errors.OnMaintenance, // futures '32001': errors.AccountSuspended, '32002': errors.PermissionDenied, '32003': errors.CancelPending, '32004': errors.ExchangeError, '32005': errors.InvalidOrder, '32006': errors.InvalidOrder, '32007': errors.InvalidOrder, '32008': errors.InvalidOrder, '32009': errors.InvalidOrder, '32010': errors.ExchangeError, '32011': errors.ExchangeError, '32012': errors.ExchangeError, '32013': errors.ExchangeError, '32014': errors.ExchangeError, '32015': errors.ExchangeError, '32016': errors.ExchangeError, '32017': errors.ExchangeError, '32018': errors.ExchangeError, '32019': errors.ExchangeError, '32020': errors.ExchangeError, '32021': errors.ExchangeError, '32022': errors.ExchangeError, '32023': errors.ExchangeError, '32024': errors.ExchangeError, '32025': errors.ExchangeError, '32026': errors.ExchangeError, '32027': errors.ExchangeError, '32028': errors.AccountSuspended, '32029': errors.ExchangeError, '32030': errors.InvalidOrder, '32031': errors.ArgumentsRequired, '32038': errors.AuthenticationError, '32040': errors.ExchangeError, '32044': errors.ExchangeError, '32045': errors.ExchangeError, '32046': errors.ExchangeError, '32047': errors.ExchangeError, '32048': errors.InvalidOrder, '32049': errors.ExchangeError, '32050': errors.InvalidOrder, '32051': errors.InvalidOrder, '32052': errors.ExchangeError, '32053': errors.ExchangeError, '32057': errors.ExchangeError, '32054': errors.ExchangeError, '32055': errors.InvalidOrder, '32056': errors.ExchangeError, '32058': errors.ExchangeError, '32059': errors.InvalidOrder, '32060': errors.InvalidOrder, '32061': errors.InvalidOrder, '32062': errors.InvalidOrder, '32063': errors.InvalidOrder, '32064': errors.ExchangeError, '32065': errors.ExchangeError, '32066': errors.ExchangeError, '32067': errors.ExchangeError, '32068': errors.ExchangeError, '32069': errors.ExchangeError, '32070': errors.ExchangeError, '32071': errors.ExchangeError, '32072': errors.ExchangeError, '32073': errors.ExchangeError, '32074': errors.ExchangeError, '32075': errors.ExchangeError, '32076': errors.ExchangeError, '32077': errors.ExchangeError, '32078': errors.ExchangeError, '32079': errors.ExchangeError, '32080': errors.ExchangeError, '32083': errors.ExchangeError, // token and margin trading '33001': errors.PermissionDenied, '33002': errors.AccountSuspended, '33003': errors.InsufficientFunds, '33004': errors.ExchangeError, '33005': errors.ExchangeError, '33006': errors.ExchangeError, '33007': errors.ExchangeError, '33008': errors.InsufficientFunds, '33009': errors.ExchangeError, '33010': errors.ExchangeError, '33011': errors.ExchangeError, '33012': errors.ExchangeError, '33013': errors.InvalidOrder, '33014': errors.OrderNotFound, '33015': errors.InvalidOrder, '33016': errors.ExchangeError, '33017': errors.InsufficientFunds, '33018': errors.ExchangeError, '33020': errors.ExchangeError, '33021': errors.BadRequest, '33022': errors.InvalidOrder, '33023': errors.ExchangeError, '33024': errors.InvalidOrder, '33025': errors.InvalidOrder, '33026': errors.ExchangeError, '33027': errors.InvalidOrder, '33028': errors.InvalidOrder, '33029': errors.InvalidOrder, '33034': errors.ExchangeError, '33035': errors.ExchangeError, '33036': errors.ExchangeError, '33037': errors.ExchangeError, '33038': errors.ExchangeError, '33039': errors.ExchangeError, '33040': errors.ExchangeError, '33041': errors.ExchangeError, '33042': errors.ExchangeError, '33043': errors.ExchangeError, '33044': errors.ExchangeError, '33045': errors.ExchangeError, '33046': errors.ExchangeError, '33047': errors.ExchangeError, '33048': errors.ExchangeError, '33049': errors.ExchangeError, '33050': errors.ExchangeError, '33051': errors.ExchangeError, '33059': errors.BadRequest, '33060': errors.BadRequest, '33061': errors.ExchangeError, '33062': errors.ExchangeError, '33063': errors.ExchangeError, '33064': errors.ExchangeError, '33065': errors.ExchangeError, // account '21009': errors.ExchangeError, '34001': errors.PermissionDenied, '34002': errors.InvalidAddress, '34003': errors.ExchangeError, '34004': errors.ExchangeError, '34005': errors.ExchangeError, '34006': errors.ExchangeError, '34007': errors.ExchangeError, '34008': errors.InsufficientFunds, '34009': errors.ExchangeError, '34010': errors.ExchangeError, '34011': errors.ExchangeError, '34012': errors.ExchangeError, '34013': errors.ExchangeError, '34014': errors.ExchangeError, '34015': errors.ExchangeError, '34016': errors.PermissionDenied, '34017': errors.AccountSuspended, '34018': errors.AuthenticationError, '34019': errors.PermissionDenied, '34020': errors.PermissionDenied, '34021': errors.InvalidAddress, '34022': errors.ExchangeError, '34023': errors.PermissionDenied, '34026': errors.ExchangeError, '34036': errors.ExchangeError, '34037': errors.ExchangeError, '34038': errors.ExchangeError, '34039': errors.ExchangeError, // swap '35001': errors.ExchangeError, '35002': errors.ExchangeError, '35003': errors.ExchangeError, '35004': errors.ExchangeError, '35005': errors.AuthenticationError, '35008': errors.InvalidOrder, '35010': errors.InvalidOrder, '35012': errors.InvalidOrder, '35014': errors.InvalidOrder, '35015': errors.InvalidOrder, '35017': errors.ExchangeError, '35019': errors.InvalidOrder, '35020': errors.InvalidOrder, '35021': errors.InvalidOrder, '35022': errors.ExchangeError, '35024': errors.ExchangeError, '35025': errors.InsufficientFunds, '35026': errors.ExchangeError, '35029': errors.OrderNotFound, '35030': errors.InvalidOrder, '35031': errors.InvalidOrder, '35032': errors.ExchangeError, '35037': errors.ExchangeError, '35039': errors.ExchangeError, '35040': errors.InvalidOrder, '35044': errors.ExchangeError, '35046': errors.InsufficientFunds, '35047': errors.InsufficientFunds, '35048': errors.ExchangeError, '35049': errors.InvalidOrder, '35050': errors.InvalidOrder, '35052': errors.InsufficientFunds, '35053': errors.ExchangeError, '35055': errors.InsufficientFunds, '35057': errors.ExchangeError, '35058': errors.ExchangeError, '35059': errors.BadRequest, '35060': errors.BadRequest, '35061': errors.BadRequest, '35062': errors.InvalidOrder, '35063': errors.InvalidOrder, '35064': errors.InvalidOrder, '35066': errors.InvalidOrder, '35067': errors.InvalidOrder, '35068': errors.InvalidOrder, '35069': errors.InvalidOrder, '35070': errors.InvalidOrder, '35071': errors.InvalidOrder, '35072': errors.InvalidOrder, '35073': errors.InvalidOrder, '35074': errors.InvalidOrder, '35075': errors.InvalidOrder, '35076': errors.InvalidOrder, '35077': errors.InvalidOrder, '35078': errors.InvalidOrder, '35079': errors.InvalidOrder, '35080': errors.InvalidOrder, '35081': errors.InvalidOrder, '35082': errors.InvalidOrder, '35083': errors.InvalidOrder, '35084': errors.InvalidOrder, '35085': errors.InvalidOrder, '35086': errors.InvalidOrder, '35087': errors.InvalidOrder, '35088': errors.InvalidOrder, '35089': errors.InvalidOrder, '35090': errors.ExchangeError, '35091': errors.ExchangeError, '35092': errors.ExchangeError, '35093': errors.ExchangeError, '35094': errors.ExchangeError, '35095': errors.BadRequest, '35096': errors.ExchangeError, '35097': errors.ExchangeError, '35098': errors.ExchangeError, '35099': errors.ExchangeError, // option '36001': errors.BadRequest, '36002': errors.BadRequest, '36005': errors.ExchangeError, '36101': errors.AuthenticationError, '36102': errors.PermissionDenied, '36103': errors.AccountSuspended, '36104': errors.PermissionDenied, '36105': errors.PermissionDenied, '36106': errors.AccountSuspended, '36107': errors.PermissionDenied, '36108': errors.InsufficientFunds, '36109': errors.PermissionDenied, '36201': errors.PermissionDenied, '36202': errors.PermissionDenied, '36203': errors.InvalidOrder, '36204': errors.ExchangeError, '36205': errors.BadRequest, '36206': errors.BadRequest, '36207': errors.InvalidOrder, '36208': errors.InvalidOrder, '36209': errors.InvalidOrder, '36210': errors.InvalidOrder, '36211': errors.InvalidOrder, '36212': errors.InvalidOrder, '36213': errors.InvalidOrder, '36214': errors.ExchangeError, '36216': errors.OrderNotFound, '36217': errors.InvalidOrder, '36218': errors.InvalidOrder, '36219': errors.InvalidOrder, '36220': errors.InvalidOrder, '36221': errors.InvalidOrder, '36222': errors.InvalidOrder, '36223': errors.InvalidOrder, '36224': errors.InvalidOrder, '36225': errors.InvalidOrder, '36226': errors.InvalidOrder, '36227': errors.InvalidOrder, '36228': errors.InvalidOrder, '36229': errors.InvalidOrder, '36230': errors.InvalidOrder, // -------------------------------------------------------- // swap '400': errors.BadRequest, '401': errors.AuthenticationError, '403': errors.PermissionDenied, '404': errors.BadRequest, '405': errors.BadRequest, '415': errors.BadRequest, '429': errors.DDoSProtection, '500': errors.ExchangeNotAvailable, '1001': errors.RateLimitExceeded, '1002': errors.ExchangeError, '1003': errors.ExchangeError, // '00000': ExchangeError, // success '40001': errors.AuthenticationError, '40002': errors.AuthenticationError, '40003': errors.AuthenticationError, '40004': errors.InvalidNonce, '40005': errors.InvalidNonce, '40006': errors.AuthenticationError, '40007': errors.BadRequest, '40008': errors.InvalidNonce, '40009': errors.AuthenticationError, '40010': errors.AuthenticationError, '40011': errors.AuthenticationError, '40012': errors.AuthenticationError, '40013': errors.ExchangeError, '40014': errors.PermissionDenied, '40015': errors.ExchangeError, '40016': errors.PermissionDenied, '40017': errors.ExchangeError, '40018': errors.PermissionDenied, '40019': errors.BadRequest, '40102': errors.BadRequest, '40103': errors.BadRequest, '40104': errors.ExchangeError, '40105': errors.ExchangeError, '40106': errors.ExchangeError, '40107': errors.ExchangeError, '40108': errors.InvalidOrder, '40109': errors.OrderNotFound, '40200': errors.OnMaintenance, '40201': errors.InvalidOrder, '40202': errors.ExchangeError, '40203': errors.BadRequest, '40204': errors.BadRequest, '40205': errors.BadRequest, '40206': errors.BadRequest, '40207': errors.BadRequest, '40208': errors.BadRequest, '40209': errors.BadRequest, '40300': errors.ExchangeError, '40301': errors.PermissionDenied, '40302': errors.BadRequest, '40303': errors.BadRequest, '40304': errors.BadRequest, '40305': errors.BadRequest, '40306': errors.ExchangeError, '40308': errors.OnMaintenance, '40309': errors.BadSymbol, '40400': errors.ExchangeError, '40401': errors.ExchangeError, '40402': errors.BadRequest, '40403': errors.BadRequest, '40404': errors.BadRequest, '40405': errors.BadRequest, '40406': errors.BadRequest, '40407': errors.ExchangeError, '40408': errors.ExchangeError, '40409': errors.ExchangeError, '40500': errors.InvalidOrder, '40501': errors.ExchangeError, '40502': errors.ExchangeError, '40503': errors.ExchangeError, '40504': errors.ExchangeError, '40505': errors.ExchangeError, '40506': errors.AuthenticationError, '40507': errors.AuthenticationError, '40508': errors.ExchangeError, '40509': errors.ExchangeError, '40600': errors.ExchangeError, '40601': errors.ExchangeError, '40602': errors.ExchangeError, '40603': errors.ExchangeError, '40604': errors.ExchangeNotAvailable, '40605': errors.ExchangeError, '40606': errors.ExchangeError, '40607': errors.ExchangeError, '40608': errors.ExchangeError, '40609': errors.ExchangeError, '40700': errors.BadRequest, '40701': errors.ExchangeError, '40702': errors.ExchangeError, '40703': errors.ExchangeError, '40704': errors.ExchangeError, '40705': errors.BadRequest, '40706': errors.InvalidOrder, '40707': errors.BadRequest, '40708': errors.BadRequest, '40709': errors.ExchangeError, '40710': errors.ExchangeError, '40711': errors.InsufficientFunds, '40712': errors.InsufficientFunds, '40713': errors.ExchangeError, '40714': errors.ExchangeError, '41114': errors.OnMaintenance, '43011': errors.InvalidOrder, '43025': errors.InvalidOrder, '45110': errors.InvalidOrder, // spot 'invalid sign': errors.AuthenticationError, 'invalid currency': errors.BadSymbol, 'invalid symbol': errors.BadSymbol, 'invalid period': errors.BadRequest, 'invalid user': errors.ExchangeError, 'invalid amount': errors.InvalidOrder, 'invalid type': errors.InvalidOrder, 'invalid orderId': errors.InvalidOrder, 'invalid record': errors.ExchangeError, 'invalid accountId': errors.BadRequest, 'invalid address': errors.BadRequest, 'accesskey not null': errors.AuthenticationError, 'illegal accesskey': errors.AuthenticationError, 'sign not null': errors.AuthenticationError, 'req_time is too much difference from server time': errors.InvalidNonce, 'permissions not right': errors.PermissionDenied, 'illegal sign invalid': errors.AuthenticationError, 'user locked': errors.AccountSuspended, 'Request Frequency Is Too High': errors.RateLimitExceeded, 'more than a daily rate of cash': errors.BadRequest, 'more than the maximum daily withdrawal amount': errors.BadRequest, 'need to bind email or mobile': errors.ExchangeError, 'user forbid': errors.PermissionDenied, 'User Prohibited Cash Withdrawal': errors.PermissionDenied, 'Cash Withdrawal Is Less Than The Minimum Value': errors.BadRequest, 'Cash Withdrawal Is More Than The Maximum Value': errors.BadRequest, 'the account with in 24 hours ban coin': errors.PermissionDenied, 'order cancel fail': errors.BadRequest, 'base symbol error': errors.BadSymbol, 'base date error': errors.ExchangeError, 'api signature not valid': errors.AuthenticationError, 'gateway internal error': errors.ExchangeError, 'audit failed': errors.ExchangeError, 'order queryorder invalid': errors.BadRequest, 'market no need price': errors.InvalidOrder, 'limit need price': errors.InvalidOrder, 'userid not equal to account_id': errors.ExchangeError, 'your balance is low': errors.InsufficientFunds, 'address invalid cointype': errors.ExchangeError, 'system exception': errors.ExchangeError, '50003': errors.ExchangeError, '50004': errors.BadSymbol, '50006': errors.PermissionDenied, '50007': errors.PermissionDenied, '50008': errors.RequestTimeout, '50009': errors.RateLimitExceeded, '50010': errors.ExchangeError, '50014': errors.InvalidOrder, '50015': errors.InvalidOrder, '50016': errors.InvalidOrder, '50017': errors.InvalidOrder, '50018': errors.InvalidOrder, '50019': errors.InvalidOrder, '50020': errors.InsufficientFunds, '50021': errors.InvalidOrder, '50026': errors.InvalidOrder, 'invalid order query time': errors.ExchangeError, 'invalid start time': errors.BadRequest, 'invalid end time': errors.BadRequest, '20003': errors.ExchangeError, '01001': errors.ExchangeError, '43111': errors.PermissionDenied, // {"code":"43111","msg":"参数错误 address not in address book","requestTime":1665394201164,"data":null} }, 'broad': { 'invalid size, valid range': errors.ExchangeError, }, }, 'precisionMode': number.TICK_SIZE, 'commonCurrencies': { 'JADE': 'Jade Protocol', }, 'options': { 'timeframes': { 'spot': { '1m': '1min', '5m': '5min', '15m': '15min', '30m': '30min', '1h': '1h', '4h': '4h', '6h': '6Hutc', '12h': '12Hutc', '1d': '1Dutc', '3d': '3Dutc', '1w': '1Wutc', '1M': '1Mutc', }, 'swap': { '1m': '1m', '3m': '3m', '5m': '5m', '15m': '15m', '30m': '30m', '1h': '1H', '2h': '2H', '4h': '4H', '6h': '6Hutc', '12h': '12Hutc', '1d': '1Dutc', '3d': '3Dutc', '1w': '1Wutc', '1M': '1Mutc', }, }, 'fetchMarkets': [ 'spot', 'swap', ], 'defaultType': 'spot', 'defaultSubType': 'linear', 'createMarketBuyOrderRequiresPrice': true, 'broker': 'p4sve', 'withdraw': { 'fillResponseFromRequest': true, }, 'accountsByType': { 'main': 'EXCHANGE', 'spot': 'EXCHANGE', 'future': 'USDT_MIX', 'contract': 'CONTRACT', 'mix': 'USD_MIX', }, 'accountsById': { 'EXCHANGE': 'spot', 'USDT_MIX': 'future', 'CONTRACT': 'swap', 'USD_MIX': 'swap', }, 'sandboxMode': false, 'networks': { 'TRX': 'TRC20', 'ETH': 'ERC20', 'BSC': 'BEP20', }, 'networksById': { 'TRC20': 'TRX', 'BSC': 'BEP20', }, 'defaultTimeInForce': 'GTC', // 'GTC' = Good To Cancel (default), 'IOC' = Immediate Or Cancel }, }); } setSandboxMode(enabled) { this.options['sandboxMode'] = enabled; } async fetchTime(params = {}) { /** * @method * @name bitget#fetchTime * @description fetches the current integer timestamp in milliseconds from the exchange server * @param {object} params extra parameters specific to the bitget api endpoint * @returns {int} the current integer timestamp in milliseconds from the exchange server */ const response = await this.publicSpotGetPublicTime(params); // // { // code: '00000', // msg: 'success', // requestTime: 1645837773501, // data: '1645837773501' // } // return this.safeIntege