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
TypeScript
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>>;
}