UNPKG

okx-api

Version:

Complete Node.js SDK for OKX's REST APIs and WebSockets, with TypeScript & end-to-end tests

1,308 lines 48.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RestClient = void 0; const BaseRestClient_js_1 = __importDefault(require("./util/BaseRestClient.js")); class RestClient extends BaseRestClient_js_1.default { /** * * Custom SDK functions * */ /** * This method is used to get the latency and time sync between the client and the server. * This is not official API endpoint and is only used for internal testing purposes. * Use this method to check the latency and time sync between the client and the server. * Final values might vary slightly, but it should be within few ms difference. * If you have any suggestions or improvements to this measurement, please create an issue or pull request on GitHub. */ async fetchLatencySummary() { const clientTimeReqStart = Date.now(); const serverTime = await this.getServerTime(); const clientTimeReqEnd = Date.now(); console.log('serverTime', serverTime); const serverTimeMs = serverTime; const roundTripTime = clientTimeReqEnd - clientTimeReqStart; const estimatedOneWayLatency = Math.floor(roundTripTime / 2); // Adjust server time by adding estimated one-way latency const adjustedServerTime = serverTimeMs + estimatedOneWayLatency; // Calculate time difference between adjusted server time and local time const timeDifference = adjustedServerTime - clientTimeReqEnd; const result = { localTime: clientTimeReqEnd, serverTime: serverTimeMs, roundTripTime, estimatedOneWayLatency, adjustedServerTime, timeDifference, }; console.log('Time synchronization results:'); console.log(result); console.log(`Your approximate latency to exchange server: One way: ${estimatedOneWayLatency}ms. Round trip: ${roundTripTime}ms. `); if (timeDifference > 500) { console.warn(`WARNING! Time difference between server and client clock is greater than 500ms. It is currently ${timeDifference}ms. Consider adjusting your system clock to avoid unwanted clock sync errors! Visit https://github.com/tiagosiebler/awesome-crypto-examples/wiki/Timestamp-for-this-request-is-outside-of-the-recvWindow for more information`); } else { console.log(`Time difference between server and client clock is within acceptable range of 500ms. It is currently ${timeDifference}ms.`); } return result; } /** * * OKX misc endpoints * */ async getServerTime() { const response = await this.get('/api/v5/public/time'); const timestamp = Array.isArray(response) ? Number(response[0]?.ts) : NaN; if (!Array.isArray(response) || isNaN(timestamp) || typeof timestamp !== 'number') { throw response; } return timestamp; } /** * * Trading account endpoints * */ getAccountInstruments(params) { return this.getPrivate('/api/v5/account/instruments', params); } getBalance(params) { return this.getPrivate('/api/v5/account/balance', params); } getPositions(params) { return this.getPrivate('/api/v5/account/positions', params); } getPositionsHistory(params) { return this.getPrivate('/api/v5/account/positions-history', params); } getAccountPositionRisk(params) { return this.getPrivate('/api/v5/account/account-position-risk', params); } /** Up to last 7 days */ getBills(params) { return this.getPrivate('/api/v5/account/bills', params); } /** Last 3 months */ getBillsArchive(params) { return this.getPrivate('/api/v5/account/bills-archive', params); } /** * Apply for bill data since 1 February, 2021 except for the current quarter. * Check the file link from the "Get bills details (since 2021)" endpoint in 30 hours to allow for data generation. * During peak demand, data generation may take longer. If the file link is still unavailable after 48 hours, reach out to customer support for assistance. * It is only applicable to the data from the unified account. * * This endpoint submits a request for bill data. You can then use getRequestedBillsHistoryLink to get the link to the bill data. * It may take some time to generate the data. */ requestBillsHistoryDownloadLink(params) { return this.postPrivate('/api/v5/account/bills-history-archive', params); } /** * This endpoint returns the link to the bill data which you can request using requestBillsHistoryDownloadLink. */ getRequestedBillsHistoryLink(params) { return this.getPrivate('/api/v5/account/bills-history-archive', params); } getAccountConfiguration() { return this.getPrivate('/api/v5/account/config'); } setPositionMode(params) { return this.postPrivate('/api/v5/account/set-position-mode', params); } setSettleCurrency(params) { return this.postPrivate('/api/v5/account/set-settle-currency', params); } setFeeType(params) { return this.postPrivate('/api/v5/account/set-fee-type', params); } setLeverage(params) { return this.postPrivate('/api/v5/account/set-leverage', params); } /** Max buy/sell amount or open amount */ getMaxBuySellAmount(params) { return this.getPrivate('/api/v5/account/max-size', params); } getMaxAvailableTradableAmount(params) { return this.getPrivate('/api/v5/account/max-avail-size', params); } changePositionMargin(params) { return this.postPrivate('/api/v5/account/position/margin-balance', params); } getLeverage(params) { return this.getPrivate('/api/v5/account/leverage-info', params); } /** * @deprecated - will be removed in next major release * Use getLeverage() instead */ getLeverageV2(params) { return this.getPrivate('/api/v5/account/leverage-info', params); } getLeverageEstimatedInfo(params) { return this.getPrivate('/api/v5/account/adjust-leverage-info', params); } getMaxLoan(params) { return this.getPrivate('/api/v5/account/max-loan', params); } getFeeRates(params) { return this.getPrivate('/api/v5/account/trade-fee', params); } getInterestAccrued(params) { return this.getPrivate('/api/v5/account/interest-accrued', params); } getInterestRate(params) { return this.getPrivate('/api/v5/account/interest-rate', params); } setGreeksDisplayType(params) { return this.postPrivate('/api/v5/account/set-greeks', params); } setIsolatedMode(params) { return this.postPrivate('/api/v5/account/set-isolated-mode', params); } getMaxWithdrawals(params) { return this.getPrivate('/api/v5/account/max-withdrawal', params); } getAccountRiskState() { return this.getPrivate('/api/v5/account/risk-state'); } setAccountCollateralAssets(params) { return this.postPrivate('/api/v5/account/set-collateral-assets', params); } getAccountCollateralAssets(params) { return this.getPrivate('/api/v5/account/collateral-assets', params); } submitQuickMarginBorrowRepay(params) { return this.postPrivate('/api/v5/account/quick-margin-borrow-repay', params); } getQuickMarginBorrowRepayHistory(params) { return this.getPrivate('/api/v5/account/quick-margin-borrow-repay-history', params); } borrowRepayVIPLoan(params) { return this.postPrivate('/api/v5/account/borrow-repay', params); } getVIPLoanBorrowRepayHistory(params) { return this.getPrivate('/api/v5/account/borrow-repay-history', params); } getVIPInterestAccrued(params) { return this.getPrivate('/api/v5/account/vip-interest-accrued', params); } getVIPInterestDeducted(params) { return this.getPrivate('/api/v5/account/vip-interest-deducted', params); } getVIPLoanOrders(params) { return this.getPrivate('/api/v5/account/vip-loan-order-list', params); } getVIPLoanOrder(params) { return this.getPrivate('/api/v5/account/vip-loan-order-detail', params); } getBorrowInterestLimits(params) { return this.getPrivate('/api/v5/account/interest-limits', params); } getFixedLoanBorrowLimit() { return this.getPrivate('/api/v5/account/fixed-loan/borrowing-limit'); } getFixedLoanBorrowQuote(params) { return this.getPrivate('/api/v5/account/fixed-loan/borrowing-quote', params); } submitFixedLoanBorrowOrder(params) { return this.postPrivate('/api/v5/account/fixed-loan/borrowing-order', params); } updateFixedLoanBorrowOrder(params) { return this.postPrivate('/api/v5/account/fixed-loan/amend-borrowing-order', params); } manualRenewFixedLoanBorrowOrder(params) { return this.postPrivate('/api/v5/account/fixed-loan/manual-reborrow', params); } repayFixedLoanBorrowOrder(params) { return this.postPrivate('/api/v5/account/fixed-loan/repay-borrowing-order', params); } convertFixedLoanToMarketLoan(params) { return this.postPrivate('/api/v5/account/fixed-loan/convert-to-market-loan', params); } reduceFixedLoanLiabilities(params) { return this.postPrivate('/api/v5/account/fixed-loan/reduce-liabilities', params); } getFixedLoanBorrowOrders(params) { return this.getPrivate('/api/v5/account/fixed-loan/borrowing-orders-list', params); } manualBorrowRepay(params) { return this.postPrivate('/api/v5/account/spot-manual-borrow-repay', params); } setAutoRepay(params) { return this.postPrivate('/api/v5/account/set-auto-repay', params); } getBorrowRepayHistory(params) { return this.getPrivate('/api/v5/account/spot-borrow-repay-history', params); } positionBuilder(params) { return this.postPrivate('/api/v5/account/position-builder', params); } updateRiskOffsetAmount(params) { return this.postPrivate('/api/v5/account/set-riskOffset-amt', params); } getGreeks(params) { return this.getPrivate('/api/v5/account/greeks', params); } getPMLimitation(params) { return this.getPrivate('/api/v5/account/position-tiers', params); } updateRiskOffsetType(params) { return this.postPrivate('/api/v5/account/set-riskOffset-type', params); } activateOption() { return this.postPrivate('/api/v5/account/activate-option'); } setAutoLoan(params) { return this.postPrivate('/api/v5/account/set-auto-loan', params); } presetAccountLevelSwitch(params) { return this.postPrivate('/api/v5/account/account-level-switch-preset', params); } getAccountSwitchPrecheck(params) { return this.getPrivate('/api/v5/account/set-account-switch-precheck', params); } setAccountMode(params) { return this.postPrivate('/api/v5/account/set-account-level', params); } resetMMPStatus(params) { return this.postPrivate('/api/v5/account/mmp-reset', params); } setMMPConfig(params) { return this.postPrivate('/api/v5/account/mmp-config', params); } getMMPConfig(params) { return this.getPrivate('/api/v5/account/mmp-config', params); } setTradingConfig(params) { return this.postPrivate('/api/v5/account/set-trading-config', params); } precheckSetDeltaNeutral(params) { return this.getPrivate('/api/v5/account/precheck-set-delta-neutral', params); } /** * * Orderbook trading - trade endpoints * */ submitOrder(params) { return this.postPrivate('/api/v5/trade/order', params); } submitMultipleOrders(params) { return this.postPrivate('/api/v5/trade/batch-orders', params); } cancelOrder(params) { return this.postPrivate('/api/v5/trade/cancel-order', params); } cancelMultipleOrders(params) { return this.postPrivate('/api/v5/trade/cancel-batch-orders', params); } amendOrder(params) { return this.postPrivate('/api/v5/trade/amend-order', params); } amendMultipleOrders(params) { return this.postPrivate('/api/v5/trade/amend-batch-orders', params); } closePositions(params) { return this.postPrivate('/api/v5/trade/close-position', params); } getOrderDetails(params) { return this.getPrivate('/api/v5/trade/order', params); } getOrderList(params) { return this.getPrivate('/api/v5/trade/orders-pending', params); } /** * Get history for last 7 days */ getOrderHistory(params) { return this.getPrivate('/api/v5/trade/orders-history', params); } /** * Get history for last 3 months */ getOrderHistoryArchive(params) { return this.getPrivate('/api/v5/trade/orders-history-archive', params); } /** * Get history for last 7 days */ getFills(params) { return this.getPrivate('/api/v5/trade/fills', params); } /** * Get history for last 3 months */ getFillsHistory(params) { return this.getPrivate('/api/v5/trade/fills-history', params); } /** Get easy convert currency list */ getEasyConvertCurrencies(params) { return this.getPrivate('/api/v5/trade/easy-convert-currency-list', params); } /** * * Place easy convert : Convert small currencies to mainstream currencies. * Only applicable to the crypto balance less than $10. * * Maximum 5 currencies can be selected in one order. * If there are multiple currencies, separate them with commas in the "from" field. * */ submitEasyConvert(params) { return this.postPrivate('/api/v5/trade/easy-convert', params); } /** Get easy convert history : Get the history and status of easy convert trades. */ getEasyConvertHistory(params) { return this.getPrivate('/api/v5/trade/easy-convert-history', params); } /** * * Get one-click repay currency list : Get list of debt currency data and repay currencies. * Debt currencies include both cross and isolated debts. */ getOneClickRepayCurrencyList(params) { return this.getPrivate('/api/v5/trade/one-click-repay-currency-list', params); } /** * Trade one-click repay to repay cross debts. * Isolated debts are not applicable. * The maximum repayment amount is based on the remaining available balance of funding and trading accounts. */ submitOneClickRepay(params) { return this.postPrivate('/api/v5/trade/one-click-repay', params); } /** Get the history and status of one-click repay trades. */ getOneClickRepayHistory(params) { return this.getPrivate('/api/v5/trade/one-click-repay-history', params); } cancelMassOrder(params) { return this.postPrivate('/api/v5/trade/mass-cancel', params); } cancelAllAfter(params) { return this.postPrivate('/api/v5/trade/cancel-all-after', params); } getAccountRateLimit() { return this.getPrivate('/api/v5/trade/account-rate-limit'); } submitOrderPrecheck(params) { return this.postPrivate('/api/v5/trade/order-precheck', params); } /** * * Orderbook trading - Algo trading endpoints * */ placeAlgoOrder(params) { return this.postPrivate('/api/v5/trade/order-algo', params); } cancelAlgoOrder(params) { return this.postPrivate('/api/v5/trade/cancel-algos', params); } amendAlgoOrder(params) { return this.postPrivate('/api/v5/trade/amend-algos', params); } cancelAdvanceAlgoOrder(params) { return this.postPrivate('/api/v5/trade/cancel-advance-algos', params); } getAlgoOrderDetails(params) { return this.getPrivate('/api/v5/trade/order-algo', params); } getAlgoOrderList(params) { return this.getPrivate('/api/v5/trade/orders-algo-pending', params); } getAlgoOrderHistory(params) { return this.getPrivate('/api/v5/trade/orders-algo-history', params); } /** * * Orderbook trading - Grid trading endpoints * */ placeGridAlgoOrder(params) { return this.postPrivate('/api/v5/tradingBot/grid/order-algo', params); } amendGridAlgoOrder(params) { return this.postPrivate('/api/v5/tradingBot/grid/amend-order-algo', params); } stopGridAlgoOrder(orders) { return this.postPrivate('/api/v5/tradingBot/grid/stop-order-algo', orders); } closeGridContractPosition(params) { return this.postPrivate('/api/v5/tradingBot/grid/close-position', params); } cancelGridContractCloseOrder(params) { return this.postPrivate('/api/v5/tradingBot/grid/cancel-close-order', params); } instantTriggerGridAlgoOrder(params) { return this.postPrivate('/api/v5/tradingBot/grid/order-instant-trigger', params); } getGridAlgoOrderList(params) { return this.getPrivate('/api/v5/tradingBot/grid/orders-algo-pending', params); } getGridAlgoOrderHistory(params) { return this.getPrivate('/api/v5/tradingBot/grid/orders-algo-history', params); } getGridAlgoOrderDetails(params) { return this.getPrivate('/api/v5/tradingBot/grid/orders-algo-details', params); } getGridAlgoSubOrders(params) { return this.getPrivate('/api/v5/tradingBot/grid/sub-orders', params); } getGridAlgoOrderPositions(params) { return this.getPrivate('/api/v5/tradingBot/grid/positions', params); } spotGridWithdrawIncome(params) { return this.postPrivate('/api/v5/tradingBot/grid/withdraw-income', params); } computeGridMarginBalance(params) { return this.postPrivate('/api/v5/tradingBot/grid/compute-margin-balance', params); } adjustGridMarginBalance(params) { return this.postPrivate('/api/v5/tradingBot/grid/margin-balance', params); } adjustGridInvestment(params) { return this.postPrivate('/api/v5/tradingBot/grid/adjust-investment', params); } getGridAIParameter(params) { return this.get('/api/v5/tradingBot/grid/ai-param', params); } computeGridMinInvestment(params) { return this.post('/api/v5/tradingBot/grid/min-investment', params); } getRSIBackTesting(params) { return this.get('/api/v5/tradingBot/public/rsi-back-testing', params); } getMaxGridQuantity(params) { return this.get('/api/v5/tradingBot/grid/grid-quantity', params); } /** * * Orderbook trading - Signal bot trading endpoints * */ createSignal(params) { return this.postPrivate('/api/v5/tradingBot/signal/create-signal', params); } getSignals(params) { return this.getPrivate('/api/v5/tradingBot/signal/signals', params); } createSignalBot(params) { return this.postPrivate('/api/v5/tradingBot/signal/order-algo', params); } cancelSignalBots(params) { return this.postPrivate('/api/v5/tradingBot/signal/stop-order-algo', params); } updateSignalMargin(params) { return this.postPrivate('/api/v5/tradingBot/signal/margin-balance', params); } updateSignalTPSL(params) { return this.postPrivate('/api/v5/tradingBot/signal/amendTPSL', params); } setSignalInstruments(params) { return this.postPrivate('/api/v5/tradingBot/signal/set-instruments', params); } getSignalBotOrder(params) { return this.getPrivate('/api/v5/tradingBot/signal/orders-algo-details', params); } getActiveSignalBot(params) { return this.getPrivate('/api/v5/tradingBot/signal/orders-algo-details', params); } getSignalBotHistory(params) { return this.getPrivate('/api/v5/tradingBot/signal/orders-algo-history', params); } getSignalBotPositions(params) { return this.getPrivate('/api/v5/tradingBot/signal/positions', params); } getSignalBotPositionHistory(params) { return this.getPrivate('/api/v5/tradingBot/signal/positions-history', params); } closeSignalBotPosition(params) { return this.postPrivate('/api/v5/tradingBot/signal/close-position', params); } placeSignalBotSubOrder(params) { return this.postPrivate('/api/v5/tradingBot/signal/sub-order', params); } cancelSubOrder(params) { return this.postPrivate('/api/v5/tradingBot/signal/cancel-sub-order', params); } getSignalBotSubOrders(params) { return this.getPrivate('/api/v5/tradingBot/signal/sub-orders', params); } getSignalBotEventHistory(params) { return this.getPrivate('/api/v5/tradingBot/signal/event-history', params); } /** * * Orderbook trading - Recurring buy endpoints * */ submitRecurringBuyOrder(params) { return this.postPrivate('/api/v5/tradingBot/recurring/order-algo', params); } amendRecurringBuyOrder(params) { return this.postPrivate('/api/v5/tradingBot/recurring/amend-order-algo', params); } stopRecurringBuyOrder(params) { return this.postPrivate('/api/v5/tradingBot/recurring/stop-order-algo', params); } getRecurringBuyOrders(params) { return this.getPrivate('/api/v5/tradingBot/recurring/orders-algo-pending', params); } getRecurringBuyOrderHistory(params) { return this.getPrivate('/api/v5/tradingBot/recurring/orders-algo-history', params); } getRecurringBuyOrderDetails(params) { return this.getPrivate('/api/v5/tradingBot/recurring/orders-algo-details', params); } getRecurringBuySubOrders(params) { return this.getPrivate('/api/v5/tradingBot/recurring/sub-orders', params); } /** * * Orderbook trading - Copy trading endpoints * */ getCopytradingSubpositions(params) { return this.getPrivate('/api/v5/copytrading/current-subpositions', params); } getCopytradingSubpositionsHistory(params) { return this.getPrivate('/api/v5/copytrading/subpositions-history', params); } submitCopytradingAlgoOrder(params) { return this.postPrivate('/api/v5/copytrading/algo-order', params); } closeCopytradingSubposition(params) { return this.postPrivate('/api/v5/copytrading/close-subposition', params); } getCopytradingInstruments(params) { return this.getPrivate('/api/v5/copytrading/instruments', params); } setCopytradingInstruments(params) { return this.postPrivate('/api/v5/copytrading/set-instruments', params); } getCopytradingProfitDetails(params) { return this.getPrivate('/api/v5/copytrading/profit-sharing-details', params); } getCopytradingTotalProfit(params) { return this.getPrivate('/api/v5/copytrading/total-profit-sharing', params); } getCopytradingUnrealizedProfit(params) { return this.getPrivate('/api/v5/copytrading/unrealized-profit-sharing-details', params); } getCopytradingTotalUnrealizedProfit(params) { return this.getPrivate('/api/v5/copytrading/total-unrealized-profit-sharing', params); } applyCopytradingLeadTrading(params) { return this.postPrivate('/api/v5/copytrading/apply-lead-trading', params); } stopCopytradingLeadTrading(params) { return this.postPrivate('/api/v5/copytrading/stop-lead-trading', params); } updateCopytradingProfitSharing(params) { return this.postPrivate('/api/v5/copytrading/amend-profit-sharing-ratio', params); } getCopytradingAccount() { return this.getPrivate('/api/v5/copytrading/config'); } setCopytradingFirstCopy(params) { return this.postPrivate('/api/v5/copytrading/first-copy-settings', params); } updateCopytradingCopySettings(params) { return this.postPrivate('/api/v5/copytrading/amend-copy-settings', params); } stopCopytradingCopy(params) { return this.postPrivate('/api/v5/copytrading/stop-copy-trading', params); } getCopytradingCopySettings(params) { return this.getPrivate('/api/v5/copytrading/copy-settings', params); } getCopytradingBatchLeverageInfo(params) { return this.getPrivate('/api/v5/copytrading/batch-leverage-info', params); } setCopytradingBatchLeverage(params) { return this.postPrivate('/api/v5/copytrading/batch-set-leverage', params); } getCopytradingMyLeadTraders(params) { return this.getPrivate('/api/v5/copytrading/current-lead-traders', params); } getCopytradingLeadTradersHistory(params) { return this.getPrivate('/api/v5/copytrading/lead-traders-history', params); } getCopytradingConfig(params) { return this.get('/api/v5/copytrading/public-config', params); } getCopytradingLeadRanks(params) { return this.get('/api/v5/copytrading/public-lead-traders', params); } getCopytradingLeadWeeklyPnl(params) { return this.get('/api/v5/copytrading/public-weekly-pnl', params); } getCopytradingLeadDailyPnl(params) { return this.get('/api/v5/copytrading/public-pnl', params); } getCopytradingLeadStats(params) { return this.get('/api/v5/copytrading/public-stats', params); } getCopytradingLeadPreferences(params) { return this.get('/api/v5/copytrading/public-preference-currency', params); } getCopytradingLeadOpenPositions(params) { return this.get('/api/v5/copytrading/public-current-subpositions', params); } getCopytradingLeadPositionHistory(params) { return this.get('/api/v5/copytrading/public-subpositions-history', params); } getCopyTraders(params) { return this.get('/api/v5/copytrading/public-copy-traders', params); } getCopytradingLeadPrivateRanks(params) { return this.getPrivate('/api/v5/copytrading/lead-traders', params); } getCopytradingLeadPrivateWeeklyPnl(params) { return this.getPrivate('/api/v5/copytrading/weekly-pnl', params); } getCopytradingPLeadPrivateDailyPnl(params) { return this.getPrivate('/api/v5/copytrading/pnl', params); } geCopytradingLeadPrivateStats(params) { return this.getPrivate('/api/v5/copytrading/stats', params); } getCopytradingLeadPrivatePreferences(params) { return this.getPrivate('/api/v5/copytrading/preference-currency', params); } getCopytradingLeadPrivateOpenPositions(params) { return this.getPrivate('/api/v5/copytrading/performance-current-subpositions', params); } getCopytradingLeadPrivatePositionHistory(params) { return this.getPrivate('/api/v5/copytrading/performance-subpositions-history', params); } getCopyTradersPrivate(params) { return this.getPrivate('/api/v5/copytrading/copy-traders', params); } /** * * Orderbook trading - Market data endpoints * */ getTickers(params) { return this.get('/api/v5/market/tickers', params); } getTicker(params) { return this.get('/api/v5/market/ticker', params); } getOrderBook(params) { return this.get('/api/v5/market/books', params); } getFullOrderBook(params) { return this.get('/api/v5/market/books-full', params); } getCandles(params) { return this.get('/api/v5/market/candles', params); } getHistoricCandles(params) { return this.get('/api/v5/market/history-candles', params); } getTrades(params) { return this.get('/api/v5/market/trades', params); } getHistoricTrades(params) { return this.get('/api/v5/market/history-trades', params); } getOptionTradesByInstrument(params) { return this.get('/api/v5/market/option/instrument-family-trades', params); } getOptionTrades(params) { return this.get('/api/v5/public/option-trades', params); } get24hrTotalVolume() { return this.get('/api/v5/market/platform-24-volume'); } /** * * Block trading - REST endpoints * */ getBlockCounterParties() { return this.getPrivate('/api/v5/rfq/counterparties'); } createBlockRFQ(params) { return this.postPrivate('/api/v5/rfq/create-rfq', params); } cancelBlockRFQ(params) { return this.postPrivate('/api/v5/rfq/cancel-rfq', params); } cancelMultipleBlockRFQs(params) { return this.postPrivate('/api/v5/rfq/cancel-batch-rfqs', params); } cancelAllRFQs() { return this.postPrivate('/api/v5/rfq/cancel-all-rfqs'); } executeBlockQuote(params) { return this.postPrivate('/api/v5/rfq/execute-quote', params); } getQuoteProducts() { return this.getPrivate('/api/v5/rfq/maker-instrument-settings'); } updateBlockQuoteProducts(params) { return this.postPrivate('/api/v5/rfq/maker-instrument-settings', params); } resetBlockMmp() { return this.postPrivate('/api/v5/rfq/mmp-reset'); } updateBlockMmpConfig(params) { return this.postPrivate('/api/v5/rfq/mmp-config', params); } getBlockMmpConfig() { return this.getPrivate('/api/v5/rfq/mmp-config'); } createBlockQuote(params) { return this.postPrivate('/api/v5/rfq/create-quote', params); } cancelBlockQuote(params) { return this.postPrivate('/api/v5/rfq/cancel-quote', params); } cancelMultipleBlockQuotes(params) { return this.postPrivate('/api/v5/rfq/cancel-batch-quotes', params); } cancelAllBlockQuotes() { return this.postPrivate('/api/v5/rfq/cancel-all-quotes'); } cancelAllBlockAfter(params) { return this.postPrivate('/api/v5/rfq/cancel-all-after', params); } getBlockRFQs(params) { return this.getPrivate('/api/v5/rfq/rfqs', params); } getBlockQuotes(params) { return this.getPrivate('/api/v5/rfq/quotes', params); } getBlockTrades(params) { return this.getPrivate('/api/v5/rfq/trades', params); } getPublicRFQBlockTrades(params) { return this.get('/api/v5/rfq/public-trades', params); } getBlockTickers(params) { return this.get('/api/v5/market/block-tickers', params); } getBlockTicker(params) { return this.get('/api/v5/market/block-ticker', params); } getBlockPublicTrades(params) { return this.get('/api/v5/public/block-trades', params); } /** * * Spread trading - REST endpoints * */ submitSpreadOrder(params) { return this.postPrivate('/api/v5/sprd/order', params); } cancelSpreadOrder(params) { return this.postPrivate('/api/v5/sprd/cancel-order', params); } cancelAllSpreadOrders(params) { return this.postPrivate('/api/v5/sprd/mass-cancel', params); } updateSpreadOrder(params) { return this.postPrivate('/api/v5/sprd/amend-order', params); } getSpreadOrder(params) { return this.getPrivate('/api/v5/sprd/order', params); } getSpreadActiveOrders(params) { return this.getPrivate('/api/v5/sprd/orders-pending', params); } getSpreadOrdersRecent(params) { return this.getPrivate('/api/v5/sprd/orders-history', params); } getSpreadOrdersArchive(params) { return this.getPrivate('/api/v5/sprd/orders-history-archive', params); } getSpreadTrades(params) { return this.getPrivate('/api/v5/sprd/trades', params); } getSpreads(params) { return this.get('/api/v5/sprd/spreads', params); } getSpreadOrderBook(params) { return this.get('/api/v5/sprd/books', params); } getSpreadTicker(params) { return this.get('/api/v5/market/sprd-ticker', params); } getSpreadPublicTrades(params) { return this.get('/api/v5/sprd/public-trades', params); } getSpreadCandles(params) { return this.get('/api/v5/market/sprd-candles', params); } getSpreadHistoryCandles(params) { return this.get('/api/v5/market/sprd-history-candles', params); } cancelSpreadAllAfter(params) { return this.postPrivate('/api/v5/sprd/cancel-all-after', params); } /** * * Public data - rest endpoints * */ getInstruments(params) { return this.get('/api/v5/public/instruments', params); } getDeliveryExerciseHistory(params) { return this.get('/api/v5/public/delivery-exercise-history', params); } getOpenInterest(params) { return this.get('/api/v5/public/open-interest', params); } getFundingRate(params) { return this.get('/api/v5/public/funding-rate', params); } getFundingRateHistory(params) { return this.get('/api/v5/public/funding-rate-history', params); } getMinMaxLimitPrice(params) { return this.get('/api/v5/public/price-limit', params); } getOptionMarketData(params) { return this.get('/api/v5/public/opt-summary', params); } getEstimatedDeliveryExercisePrice(params) { return this.get('/api/v5/public/estimated-price', params); } getDiscountRateAndInterestFreeQuota(params) { return this.get('/api/v5/public/discount-rate-interest-free-quota', params); } getSystemTime(params) { return this.get('/api/v5/public/time', params); } getMarkPrice(params) { return this.get('/api/v5/public/mark-price', params); } getPositionTiers(params) { return this.get('/api/v5/public/position-tiers', params); } getInterestRateAndLoanQuota() { return this.get('/api/v5/public/interest-rate-loan-quota'); } getVIPInterestRateAndLoanQuota(params) { return this.get('/api/v5/public/vip-interest-rate-loan-quota', params); } getUnderlying(params) { return this.get('/api/v5/public/underlying', params); } getInsuranceFund(params) { return this.get('/api/v5/public/insurance-fund', params); } getUnitConvert(params) { return this.get('/api/v5/public/convert-contract-coin', params); } getOptionTickBands(params) { return this.get('/api/v5/public/instrument-tick-bands', params); } getPremiumHistory(params) { return this.get('/api/v5/public/premium-history', params); } getIndexTickers(params) { return this.get('/api/v5/market/index-tickers', params); } getIndexCandles(params) { return this.get('/api/v5/market/index-candles', params); } getHistoricIndexCandles(params) { return this.get('/api/v5/market/history-index-candles', params); } getMarkPriceCandles(params) { return this.get('/api/v5/market/mark-price-candles', params); } getHistoricMarkPriceCandles(params) { return this.get('/api/v5/market/history-mark-price-candles', params); } getOracle() { return this.get('/api/v5/market/open-oracle'); } getExchangeRate() { return this.get('/api/v5/market/exchange-rate'); } getIndexComponents(params) { return this.get('/api/v5/market/index-components', params); } getEconomicCalendar(params) { return this.getPrivate('/api/v5/public/economic-calendar', params); } getPublicBlockTrades(params) { return this.get('/api/v5/market/block-trades', params); } /** * * Trading statistics - REST endpoints * */ getSupportCoin() { return this.get('/api/v5/rubik/stat/trading-data/support-coin'); } getOpenInterestHistory(params) { return this.get('/api/v5/rubik/stat/contracts/open-interest-history', params); } getTakerVolume(params) { return this.get('/api/v5/rubik/stat/taker-volume', params); } getContractTakerVolume(params) { return this.get('/api/v5/rubik/stat/taker-volume-contract', params); } getMarginLendingRatio(params) { return this.get('/api/v5/rubik/stat/margin/loan-ratio', params); } getTopTradersAccountRatio(params) { return this.get('/api/v5/rubik/stat/contracts/long-short-account-ratio-contract-top-trader', params); } getTopTradersContractPositionRatio(params) { return this.get('/api/v5/rubik/stat/contracts/long-short-position-ratio-contract-top-trader', params); } getLongShortContractRatio(params) { return this.get('/api/v5/rubik/stat/contracts/long-short-account-ratio-contract', params); } getLongShortRatio(params) { return this.get('/api/v5/rubik/stat/contracts/long-short-account-ratio', params); } getContractsOpenInterestAndVolume(params) { return this.get('/api/v5/rubik/stat/contracts/open-interest-volume', params); } getOptionsOpenInterestAndVolume(params) { return this.get('/api/v5/rubik/stat/option/open-interest-volume', params); } getPutCallRatio(params) { return this.get('/api/v5/rubik/stat/option/open-interest-volume-ratio', params); } getOpenInterestAndVolumeExpiry(params) { return this.get('/api/v5/rubik/stat/option/open-interest-volume-expiry', params); } getOpenInterestAndVolumeStrike(params) { return this.get('/api/v5/rubik/stat/option/open-interest-volume-strike', params); } getTakerFlow(params) { return this.get('/api/v5/rubik/stat/option/taker-block-volume', params); } /** * * Funding account - REST endpoints * */ getCurrencies(params) { return this.getPrivate('/api/v5/asset/currencies', params); } getBalances(params) { return this.getPrivate('/api/v5/asset/balances', params); } getNonTradableAssets(params) { return this.getPrivate('/api/v5/asset/non-tradable-assets', params); } getAccountAssetValuation(params) { return this.getPrivate('/api/v5/asset/asset-valuation', params); } fundsTransfer(params) { return this.postPrivate('/api/v5/asset/transfer', params); } /** Either parameter transId or clientId is required. */ getFundsTransferState(params) { return this.getPrivate('/api/v5/asset/transfer-state', params); } /** * Query the billing record in the past month. */ getAssetBillsDetails(params) { return this.getPrivate('/api/v5/asset/bills', params); } /** * Query the billing records of all time since 1 February, 2021. * * ⚠️ IMPORTANT: Data updates occur every 30 seconds. Update frequency may vary based on data volume - please be aware of potential delays during high-traffic periods. * * Rate Limit: 1 Requests per second * @param params * @returns */ getAssetBillsHistoric(params) { return this.getPrivate('/api/v5/asset/bills-history', params); } getLightningDeposits(params) { return this.getPrivate('/api/v5/asset/deposit-lightning', params); } getDepositAddress(params) { return this.getPrivate('/api/v5/asset/deposit-address', params); } getDepositHistory(params) { return this.getPrivate('/api/v5/asset/deposit-history', params); } submitWithdraw(params) { return this.postPrivate('/api/v5/asset/withdrawal', params); } submitWithdrawLightning(params) { return this.postPrivate('/api/v5/asset/withdrawal-lightning', params); } cancelWithdrawal(params) { return this.postPrivate('/api/v5/asset/cancel-withdrawal', params); } getWithdrawalHistory(params) { return this.getPrivate('/api/v5/asset/withdrawal-history', params); } getDepositWithdrawStatus(params) { return this.getPrivate('/api/v5/asset/deposit-withdraw-status', params); } getExchanges() { return this.get('/api/v5/asset/exchange-list'); } applyForMonthlyStatement(params) { return this.postPrivate('/api/v5/asset/monthly-statement', params); } getMonthlyStatement(params) { return this.getPrivate('/api/v5/asset/monthly-statement', params); } getConvertCurrencies() { return this.getPrivate('/api/v5/asset/convert/currencies'); } getConvertCurrencyPair(params) { return this.getPrivate('/api/v5/asset/convert/currency-pair', params); } estimateConvertQuote(params) { return this.postPrivate('/api/v5/asset/convert/estimate-quote', params); } convertTrade(params) { return this.postPrivate('/api/v5/asset/convert/trade', params); } getConvertHistory(params) { return this.getPrivate('/api/v5/asset/convert/history', params); } /** * * Subaccount - REST endpoints * */ /** View sub-account list */ getSubAccountList(params) { return this.getPrivate('/api/v5/users/subaccount/list', params); } resetSubAccountAPIKey(params) { return this.postPrivate('/api/v5/users/subaccount/modify-apikey', params); } getSubAccountBalances(params) { return this.getPrivate('/api/v5/account/subaccount/balances', params); } getSubAccountFundingBalances(params) { return this.getPrivate('/api/v5/asset/subaccount/balances', params); } getSubAccountMaxWithdrawal(params) { return this.getPrivate('/api/v5/account/subaccount/max-withdrawal', params); } /** History of sub-account transfer */ getSubAccountTransferHistory(params) { return this.getPrivate('/api/v5/asset/subaccount/bills', params); } getManagedSubAccountTransferHistory(params) { return this.getPrivate('/api/v5/asset/subaccount/managed-subaccount-bills', params); } /** Master accounts manage the transfers between sub-accounts */ transferSubAccountBalance(params) { return this.postPrivate('/api/v5/asset/subaccount/transfer', params); } setSubAccountTransferOutPermission(params) { return this.postPrivate('/api/v5/users/subaccount/set-transfer-out', params); } getSubAccountCustodyTradingList(params) { return this.getPrivate('/api/v5/users/entrust-subaccount-list', params); } setSubAccountLoanAllocation(params) { return this.postPrivate('/api/v5/account/subaccount/set-loan-allocation', params); } getSubAccountBorrowInterestAndLimit(params) { return this.getPrivate('/api/v5/account/subaccount/interest-limits', params); } /** * * Financial product - on chain earn endpoints * */ /** Get earn offers */ getStakingOffers(params) { return this.getPrivate('/api/v5/finance/staking-defi/offers', params); } submitStake(params) { return this.postPrivate('/api/v5/finance/staking-defi/purchase', params); } redeemStake(params) { return this.postPrivate('/api/v5/finance/staking-defi/redeem', params); } cancelStakingRequest(params) { return this.postPrivate('/api/v5/finance/staking-defi/cancel', params); } /** Earn/staking get active orders */ getActiveStakingOrders(params) { return this.getPrivate('/api/v5/finance/staking-defi/orders-active', params); } /** Earn/staking get order history */ getStakingOrderHistory(params) { return this.getPrivate('/api/v5/finance/staking-defi/orders-history', params); } /** * * Financial product - ETH staking endpoints * */ getETHStakingProductInfo() { return this.get('/api/v5/finance/staking-defi/eth/product-info'); } purchaseETHStaking(params) { return this.postPrivate('/api/v5/finance/staking-defi/eth/purchase', params); } redeemETHStaking(params) { return this.postPrivate('/api/v5/finance/staking-defi/eth/redeem', params); } getETHStakingBalance() { return this.getPrivate('/api/v5/finance/staking-defi/eth/balance'); } getETHStakingHistory(params) { return this.getPrivate('/api/v5/finance/staking-defi/eth/purchase-redeem-history', params); } cancelRedeemETHStaking(params) { return this.postPrivate('/api/v5/finance/staking-defi/eth/cancel-redeem', params); } getAPYHistory(params) { return this.get('/api/v5/finance/staking-defi/eth/apy-history', params); } /** * * Financial product - simple earn flexible endpoints * */ getSavingBalance(params) { return this.getPrivate('/api/v5/finance/savings/balance', params); } savingsPurchaseRedemption(params) { return this.postPrivate('/api/v5/finance/savings/purchase-redempt', params); } setLendingRate(params) { return this.postPrivate('/api/v5/finance/savings/set-lending-rate', params); } getLendingHistory(params) { return this.getPrivate('/api/v5/finance/savings/lending-history', params); } getPublicBorrowInfo(params) { return this.get('/api/v5/finance/savings/lending-rate-summary', params); } getPublicBorrowHistory(params) { return this.get('/api/v5/finance/savings/lending-rate-history', params); } /** * * Financial product - simple earn fixed endpoints * */ getLendingOffers(params) { return this.get('/api/v5/finance/fixed-loan/lending-offers', params); } getLendingAPYHistory(params) { return this.get('/api/v5/finance/fixed-loan/lending-apy-history', params); } getLendingVolume(params) { return this.get('/api/v5/finance/fixed-loan/pending-lending-volume', params); } placeLendingOrder(params) { return this.postPrivate('/api/v5/finance/fixed-loan/lending-order', params); } amendLendingOrder(params) { return this.postPrivate('/api/v5/finance/fixed-loan/amend-lending-order', params); } getLendingOrders(params) { return this.getPrivate('/api/v5/finance/fixed-loan/lending-orders-list', params); } getLendingSubOrders(params) { return this.getPrivate('/api/v5/finance/fixed-loan/lending-sub-orders', params); } /** * * Financial product - Flexible loan endpoints * */ getBorrowableCurrencies() { return this.get('/api/v5/finance/flexible-loan/borrow-currencies'); } getCollateralAssets(params) { return this.get('/api/v5/finance/flexible-loan/collateral-assets', params); } getMaxLoanAmount(params) { return this.postPrivate('/api/v5/finance/flexible-loan/max-loan', params); } adjustCollateral(params) { return this.postPrivate('/api/v5/finance/flexible-loan/adjust-collateral', params); } getLoanInfo() { return this.getPrivate('/api/v5/finance/flexible-loan/loan-info'); } getLoanHistory(params) { return this.getPrivate('/api/v5/finance/flexible-loan/loan-history', params); } getAccruedInterest(params) { return this.getPrivate('/api/v5/finance/flexible-loan/interest-accrued', params); } /** * * Affiliate endpoints * */ getInviteeDetail(params) { return this.getPrivate('/api/v5/affiliate/invitee/detail', params); } getAffiliateRebateInfo(params) { return this.getPrivate('/api/v5/users/partner/if-rebate', params); } /** * * Status endpoints (public) * */ getSystemStatus(params) { return this.get('/api/v5/system/status', params); } /** * * Announcement endpoints * */ getAnnouncements(params) { return this.get('/api/v5/support/announcements', params); } getAnnouncementTypes() { return this.get('/api/v5/support/announcement-types'); } /** * * Broker endpoints (private) * */ createSubAccount(params) { return this.postPrivate('/api/v5/broker/nd/create-subaccount', params); } deleteSubAccount(params) { return this.postPrivate('/api/v5/broker/nd/delete-subaccount', params); } createSubAccountAPIKey(params) { return this.postPrivate('/api/v5/broker/nd/subaccount/apikey', params); } } exports.RestClient = RestClient; //# sourceMappingURL=rest-client.js.map