UNPKG

@proton/ccxt

Version:

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

936 lines (934 loc) 402 kB
// ---------------------------------------------------------------------------- // 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, InvalidOrder, OrderNotFound, InsufficientFunds, BadRequest, RateLimitExceeded, InvalidNonce, NotSupported, RequestTimeout } 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'; // --------------------------------------------------------------------------- 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': undefined, 'cancelAllOrders': true, 'cancelOrder': true, 'createOrder': true, 'createPostOnlyOrder': true, 'createReduceOnlyOrder': true, 'createStopLimitOrder': true, 'createStopMarketOrder': true, 'createStopOrder': true, 'editOrder': true, 'fetchBalance': true, 'fetchBorrowInterest': false, 'fetchBorrowRate': true, 'fetchBorrowRateHistories': false, 'fetchBorrowRateHistory': false, 'fetchBorrowRates': false, 'fetchCanceledOrders': true, 'fetchClosedOrders': true, 'fetchCurrencies': true, 'fetchDeposit': false, 'fetchDepositAddress': true, 'fetchDepositAddresses': false, 'fetchDepositAddressesByNetwork': true, 'fetchDeposits': true, 'fetchDepositWithdrawFee': 'emulated', 'fetchDepositWithdrawFees': true, 'fetchFundingRate': true, 'fetchFundingRateHistory': true, 'fetchFundingRates': true, 'fetchIndexOHLCV': true, 'fetchLedger': true, 'fetchMarketLeverageTiers': true, 'fetchMarkets': true, 'fetchMarkOHLCV': true, 'fetchMyTrades': true, 'fetchOHLCV': true, 'fetchOpenInterest': true, 'fetchOpenInterestHistory': true, 'fetchOpenOrders': true, 'fetchOrder': true, 'fetchOrderBook': true, 'fetchOrders': true, 'fetchOrderTrades': true, 'fetchPosition': true, 'fetchPositions': true, 'fetchPremiumIndexOHLCV': true, 'fetchTicker': true, 'fetchTickers': true, 'fetchTime': true, 'fetchTrades': true, 'fetchTradingFee': true, 'fetchTradingFees': true, 'fetchTransactions': false, 'fetchTransfers': true, 'fetchWithdrawals': 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://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg', 'api': { 'spot': 'https://api.{hostname}', 'futures': 'https://api.{hostname}', 'v2': 'https://api.{hostname}', 'public': 'https://api.{hostname}', 'private': 'https://api.{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': { // inverse swap 'v2/public/orderBook/L2': 1, 'v2/public/kline/list': 3, 'v2/public/tickers': 1, 'v2/public/trading-records': 1, 'v2/public/symbols': 1, 'v2/public/mark-price-kline': 3, 'v2/public/index-price-kline': 3, 'v2/public/premium-index-kline': 2, 'v2/public/open-interest': 1, 'v2/public/big-deal': 1, 'v2/public/account-ratio': 1, 'v2/public/funding-rate': 1, 'v2/public/elite-ratio': 1, 'v2/public/funding/prev-funding-rate': 1, 'v2/public/risk-limit/list': 1, // linear swap USDT 'public/linear/kline': 3, 'public/linear/recent-trading-records': 1, 'public/linear/risk-limit': 1, 'public/linear/funding/prev-funding-rate': 1, 'public/linear/mark-price-kline': 1, 'public/linear/index-price-kline': 1, 'public/linear/premium-index-kline': 1, // spot 'spot/v1/time': 1, 'spot/v1/symbols': 1, 'spot/quote/v1/depth': 1, 'spot/quote/v1/depth/merged': 1, 'spot/quote/v1/trades': 1, 'spot/quote/v1/kline': 1, 'spot/quote/v1/ticker/24hr': 1, 'spot/quote/v1/ticker/price': 1, 'spot/quote/v1/ticker/book_ticker': 1, '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 'v2/public/time': 1, 'v3/public/time': 1, 'v2/public/announcement': 1, // USDC endpoints // option USDC 'option/usdc/openapi/public/v1/order-book': 1, 'option/usdc/openapi/public/v1/symbols': 1, 'option/usdc/openapi/public/v1/tick': 1, 'option/usdc/openapi/public/v1/delivery-price': 1, 'option/usdc/openapi/public/v1/query-trade-latest': 1, 'option/usdc/openapi/public/v1/query-historical-volatility': 1, 'option/usdc/openapi/public/v1/all-tickers': 1, // perpetual swap USDC 'perpetual/usdc/openapi/public/v1/order-book': 1, 'perpetual/usdc/openapi/public/v1/symbols': 1, 'perpetual/usdc/openapi/public/v1/tick': 1, 'perpetual/usdc/openapi/public/v1/kline/list': 1, 'perpetual/usdc/openapi/public/v1/mark-price-kline': 1, 'perpetual/usdc/openapi/public/v1/index-price-kline': 1, 'perpetual/usdc/openapi/public/v1/premium-index-kline': 1, 'perpetual/usdc/openapi/public/v1/open-interest': 1, 'perpetual/usdc/openapi/public/v1/big-deal': 1, 'perpetual/usdc/openapi/public/v1/account-ratio': 1, 'perpetual/usdc/openapi/public/v1/prev-funding-rate': 1, 'perpetual/usdc/openapi/public/v1/risk-limit/list': 1, // account 'asset/v1/public/deposit/allowed-deposit-list': 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/market/kline': 1, 'v5/market/mark-price-kline': 1, 'v5/market/index-price-kline': 1, 'v5/market/premium-index-price-kline': 1, 'v5/market/instruments-info': 1, 'v5/market/orderbook': 1, 'v5/market/tickers': 1, 'v5/market/funding/history': 1, 'v5/market/recent-trade': 1, 'v5/market/open-interest': 1, 'v5/market/historical-volatility': 1, 'v5/market/insurance': 1, 'v5/market/risk-limit': 1, 'v5/market/delivery-price': 1, 'v5/spot-lever-token/info': 1, 'v5/spot-lever-token/reference': 1, 'v5/announcements/index': 1, 'v5/spot-cross-margin-trade/pledge-token': 1, 'v5/spot-cross-margin-trade/borrow-token': 1, 'v5/ins-loan/ensure-tokens-convert': 1, }, }, 'private': { 'get': { // inverse swap 'v2/private/order/list': 5, 'v2/private/order': 5, 'v2/private/stop-order/list': 5, 'v2/private/stop-order': 1, 'v2/private/position/list': 25, 'v2/private/position/fee-rate': 40, 'v2/private/execution/list': 25, 'v2/private/trade/closed-pnl/list': 1, 'v2/public/risk-limit/list': 1, 'v2/public/funding/prev-funding-rate': 25, 'v2/private/funding/prev-funding': 25, 'v2/private/funding/predicted-funding': 25, 'v2/private/account/api-key': 5, 'v2/private/account/lcp': 1, 'v2/private/wallet/balance': 25, 'v2/private/wallet/fund/records': 25, 'v2/private/wallet/withdraw/list': 25, 'v2/private/exchange-order/list': 1, // linear swap USDT 'private/linear/order/list': 5, 'private/linear/order/search': 5, 'private/linear/stop-order/list': 5, 'private/linear/stop-order/search': 5, 'private/linear/position/list': 25, 'private/linear/trade/execution/list': 25, 'private/linear/trade/closed-pnl/list': 25, 'public/linear/risk-limit': 1, 'private/linear/funding/predicted-funding': 25, 'private/linear/funding/prev-funding': 25, // inverse futures 'futures/private/order/list': 5, 'futures/private/order': 5, 'futures/private/stop-order/list': 5, 'futures/private/stop-order': 5, 'futures/private/position/list': 25, 'futures/private/execution/list': 25, 'futures/private/trade/closed-pnl/list': 1, // spot 'spot/v1/account': 2.5, 'spot/v1/order': 2.5, 'spot/v1/open-orders': 2.5, 'spot/v1/history-orders': 2.5, 'spot/v1/myTrades': 2.5, 'spot/v1/cross-margin/order': 10, 'spot/v1/cross-margin/accounts/balance': 10, 'spot/v1/cross-margin/loan-info': 10, 'spot/v1/cross-margin/repay/history': 10, '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/v1/private/transfer/list': 50, 'asset/v3/private/transfer/inter-transfer/list/query': 0.84, 'asset/v1/private/sub-member/transfer/list': 50, 'asset/v3/private/transfer/sub-member/list/query': 0.84, 'asset/v3/private/transfer/sub-member-transfer/list/query': 0.84, 'asset/v3/private/transfer/universal-transfer/list/query': 0.84, 'asset/v1/private/sub-member/member-ids': 50, 'asset/v1/private/deposit/record/query': 50, 'asset/v1/private/withdraw/record/query': 25, 'asset/v1/private/coin-info/query': 25, 'asset/v3/private/coin-info/query': 25, 'asset/v1/private/asset-info/query': 50, 'asset/v1/private/deposit/address': 100, 'asset/v3/private/deposit/address/query': 0.17, 'asset/v1/private/universal/transfer/list': 50, 'contract/v3/private/copytrading/order/list': 1, 'contract/v3/private/copytrading/position/list': 1, 'contract/v3/private/copytrading/wallet/balance': 1, '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, 'asset/v2/private/exchange/exchange-order-all': 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': 0.84, 'asset/v3/private/transfer/account-coin/balance/query': 0.84, 'asset/v3/private/transfer/account-coins/balance/query': 50, 'asset/v3/private/transfer/asset-info/query': 0.84, 'asset/v3/public/deposit/allowed-deposit-list/query': 0.17, 'asset/v3/private/deposit/record/query': 0.17, 'asset/v3/private/withdraw/record/query': 0.17, // v5 'v5/order/history': 2.5, 'v5/order/spot-borrow-check': 2.5, 'v5/order/realtime': 2.5, 'v5/position/list': 2.5, 'v5/position/switch-mode': 2.5, 'v5/execution/list': 2.5, 'v5/position/closed-pnl': 2.5, 'v5/account/wallet-balance': 2.5, 'v5/account/borrow-history': 2.5, 'v5/account/collateral-info': 2.5, 'v5/account/mmp-state': 2.5, 'v5/asset/coin-greeks': 2.5, 'v5/account/info': 2.5, 'v5/account/transaction-log': 2.5, 'v5/account/fee-rate': 1, 'v5/asset/exchange/order-record': 2.5, 'v5/asset/delivery-record': 2.5, 'v5/asset/settlement-record': 2.5, 'v5/asset/transfer/query-asset-info': 2.5, 'v5/asset/transfer/query-account-coin-balance': 2.5, 'v5/asset/transfer/query-transfer-coin-list': 2.5, 'v5/asset/transfer/query-inter-transfer-list': 2.5, 'v5/asset/transfer/query-sub-member-list': 2.5, 'v5/asset/transfer/query-universal-transfer-list': 1, 'v5/asset/deposit/query-allowed-list': 2.5, 'v5/asset/deposit/query-record': 2.5, 'v5/asset/deposit/query-sub-member-record': 2.5, 'v5/asset/deposit/query-address': 2.5, 'v5/asset/deposit/query-sub-member-address': 2.5, 'v5/asset/deposit/query-internal-record': 2.5, 'v5/asset/coin/query-info': 2.5, 'v5/asset/withdraw/query-record': 2.5, 'v5/asset/withdraw/withdrawable-amount': 2.5, 'v5/asset/transfer/query-account-coins-balance': 2.5, // user 'v5/user/query-sub-members': 10, 'v5/user/query-api': 10, 'v5/user/get-member-type': 1, 'v5/user/aff-customer-info': 10, 'v5/customer/info': 10, '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, 'v5/ins-loan/ltv-convert': 1, 'v5/broker/earning-record': 1, // pre-upgrade 'v5/pre-upgrade/order/history': 1, 'v5/pre-upgrade/execution/list': 1, 'v5/pre-upgrade/position/closed-pnl': 1, 'v5/pre-upgrade/account/transaction-log': 1, 'v5/pre-upgrade/asset/delivery-record': 1, 'v5/pre-upgrade/asset/settlement-record': 1, }, 'post': { // inverse swap 'v2/private/order/create': 30, 'v2/private/order/cancel': 30, 'v2/private/order/cancelAll': 300, 'v2/private/order/replace': 30, 'v2/private/stop-order/create': 30, 'v2/private/stop-order/cancel': 30, 'v2/private/stop-order/cancelAll': 300, 'v2/private/stop-order/replace': 30, 'v2/private/position/change-position-margin': 40, 'v2/private/position/trading-stop': 40, 'v2/private/position/leverage/save': 40, 'v2/private/tpsl/switch-mode': 40, 'v2/private/position/switch-isolated': 2.5, 'v2/private/position/risk-limit': 2.5, 'v2/private/position/switch-mode': 2.5, // linear swap USDT 'private/linear/order/create': 30, 'private/linear/order/cancel': 30, 'private/linear/order/cancel-all': 300, 'private/linear/order/replace': 30, 'private/linear/stop-order/create': 30, 'private/linear/stop-order/cancel': 30, 'private/linear/stop-order/cancel-all': 300, 'private/linear/stop-order/replace': 30, 'private/linear/position/set-auto-add-margin': 40, 'private/linear/position/switch-isolated': 40, 'private/linear/position/switch-mode': 40, 'private/linear/tpsl/switch-mode': 2.5, 'private/linear/position/add-margin': 40, 'private/linear/position/set-leverage': 40, 'private/linear/position/trading-stop': 40, 'private/linear/position/set-risk': 2.5, // inverse futures 'futures/private/order/create': 30, 'futures/private/order/cancel': 30, 'futures/private/order/cancelAll': 30, 'futures/private/order/replace': 30, 'futures/private/stop-order/create': 30, 'futures/private/stop-order/cancel': 30, 'futures/private/stop-order/cancelAll': 30, 'futures/private/stop-order/replace': 30, 'futures/private/position/change-position-margin': 40, 'futures/private/position/trading-stop': 40, 'futures/private/position/leverage/save': 40, 'futures/private/position/switch-mode': 40, 'futures/private/tpsl/switch-mode': 40, 'futures/private/position/switch-isolated': 40, 'futures/private/position/risk-limit': 2.5, // spot 'spot/v1/order': 2.5, 'spot/v1/cross-margin/loan': 10, 'spot/v1/cross-margin/repay': 10, '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/v1/private/transfer': 150, 'asset/v3/private/transfer/inter-transfer': 2.5, 'asset/v1/private/sub-member/transfer': 150, 'asset/v1/private/withdraw': 50, 'asset/v3/private/withdraw/create': 1, 'asset/v1/private/withdraw/cancel': 50, 'asset/v3/private/withdraw/cancel': 0.84, 'asset/v1/private/transferable-subs/save': 3000, 'asset/v1/private/universal/transfer': 1500, 'asset/v3/private/transfer/sub-member-transfer': 2.5, 'asset/v3/private/transfer/transfer-sub-member-save': 2.5, 'asset/v3/private/transfer/universal-transfer': 2.5, '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, // USDC endpoints // option USDC 'option/usdc/openapi/private/v1/place-order': 2.5, 'option/usdc/openapi/private/v1/batch-place-order': 2.5, 'option/usdc/openapi/private/v1/replace-order': 2.5, 'option/usdc/openapi/private/v1/batch-replace-orders': 2.5, 'option/usdc/openapi/private/v1/cancel-order': 2.5, 'option/usdc/openapi/private/v1/batch-cancel-orders': 2.5, 'option/usdc/openapi/private/v1/cancel-all': 2.5, 'option/usdc/openapi/private/v1/query-active-orders': 2.5, 'option/usdc/openapi/private/v1/query-order-history': 2.5, 'option/usdc/openapi/private/v1/execution-list': 2.5, 'option/usdc/openapi/private/v1/query-transaction-log': 2.5, 'option/usdc/openapi/private/v1/query-wallet-balance': 2.5, 'option/usdc/openapi/private/v1/query-asset-info': 2.5, 'option/usdc/openapi/private/v1/query-margin-info': 2.5, 'option/usdc/openapi/private/v1/query-position': 2.5, 'option/usdc/openapi/private/v1/query-delivery-list': 2.5, 'option/usdc/openapi/private/v1/query-position-exp-date': 2.5, 'option/usdc/openapi/private/v1/mmp-modify': 2.5, 'option/usdc/openapi/private/v1/mmp-reset': 2.5, // perpetual swap USDC 'perpetual/usdc/openapi/private/v1/place-order': 2.5, 'perpetual/usdc/openapi/private/v1/replace-order': 2.5, 'perpetual/usdc/openapi/private/v1/cancel-order': 2.5, 'perpetual/usdc/openapi/private/v1/cancel-all': 2.5, 'perpetual/usdc/openapi/private/v1/position/leverage/save': 2.5, 'option/usdc/openapi/private/v1/session-settlement': 2.5, 'option/usdc/private/asset/account/setMarginMode': 2.5, 'perpetual/usdc/openapi/public/v1/risk-limit/list': 2.5, 'perpetual/usdc/openapi/private/v1/position/set-risk-limit': 2.5, 'perpetual/usdc/openapi/private/v1/predicted-funding': 2.5, 'contract/v3/private/copytrading/order/create': 2.5, 'contract/v3/private/copytrading/order/cancel': 2.5, 'contract/v3/private/copytrading/order/close': 2.5, 'contract/v3/private/copytrading/position/close': 2.5, 'contract/v3/private/copytrading/position/set-leverage': 2.5, 'contract/v3/private/copytrading/wallet/transfer': 2.5, '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': 2.5, 'unified/v3/private/order/replace': 2.5, 'unified/v3/private/order/cancel': 2.5, 'unified/v3/private/order/create-batch': 2.5, 'unified/v3/private/order/replace-batch': 2.5, 'unified/v3/private/order/cancel-batch': 2.5, 'unified/v3/private/order/cancel-all': 2.5, '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 'v5/order/create': 2.5, 'v5/order/amend': 2.5, 'v5/order/cancel': 2.5, 'v5/order/cancel-all': 2.5, 'v5/order/create-batch': 2.5, 'v5/order/amend-batch': 2.5, 'v5/order/cancel-batch': 2.5, 'v5/order/disconnected-cancel-all': 2.5, 'v5/position/set-leverage': 2.5, 'v5/position/set-tpsl-mode': 2.5, 'v5/position/set-risk-limit': 2.5, 'v5/position/trading-stop': 2.5, 'v5/position/switch-isolated': 2.5, 'v5/position/switch-mode': 2.5, 'v5/position/set-auto-add-margin': 2.5, 'v5/account/upgrade-to-uta': 2.5, 'v5/account/set-margin-mode': 2.5, 'v5/asset/transfer/inter-transfer': 2.5, 'v5/asset/transfer/save-transfer-sub-member': 2.5, 'v5/asset/transfer/universal-transfer': 2.5, 'v5/asset/deposit/deposit-to-account': 2.5, 'v5/asset/withdraw/create': 2.5, 'v5/asset/withdraw/cancel': 2.5, 'v5/spot-lever-token/purchase': 2.5, 'v5/spot-lever-token/redeem': 2.5, 'v5/spot-lever-token/order-record': 2.5, 'v5/spot-margin-trade/switch-mode': 2.5, 'v5/spot-margin-trade/set-leverage': 2.5, // 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, 'v5/spot-cross-margin-trade/loan': 2.5, 'v5/spot-cross-margin-trade/repay': 2.5, 'v5/spot-cross-margin-trade/switch': 2.5, // 20/s => cost = 50 / 20 = 2.5 }, 'delete': { // spot 'spot/v1/order': 2.5, 'spot/v1/order/fast': 2.5, 'spot/order/batch-cancel': 2.5, 'spot/order/batch-fast-cancel': 2.5, 'spot/order/batch-cancel-by-ids': 2.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': AuthenticationError, '10009': AuthenticationError, '10010': PermissionDenied, '10014': BadRequest, '10016': ExchangeError, '10017': BadRequest, '10018': RateLimitExceeded, '10020': PermissionDenied, '10024': PermissionDenied, '10027': PermissionDenied, '10028': PermissionDenied, '10029': PermissionDenied, '12201': BadRequest, '12141': BadRequest, '100028': PermissionDenied, '110001': InvalidOrder, '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': InvalidOrder, '110025': InvalidOrder, '110026': InvalidOrder, '110027': InvalidOrder, '110028': InvalidOrder, '110029': InvalidOrder, '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, '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, '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, '170007': RequestTimeout, '170005': 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, '170130': BadRequest, '170131': InsufficientFunds, '170132': InvalidOrder, '170133': InvalidOrder, '170134': InvalidOrder, '170135': InvalidOrder, '170136': InvalidOrder, '170137': InvalidOrder, '170139': InvalidOrder, '170140': InvalidOrder, '170124': 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, '170221': BadRequest, '170222': RateLimitExceeded, '170223': InsufficientFunds, '170224': PermissionDenied, '170226': InsufficientFunds, '170227': ExchangeError, '170228': InvalidOrder, '170229': InvalidOrder, '170234': ExchangeError, '170210': InvalidOrder, '170213': OrderNotFound, '170217': InvalidOrder, '170218': InvalidOrder, '170010': InvalidOrder, '170011': InvalidOrder, '170019': InvalidOrder, '170201': PermissionDenied, '170202': InvalidOrder, '170203': InvalidOrder, '170204': InvalidOrder, '170206': InvalidOrder, '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'