UNPKG

bitmart-api

Version:

Complete & robust Node.js SDK for BitMart's REST APIs and WebSockets, with TypeScript declarations.

446 lines (445 loc) 18.6 kB
import { AxiosRequestConfig } from 'axios'; import { BaseRestClient, RestClientType } from './lib/BaseRestClient.js'; import { RestClientOptions } from './lib/requestUtils.js'; import { FuturesAccountHistoricOrderRequest, FuturesAccountOpenOrdersRequest, FuturesAccountOrderRequest, FuturesAccountPlanOrdersRequest, FuturesAccountTradesRequest, FuturesAccountTransfersRequest, FuturesAffiliateRebatesRequest, FuturesAffiliateTradesRequest, FuturesKlinesRequest, FuturesSubTransfersRequest, FuturesSubWalletRequest, SetFuturesLeverageRequest, SubmitFuturesOrderRequest, SubmitFuturesPlanOrderRequest, SubmitFuturesSubToMainSubFromSubRequest, SubmitFuturesTransferRequest, TransferFuturesAssetsRequest } from './types/request/futures.types.js'; import { AccountSubTransfersV1Request, CancelOrdersV3Request, CancelSpotBatchOrdersV4Request, DepositWithdrawHistoryV2Request, MarginBorrowRecordsV1Request, MarginBorrowRepayV1Request, MarginRepayRecordsV1Request, SpotBrokerRebateRequest, SpotKlinesV1Request, SpotKlineV3Request, SpotOpenOrdersV4Request, SpotOrderBookDepthV1Request, SpotOrderByClientOrderIdV4Request, SpotOrderByIdV4Request, SpotOrderTradeHistoryV4Request, SubmitMainTransferSubToSubV1Request, SubmitMarginTransferV1Request, SubmitSpotBatchOrdersV4Request, SubmitSpotOrderV2Request, SubmitSubTransferSubToMainV1Request, SubmitSubTransferV1Request, SubmitWithdrawalV1Request, SubSpotWalletBalancesV1Request, SubTransfersV1Request } from './types/request/spot.types.js'; import { FuturesAccountAsset, FuturesAccountHistoricOrder, FuturesAccountOpenOrder, FuturesAccountOrder, FuturesAccountPlanOrders, FuturesAccountPosition, FuturesAccountSetLeverageResult, FuturesAccountSubTransfer, FuturesAccountTrade, FuturesAccountTransfer, FuturesContractDepth, FuturesContractDetails, FuturesFundingRate, FuturesKline, FuturesOpenInterest, FuturesOrderSubmitResult, FuturesTransferSubmitResult, PositionRisk } from './types/response/futures.types.js'; import { AccountCurrencyBalanceV1, APIResponse, OrderSide } from './types/response/shared.types.js'; import { AccountCurrencyV1, AccountDepositAddressV1, AccountDepositWithdrawHistoryV2, AccountWithdrawQuotaV1, ActualFeeRateV1, ArrayFormSpotKlineV3, ArrayFormSpotRecentTrade, ArrayFormSpotTickerV3, BasicFeeRateV1, CancelSpotBatchOrdersV4Response, MarginBorrowingRateV1, MarginBorrowRecordV1, MarginRepayRecordV1, ServiceStatus, SpotAccountTradeV4, SpotBrokerRebateResult, SpotCurrencyV1, SpotKlineV1, SpotOrderBookDepthResultV1, SpotOrderBookDepthResultV3, SpotOrderV4, SpotTickerV1, SpotTickerV3, SpotTradingPairDetailsV1, SpotWalletBalanceV1, SubAccountV1, SubmittedSpotBatchOrderResponseV2, SubTransferRow, SymbolMarginAccountDetailsV1, WithdrawAddressListItem } from './types/response/spot.types.js'; /** * Unified REST API client for all of Bitmart's REST APIs * * Note: for futures V2 APIs, use the `FuturesClientV2` class instead (which maps to a different base URL) */ export declare class RestClient extends BaseRestClient { constructor(restClientOptions?: RestClientOptions, requestOptions?: AxiosRequestConfig); getClientType(): RestClientType; /** * * 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(): Promise<any>; /** * * System Status Endpoints * **/ getSystemTime(): Promise<APIResponse<{ server_time: number; }>>; getSystemStatus(): Promise<APIResponse<{ service: ServiceStatus[]; }>>; /** * * Public Market Data Endpoints * **/ getSpotCurrenciesV1(): Promise<APIResponse<{ currencies: SpotCurrencyV1[]; }>>; getSpotTradingPairsV1(): Promise<APIResponse<{ symbols: string[]; }>>; getSpotTradingPairDetailsV1(): Promise<APIResponse<{ symbols: SpotTradingPairDetailsV1[]; }>>; getSpotTickersV3(): Promise<APIResponse<ArrayFormSpotTickerV3[]>>; getSpotTickerV3(params?: { symbol: string; }): Promise<APIResponse<SpotTickerV3>>; getSpotLatestKlineV3(params: SpotKlineV3Request): Promise<APIResponse<ArrayFormSpotKlineV3[]>>; getSpotHistoryKlineV3(params: SpotKlineV3Request): Promise<APIResponse<ArrayFormSpotKlineV3[]>>; getSpotOrderBookDepthV3(params: { symbol: string; limit?: number; }): Promise<APIResponse<SpotOrderBookDepthResultV3>>; getSpotRecentTrades(params: { symbol: string; limit?: number; }): Promise<APIResponse<ArrayFormSpotRecentTrade[]>>; /** * * Public Market Data Endpoints (History Version) * **/ /** * @deprecated , use V3 or V4 instead */ getSpotTickersV2(): Promise<APIResponse<{ tickers: SpotTickerV1[]; }>>; /** * @deprecated , use V3 or V4 instead */ getSpotTickerV1(params: { symbol: string; }): Promise<APIResponse<SpotTickerV1>>; /** * @deprecated , use V3 or V4 instead */ getSpotKLineStepsV1(): Promise<APIResponse<{ steps: number[]; }>>; /** * @deprecated , use V3 or V4 instead */ getSpotKlinesV1(params: SpotKlinesV1Request): Promise<APIResponse<{ klines: SpotKlineV1[]; }>>; /** * @deprecated , use V3 or V4 instead */ getSpotOrderBookDepthV1(params: SpotOrderBookDepthV1Request): Promise<APIResponse<SpotOrderBookDepthResultV1>>; /** * * Funding Account Endpoints * **/ getAccountBalancesV1(params?: { currency?: string; }): Promise<APIResponse<{ wallet: AccountCurrencyBalanceV1[]; }>>; getAccountCurrenciesV1(params?: { currencies?: string; }): Promise<APIResponse<{ currencies: AccountCurrencyV1[]; }>>; getSpotWalletBalanceV1(): Promise<APIResponse<{ wallet: SpotWalletBalanceV1[]; }>>; getAccountDepositAddressV1(params: { currency: string; }): Promise<APIResponse<AccountDepositAddressV1>>; getAccountWithdrawQuotaV1(params: { currency: string; }): Promise<APIResponse<AccountWithdrawQuotaV1>>; submitWithdrawalV1(params: SubmitWithdrawalV1Request): Promise<APIResponse<{ withdrawal_id: string; }>>; getWithdrawAddressList(): Promise<APIResponse<{ list: WithdrawAddressListItem[]; }>>; getDepositWithdrawHistoryV2(params?: DepositWithdrawHistoryV2Request): Promise<APIResponse<{ records: AccountDepositWithdrawHistoryV2[]; }>>; getDepositWithdrawDetailV1(params: { id: string; }): Promise<APIResponse<{ record: AccountDepositWithdrawHistoryV2; }>>; getMarginAccountDetailsV1(params?: { symbol?: string; }): Promise<APIResponse<{ symbols: SymbolMarginAccountDetailsV1[]; }>>; submitMarginAssetTransferV1(params: SubmitMarginTransferV1Request): Promise<APIResponse<{ transfer_id: string; }>>; getBasicSpotFeeRateV1(): Promise<APIResponse<BasicFeeRateV1>>; getActualSpotTradeFeeRateV1(params: { symbol: string; }): Promise<APIResponse<ActualFeeRateV1>>; /** * * Spot/Margin Trading Endpoints * **/ submitSpotOrderV2(params: SubmitSpotOrderV2Request): Promise<APIResponse<{ order_id: string; }>>; submitMarginOrderV1(params: SubmitSpotOrderV2Request): Promise<APIResponse<{ order_id: number; }>>; /** * @deprecated , use V3 or V4 instead */ submitSpotBatchOrdersV2(params: { order_params: SubmitSpotOrderV2Request[]; }): Promise<APIResponse<{ responses: SubmittedSpotBatchOrderResponseV2[]; }>>; cancelSpotOrderV3(params: CancelOrdersV3Request): Promise<APIResponse<{ result: boolean; }>>; submitSpotBatchOrdersV4(params: SubmitSpotBatchOrdersV4Request): Promise<APIResponse<{ orderIds: string[]; }>>; /** * Cancel batch orders (v4) */ cancelSpotBatchOrdersV4(params: CancelSpotBatchOrdersV4Request): Promise<APIResponse<CancelSpotBatchOrdersV4Response>>; cancelAllSpotOrders(params?: { symbol?: string; side?: OrderSide; }): Promise<APIResponse<any>>; /** * @deprecated , use V3 or V4 instead */ cancelSpotOrdersV1(params?: { symbol?: string; side?: OrderSide; }): Promise<APIResponse<{}>>; /** * Query a spot order by order ID */ getSpotOrderByIdV4(params: SpotOrderByIdV4Request): Promise<APIResponse<SpotOrderV4>>; /** * Query a spot order by client order ID */ getSpotOrderByClientOrderIdV4(params: SpotOrderByClientOrderIdV4Request): Promise<APIResponse<SpotOrderV4>>; getSpotOpenOrdersV4(params?: SpotOpenOrdersV4Request): Promise<APIResponse<SpotOrderV4[]>>; getSpotHistoricOrdersV4(params?: SpotOrderTradeHistoryV4Request): Promise<APIResponse<SpotOrderV4[]>>; /** * Account Trade List(v4) */ getSpotAccountTradesV4(params?: SpotOrderTradeHistoryV4Request): Promise<APIResponse<SpotAccountTradeV4[]>>; /** * Get all transaction records for a single order */ getSpotAccountOrderTradesV4(params: { orderId: string; recvWindow?: number; }): Promise<APIResponse<SpotAccountTradeV4[]>>; /** * * Margin Loan Endpoints (History versions) * **/ marginBorrowV1(params: MarginBorrowRepayV1Request): Promise<APIResponse<{ borrow_id: string; }>>; marginRepayV1(params: MarginBorrowRepayV1Request): Promise<APIResponse<{ repay_id: string; }>>; getMarginBorrowRecordV1(params: MarginBorrowRecordsV1Request): Promise<APIResponse<{ records: MarginBorrowRecordV1[]; }>>; getMarginRepayRecordV1(params: MarginRepayRecordsV1Request): Promise<APIResponse<{ records: MarginRepayRecordV1[]; }>>; /** * Get Trading Pair Borrowing Rate and Amount */ getMarginBorrowingRatesV1(params?: { symbol?: string; }): Promise<APIResponse<{ symbols: MarginBorrowingRateV1[]; }>>; /** * * Subaccount Endpoints * **/ /** * Sub-Account to Main-Account (For Main Account) */ submitMainTransferSubToMainV1(params: SubmitSubTransferV1Request): Promise<APIResponse<{}>>; /** * Sub-Account to Main-Account (For Sub-Account) */ submitSubTransferSubToMainV1(params: SubmitSubTransferSubToMainV1Request): Promise<APIResponse<{}>>; submitMainTransferMainToSubV1(params: SubmitSubTransferV1Request): Promise<APIResponse<{}>>; submitMainTransferSubToSubV1(params: SubmitMainTransferSubToSubV1Request): Promise<APIResponse<{}>>; submitSubTransferSubToSubV1(params: SubmitSubTransferV1Request): Promise<APIResponse<{}>>; getSubTransfersV1(params: SubTransfersV1Request): Promise<APIResponse<{ total: number; historyList: SubTransferRow[]; }>>; getAccountSubTransfersV1(params: AccountSubTransfersV1Request): Promise<APIResponse<{ total: number; historyList: SubTransferRow[]; }>>; getSubSpotWalletBalancesV1(params: SubSpotWalletBalancesV1Request): Promise<APIResponse<{ wallet: AccountCurrencyBalanceV1[]; }>>; getSubAccountsV1(): Promise<APIResponse<{ subAccountList: SubAccountV1[]; }>>; /** * ***************** * USD-M Futures * ***************** * */ /** * * Futures Market Data * */ /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesContractDetails(params?: { symbol?: string; }): Promise<APIResponse<{ symbols: FuturesContractDetails[]; }>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesContractDepth(params: { symbol: string; }): Promise<APIResponse<FuturesContractDepth>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesOpenInterest(params: { symbol: string; }): Promise<APIResponse<FuturesOpenInterest>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesFundingRate(params: { symbol: string; }): Promise<APIResponse<FuturesFundingRate>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesKlines(params: FuturesKlinesRequest): Promise<APIResponse<FuturesKline[]>>; /** * * Futures Account Data * */ /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAccountAssets(): Promise<APIResponse<FuturesAccountAsset[]>>; /** * * Futures Trading * */ /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAccountOrder(params: FuturesAccountOrderRequest): Promise<APIResponse<FuturesAccountOrder>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAccountOrderHistory(params: FuturesAccountHistoricOrderRequest): Promise<APIResponse<FuturesAccountHistoricOrder>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAccountOpenOrders(params?: FuturesAccountOpenOrdersRequest): Promise<APIResponse<FuturesAccountOpenOrder[]>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAccountPlanOrders(params?: FuturesAccountPlanOrdersRequest): Promise<APIResponse<FuturesAccountPlanOrders[]>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAccountPositions(params?: { symbol?: string; }): Promise<APIResponse<FuturesAccountPosition[]>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getPositionRiskDetails(params?: { symbol?: string; }): Promise<APIResponse<PositionRisk[]>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAccountTrades(params: FuturesAccountTradesRequest): Promise<APIResponse<FuturesAccountTrade[]>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesTransfers(params: FuturesAccountTransfersRequest): Promise<APIResponse<{ records: FuturesAccountTransfer[]; }>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ submitFuturesOrder(params: SubmitFuturesOrderRequest): Promise<APIResponse<FuturesOrderSubmitResult>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ cancelFuturesOrder(params: FuturesAccountOrderRequest): Promise<APIResponse<any>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ cancelAllFuturesOrders(params: { symbol: string; }): Promise<APIResponse<any>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ submitFuturesPlanOrder(params: SubmitFuturesPlanOrderRequest): Promise<APIResponse<{ order_id: number; }>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ cancelFuturesPlanOrder(params: FuturesAccountOrderRequest): Promise<APIResponse<any>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ submitFuturesTransfer(params: SubmitFuturesTransferRequest): Promise<APIResponse<FuturesTransferSubmitResult>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ setFuturesLeverage(params: SetFuturesLeverageRequest): Promise<APIResponse<FuturesAccountSetLeverageResult>>; /** * * Futures Sub-Account Endpoints * */ /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ submitFuturesSubToMainTransferFromMain(params: TransferFuturesAssetsRequest): Promise<APIResponse<any>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ submitFuturesMainToSubTransferFromMain(params: TransferFuturesAssetsRequest): Promise<APIResponse<any>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ submitFuturesSubToMainSubFromSub(params: SubmitFuturesSubToMainSubFromSubRequest): Promise<APIResponse<any>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesSubWallet(params?: FuturesSubWalletRequest): Promise<APIResponse<{ wallet: AccountCurrencyBalanceV1[]; }>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesSubTransfers(params: FuturesSubTransfersRequest): Promise<APIResponse<FuturesAccountSubTransfer[]>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesSubTransferHistory(params: { limit: number; }): Promise<APIResponse<FuturesAccountSubTransfer[]>>; /** * * Futures Affiliate Endpoints * */ /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAffiliateRebates(params: FuturesAffiliateRebatesRequest): Promise<APIResponse<any>>; /** * @deprecated Use the FuturesClientV2 instead, it uses the new V2 domain & endpoint */ getFuturesAffiliateTrades(params: FuturesAffiliateTradesRequest): Promise<APIResponse<any>>; /** * * API Broker Endpoints * **/ getBrokerRebate(params?: SpotBrokerRebateRequest): Promise<APIResponse<SpotBrokerRebateResult>>; }