okx-api
Version:
Complete & robust Node.js SDK for OKX's REST APIs and WebSockets, with TypeScript & end-to-end tests
1,305 lines • 49.5 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
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_1 = __importDefault(require("./util/BaseRestClient"));
class RestClient extends BaseRestClient_1.default {
/**
* @public Creates an instance of the REST API client.
*
* @param credentials - Note: This parameter will be removed! Pass `null` here and use the restClientOptions parameter (3rd one) instead!
* @param environment - Note: This parameter will be removed! Pass `prod` here and use the restClientOptions parameter (3rd one) instead!
* @param restClientOptions
* @param requestOptions
* @returns
*/
constructor(credentials, environment = 'prod', restClientOptions = {}, requestOptions = {}) {
super(Object.assign({ apiKey: credentials === null || credentials === void 0 ? void 0 : credentials.apiKey, apiSecret: credentials === null || credentials === void 0 ? void 0 : credentials.apiSecret, apiPass: credentials === null || credentials === void 0 ? void 0 : credentials.apiPass, market: environment }, restClientOptions), requestOptions);
return this;
}
/**
*
* 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.
*/
fetchLatencySummary() {
return __awaiter(this, void 0, void 0, function* () {
const clientTimeReqStart = Date.now();
const serverTime = yield 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
*
*/
getServerTime() {
return __awaiter(this, void 0, void 0, function* () {
var _a;
const response = yield this.get('/api/v5/public/time');
const timestamp = Array.isArray(response) ? Number((_a = response[0]) === null || _a === void 0 ? void 0 : _a.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);
}
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);
}
/**
*
* 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(params) {
return this.get('/api/v5/public/interest-rate-loan-quota', params);
}
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);
}
getAssetBillsDetails(params) {
return this.getPrivate('/api/v5/asset/bills', 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);
}
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