@binance/convert
Version:
Official Binance Convert Connector - A lightweight library that provides a convenient interface to Binance's Convert REST API.
1 lines • 70.9 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","names":["localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","localVarQueryParameter: Record<string, unknown>","localVarBodyParameter: Record<string, unknown>","_timeUnit: TimeUnit | undefined","CONVERT_REST_API_PROD_URL"],"sources":["../package.json","../src/rest-api/modules/market-data-api.ts","../src/rest-api/modules/trade-api.ts","../src/rest-api/rest-api.ts","../src/rest-api/index.ts","../src/convert.ts"],"sourcesContent":["{\n \"name\": \"@binance/convert\",\n \"description\": \"Official Binance Convert Connector - A lightweight library that provides a convenient interface to Binance's Convert REST API.\",\n \"version\": \"4.1.3\",\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"require\": \"./dist/index.js\",\n \"import\": \"./dist/index.mjs\"\n }\n },\n \"scripts\": {\n \"prepublishOnly\": \"npm run build\",\n \"build\": \"npm run clean && tsdown\",\n \"typecheck\": \"tsc --noEmit\",\n \"clean\": \"rm -rf dist\",\n \"test\": \"npx jest --maxWorkers=4 --bail\",\n \"test:watch\": \"npx jest --watch\",\n \"format\": \"npx prettier --ignore-path .prettierignore --write .\",\n \"lint\": \"npx eslint '**/*.ts' --fix\"\n },\n \"keywords\": [\n \"Binance\",\n \"API\",\n \"Convert\",\n \"Connector\",\n \"REST\",\n \"Trading\"\n ],\n \"author\": \"Binance\",\n \"license\": \"MIT\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/binance/binance-connector-js.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/binance/binance-connector-js/issues\"\n },\n \"homepage\": \"https://github.com/binance/binance-connector-js#readme\",\n \"files\": [\n \"dist\"\n ],\n \"devDependencies\": {\n \"@types/jest\": \"^29.5.4\",\n \"@types/node\": \"^20.17.24\",\n \"eslint\": \"8.57.0\",\n \"jest\": \"^29.6.4\",\n \"json-with-bigint\": \"^3.4.4\",\n \"prettier\": \"^3.3.3\",\n \"ts-jest\": \"^29.1.1\",\n \"ts-node\": \"^10.9.1\",\n \"tsdown\": \"^0.16.5\",\n \"typescript\": \"^5.7.2\",\n \"typescript-eslint\": \"^8.24.0\"\n },\n \"dependencies\": {\n \"@binance/common\": \"2.3.1\",\n \"axios\": \"^1.7.4\"\n }\n}\n","/**\n * Binance Convert REST API\n *\n * OpenAPI Specification for the Binance Convert REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n ConfigurationRestAPI,\n TimeUnit,\n RestApiResponse,\n sendRequest,\n type RequestArgs,\n} from '@binance/common';\nimport type {\n ListAllConvertPairsResponse,\n QueryOrderQuantityPrecisionPerAssetResponse,\n} from '../types';\n\n/**\n * MarketDataApi - axios parameter creator\n */\nconst MarketDataApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Query for all convertible token pairs and the tokens’ respective upper/lower limits\n *\n * User needs to supply either or both of the input parameter\n * If not defined for both fromAsset and toAsset, only partial token pairs will be returned\n *\n * Weight: 3000(IP)\n *\n * @summary List All Convert Pairs\n * @param {string} [fromAsset] User spends coin\n * @param {string} [toAsset] User receives coin\n *\n * @throws {RequiredError}\n */\n listAllConvertPairs: async (fromAsset?: string, toAsset?: string): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (fromAsset !== undefined && fromAsset !== null) {\n localVarQueryParameter['fromAsset'] = fromAsset;\n }\n if (toAsset !== undefined && toAsset !== null) {\n localVarQueryParameter['toAsset'] = toAsset;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/exchangeInfo',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query for supported asset’s precision information\n *\n * Weight: 100(IP)\n *\n * @summary Query order quantity precision per asset(USER_DATA)\n * @param {number | bigint} [recvWindow] The value cannot be greater than 60000\n *\n * @throws {RequiredError}\n */\n queryOrderQuantityPrecisionPerAsset: async (\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/assetInfo',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * MarketDataApi - interface\n * @interface MarketDataApi\n */\nexport interface MarketDataApiInterface {\n /**\n * Query for all convertible token pairs and the tokens’ respective upper/lower limits\n *\n * User needs to supply either or both of the input parameter\n * If not defined for both fromAsset and toAsset, only partial token pairs will be returned\n *\n * Weight: 3000(IP)\n *\n * @summary List All Convert Pairs\n * @param {ListAllConvertPairsRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n listAllConvertPairs(\n requestParameters?: ListAllConvertPairsRequest\n ): Promise<RestApiResponse<ListAllConvertPairsResponse>>;\n /**\n * Query for supported asset’s precision information\n *\n * Weight: 100(IP)\n *\n * @summary Query order quantity precision per asset(USER_DATA)\n * @param {QueryOrderQuantityPrecisionPerAssetRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApiInterface\n */\n queryOrderQuantityPrecisionPerAsset(\n requestParameters?: QueryOrderQuantityPrecisionPerAssetRequest\n ): Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>>;\n}\n\n/**\n * Request parameters for listAllConvertPairs operation in MarketDataApi.\n * @interface ListAllConvertPairsRequest\n */\nexport interface ListAllConvertPairsRequest {\n /**\n * User spends coin\n * @type {string}\n * @memberof MarketDataApiListAllConvertPairs\n */\n readonly fromAsset?: string;\n\n /**\n * User receives coin\n * @type {string}\n * @memberof MarketDataApiListAllConvertPairs\n */\n readonly toAsset?: string;\n}\n\n/**\n * Request parameters for queryOrderQuantityPrecisionPerAsset operation in MarketDataApi.\n * @interface QueryOrderQuantityPrecisionPerAssetRequest\n */\nexport interface QueryOrderQuantityPrecisionPerAssetRequest {\n /**\n * The value cannot be greater than 60000\n * @type {number | bigint}\n * @memberof MarketDataApiQueryOrderQuantityPrecisionPerAsset\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * MarketDataApi - object-oriented interface\n * @class MarketDataApi\n */\nexport class MarketDataApi implements MarketDataApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = MarketDataApiAxiosParamCreator(configuration);\n }\n\n /**\n * Query for all convertible token pairs and the tokens’ respective upper/lower limits\n *\n * User needs to supply either or both of the input parameter\n * If not defined for both fromAsset and toAsset, only partial token pairs will be returned\n *\n * Weight: 3000(IP)\n *\n * @summary List All Convert Pairs\n * @param {ListAllConvertPairsRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<ListAllConvertPairsResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/convert/market-data/ Binance API Documentation}\n */\n public async listAllConvertPairs(\n requestParameters: ListAllConvertPairsRequest = {}\n ): Promise<RestApiResponse<ListAllConvertPairsResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.listAllConvertPairs(\n requestParameters?.fromAsset,\n requestParameters?.toAsset\n );\n return sendRequest<ListAllConvertPairsResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: false }\n );\n }\n\n /**\n * Query for supported asset’s precision information\n *\n * Weight: 100(IP)\n *\n * @summary Query order quantity precision per asset(USER_DATA)\n * @param {QueryOrderQuantityPrecisionPerAssetRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof MarketDataApi\n * @see {@link https://developers.binance.com/docs/convert/market-data/Query-order-quantity-precision-per-asset Binance API Documentation}\n */\n public async queryOrderQuantityPrecisionPerAsset(\n requestParameters: QueryOrderQuantityPrecisionPerAssetRequest = {}\n ): Promise<RestApiResponse<QueryOrderQuantityPrecisionPerAssetResponse>> {\n const localVarAxiosArgs =\n await this.localVarAxiosParamCreator.queryOrderQuantityPrecisionPerAsset(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryOrderQuantityPrecisionPerAssetResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n}\n","/**\n * Binance Convert REST API\n *\n * OpenAPI Specification for the Binance Convert REST API\n *\n * The version of the OpenAPI document: 1.0.0\n *\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport {\n ConfigurationRestAPI,\n TimeUnit,\n RestApiResponse,\n assertParamExists,\n sendRequest,\n type RequestArgs,\n} from '@binance/common';\nimport type {\n AcceptQuoteResponse,\n CancelLimitOrderResponse,\n GetConvertTradeHistoryResponse,\n OrderStatusResponse,\n PlaceLimitOrderResponse,\n QueryLimitOpenOrdersResponse,\n SendQuoteRequestResponse,\n} from '../types';\n\n/**\n * TradeApi - axios parameter creator\n */\nconst TradeApiAxiosParamCreator = function (configuration: ConfigurationRestAPI) {\n return {\n /**\n * Accept the offered quote by quote ID.\n *\n * Weight: 500(UID)\n *\n * @summary Accept Quote (TRADE)\n * @param {string} quoteId\n * @param {number | bigint} [recvWindow] The value cannot be greater than 60000\n *\n * @throws {RequiredError}\n */\n acceptQuote: async (\n quoteId: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'quoteId' is not null or undefined\n assertParamExists('acceptQuote', 'quoteId', quoteId);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (quoteId !== undefined && quoteId !== null) {\n localVarQueryParameter['quoteId'] = quoteId;\n }\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/acceptQuote',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Enable users to cancel a limit order\n *\n * Weight: 200(UID)\n *\n * @summary Cancel limit order (USER_DATA)\n * @param {number | bigint} orderId The orderId from `placeOrder` api\n * @param {number | bigint} [recvWindow] The value cannot be greater than 60000\n *\n * @throws {RequiredError}\n */\n cancelLimitOrder: async (\n orderId: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'orderId' is not null or undefined\n assertParamExists('cancelLimitOrder', 'orderId', orderId);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/limit/cancelOrder',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Get Convert Trade History\n *\n * The max interval between startTime and endTime is 30 days.\n *\n * Weight: 3000\n *\n * @summary Get Convert Trade History(USER_DATA)\n * @param {number | bigint} startTime\n * @param {number | bigint} endTime\n * @param {number | bigint} [limit] Default 100, Max 1000\n * @param {number | bigint} [recvWindow] The value cannot be greater than 60000\n *\n * @throws {RequiredError}\n */\n getConvertTradeHistory: async (\n startTime: number | bigint,\n endTime: number | bigint,\n limit?: number | bigint,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'startTime' is not null or undefined\n assertParamExists('getConvertTradeHistory', 'startTime', startTime);\n // verify required parameter 'endTime' is not null or undefined\n assertParamExists('getConvertTradeHistory', 'endTime', endTime);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (startTime !== undefined && startTime !== null) {\n localVarQueryParameter['startTime'] = startTime;\n }\n if (endTime !== undefined && endTime !== null) {\n localVarQueryParameter['endTime'] = endTime;\n }\n if (limit !== undefined && limit !== null) {\n localVarQueryParameter['limit'] = limit;\n }\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/tradeFlow',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Query order status by order ID.\n *\n * Weight: 100(UID)\n *\n * @summary Order status(USER_DATA)\n * @param {string} [orderId] Either orderId or quoteId is required\n * @param {string} [quoteId] Either orderId or quoteId is required\n *\n * @throws {RequiredError}\n */\n orderStatus: async (orderId?: string, quoteId?: string): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (orderId !== undefined && orderId !== null) {\n localVarQueryParameter['orderId'] = orderId;\n }\n if (quoteId !== undefined && quoteId !== null) {\n localVarQueryParameter['quoteId'] = quoteId;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/orderStatus',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Enable users to place a limit order\n *\n * `baseAsset` or `quoteAsset` can be determined via `exchangeInfo` endpoint.\n * Limit price is defined from `baseAsset` to `quoteAsset`.\n * Either `baseAmount` or `quoteAmount` is used.\n *\n * Weight: 500(UID)\n *\n * @summary Place limit order (USER_DATA)\n * @param {string} baseAsset base asset (use the response `fromIsBase` from `GET /sapi/v1/convert/exchangeInfo` api to check which one is baseAsset )\n * @param {string} quoteAsset quote asset\n * @param {number} limitPrice Symbol limit price (from baseAsset to quoteAsset)\n * @param {string} side `BUY` or `SELL`\n * @param {string} expiredType 1_D, 3_D, 7_D, 30_D (D means day)\n * @param {number} [baseAmount] Base asset amount. (One of `baseAmount` or `quoteAmount` is required)\n * @param {number} [quoteAmount] Quote asset amount. (One of `baseAmount` or `quoteAmount` is required)\n * @param {string} [walletType] It is to choose which wallet of assets. The wallet selection is `SPOT`, `FUNDING` and `EARN`. Combination of wallet is supported i.e. `SPOT_FUNDING`, `FUNDING_EARN`, `SPOT_FUNDING_EARN` or `SPOT_EARN` Default is `SPOT`.\n * @param {number | bigint} [recvWindow] The value cannot be greater than 60000\n *\n * @throws {RequiredError}\n */\n placeLimitOrder: async (\n baseAsset: string,\n quoteAsset: string,\n limitPrice: number,\n side: string,\n expiredType: string,\n baseAmount?: number,\n quoteAmount?: number,\n walletType?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'baseAsset' is not null or undefined\n assertParamExists('placeLimitOrder', 'baseAsset', baseAsset);\n // verify required parameter 'quoteAsset' is not null or undefined\n assertParamExists('placeLimitOrder', 'quoteAsset', quoteAsset);\n // verify required parameter 'limitPrice' is not null or undefined\n assertParamExists('placeLimitOrder', 'limitPrice', limitPrice);\n // verify required parameter 'side' is not null or undefined\n assertParamExists('placeLimitOrder', 'side', side);\n // verify required parameter 'expiredType' is not null or undefined\n assertParamExists('placeLimitOrder', 'expiredType', expiredType);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (baseAsset !== undefined && baseAsset !== null) {\n localVarQueryParameter['baseAsset'] = baseAsset;\n }\n if (quoteAsset !== undefined && quoteAsset !== null) {\n localVarQueryParameter['quoteAsset'] = quoteAsset;\n }\n if (limitPrice !== undefined && limitPrice !== null) {\n localVarQueryParameter['limitPrice'] = limitPrice;\n }\n if (baseAmount !== undefined && baseAmount !== null) {\n localVarQueryParameter['baseAmount'] = baseAmount;\n }\n if (quoteAmount !== undefined && quoteAmount !== null) {\n localVarQueryParameter['quoteAmount'] = quoteAmount;\n }\n if (side !== undefined && side !== null) {\n localVarQueryParameter['side'] = side;\n }\n if (walletType !== undefined && walletType !== null) {\n localVarQueryParameter['walletType'] = walletType;\n }\n if (expiredType !== undefined && expiredType !== null) {\n localVarQueryParameter['expiredType'] = expiredType;\n }\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/limit/placeOrder',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Request a quote for the requested token pairs\n *\n * Weight: 3000(UID)\n *\n * @summary Query limit open orders (USER_DATA)\n * @param {number | bigint} [recvWindow] The value cannot be greater than 60000\n *\n * @throws {RequiredError}\n */\n queryLimitOpenOrders: async (recvWindow?: number | bigint): Promise<RequestArgs> => {\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/limit/queryOpenOrders',\n method: 'GET',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n /**\n * Request a quote for the requested token pairs\n *\n * Either fromAmount or toAmount should be sent\n * `quoteId` will be returned only if you have enough funds to convert\n *\n * Weight: 200(UID)\n *\n * @summary Send Quote Request(USER_DATA)\n * @param {string} fromAsset\n * @param {string} toAsset\n * @param {number} [fromAmount] When specified, it is the amount you will be debited after the conversion\n * @param {number} [toAmount] When specified, it is the amount you will be credited after the conversion\n * @param {string} [walletType] It is to choose which wallet of assets. The wallet selection is `SPOT`, `FUNDING` and `EARN`. Combination of wallet is supported i.e. `SPOT_FUNDING`, `FUNDING_EARN`, `SPOT_FUNDING_EARN` or `SPOT_EARN` Default is `SPOT`.\n * @param {string} [validTime] 10s, 30s, 1m, default 10s\n * @param {number | bigint} [recvWindow] The value cannot be greater than 60000\n *\n * @throws {RequiredError}\n */\n sendQuoteRequest: async (\n fromAsset: string,\n toAsset: string,\n fromAmount?: number,\n toAmount?: number,\n walletType?: string,\n validTime?: string,\n recvWindow?: number | bigint\n ): Promise<RequestArgs> => {\n // verify required parameter 'fromAsset' is not null or undefined\n assertParamExists('sendQuoteRequest', 'fromAsset', fromAsset);\n // verify required parameter 'toAsset' is not null or undefined\n assertParamExists('sendQuoteRequest', 'toAsset', toAsset);\n\n const localVarQueryParameter: Record<string, unknown> = {};\n const localVarBodyParameter: Record<string, unknown> = {};\n\n if (fromAsset !== undefined && fromAsset !== null) {\n localVarQueryParameter['fromAsset'] = fromAsset;\n }\n if (toAsset !== undefined && toAsset !== null) {\n localVarQueryParameter['toAsset'] = toAsset;\n }\n if (fromAmount !== undefined && fromAmount !== null) {\n localVarQueryParameter['fromAmount'] = fromAmount;\n }\n if (toAmount !== undefined && toAmount !== null) {\n localVarQueryParameter['toAmount'] = toAmount;\n }\n if (walletType !== undefined && walletType !== null) {\n localVarQueryParameter['walletType'] = walletType;\n }\n if (validTime !== undefined && validTime !== null) {\n localVarQueryParameter['validTime'] = validTime;\n }\n if (recvWindow !== undefined && recvWindow !== null) {\n localVarQueryParameter['recvWindow'] = recvWindow;\n }\n\n let _timeUnit: TimeUnit | undefined;\n if ('timeUnit' in configuration) _timeUnit = configuration.timeUnit as TimeUnit;\n\n return {\n endpoint: '/sapi/v1/convert/getQuote',\n method: 'POST',\n queryParams: localVarQueryParameter,\n bodyParams: localVarBodyParameter,\n timeUnit: _timeUnit,\n };\n },\n };\n};\n\n/**\n * TradeApi - interface\n * @interface TradeApi\n */\nexport interface TradeApiInterface {\n /**\n * Accept the offered quote by quote ID.\n *\n * Weight: 500(UID)\n *\n * @summary Accept Quote (TRADE)\n * @param {AcceptQuoteRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n acceptQuote(\n requestParameters: AcceptQuoteRequest\n ): Promise<RestApiResponse<AcceptQuoteResponse>>;\n /**\n * Enable users to cancel a limit order\n *\n * Weight: 200(UID)\n *\n * @summary Cancel limit order (USER_DATA)\n * @param {CancelLimitOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n cancelLimitOrder(\n requestParameters: CancelLimitOrderRequest\n ): Promise<RestApiResponse<CancelLimitOrderResponse>>;\n /**\n * Get Convert Trade History\n *\n * The max interval between startTime and endTime is 30 days.\n *\n * Weight: 3000\n *\n * @summary Get Convert Trade History(USER_DATA)\n * @param {GetConvertTradeHistoryRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n getConvertTradeHistory(\n requestParameters: GetConvertTradeHistoryRequest\n ): Promise<RestApiResponse<GetConvertTradeHistoryResponse>>;\n /**\n * Query order status by order ID.\n *\n * Weight: 100(UID)\n *\n * @summary Order status(USER_DATA)\n * @param {OrderStatusRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n orderStatus(\n requestParameters?: OrderStatusRequest\n ): Promise<RestApiResponse<OrderStatusResponse>>;\n /**\n * Enable users to place a limit order\n *\n * `baseAsset` or `quoteAsset` can be determined via `exchangeInfo` endpoint.\n * Limit price is defined from `baseAsset` to `quoteAsset`.\n * Either `baseAmount` or `quoteAmount` is used.\n *\n * Weight: 500(UID)\n *\n * @summary Place limit order (USER_DATA)\n * @param {PlaceLimitOrderRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n placeLimitOrder(\n requestParameters: PlaceLimitOrderRequest\n ): Promise<RestApiResponse<PlaceLimitOrderResponse>>;\n /**\n * Request a quote for the requested token pairs\n *\n * Weight: 3000(UID)\n *\n * @summary Query limit open orders (USER_DATA)\n * @param {QueryLimitOpenOrdersRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n queryLimitOpenOrders(\n requestParameters?: QueryLimitOpenOrdersRequest\n ): Promise<RestApiResponse<QueryLimitOpenOrdersResponse>>;\n /**\n * Request a quote for the requested token pairs\n *\n * Either fromAmount or toAmount should be sent\n * `quoteId` will be returned only if you have enough funds to convert\n *\n * Weight: 200(UID)\n *\n * @summary Send Quote Request(USER_DATA)\n * @param {SendQuoteRequestRequest} requestParameters Request parameters.\n *\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApiInterface\n */\n sendQuoteRequest(\n requestParameters: SendQuoteRequestRequest\n ): Promise<RestApiResponse<SendQuoteRequestResponse>>;\n}\n\n/**\n * Request parameters for acceptQuote operation in TradeApi.\n * @interface AcceptQuoteRequest\n */\nexport interface AcceptQuoteRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiAcceptQuote\n */\n readonly quoteId: string;\n\n /**\n * The value cannot be greater than 60000\n * @type {number | bigint}\n * @memberof TradeApiAcceptQuote\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for cancelLimitOrder operation in TradeApi.\n * @interface CancelLimitOrderRequest\n */\nexport interface CancelLimitOrderRequest {\n /**\n * The orderId from `placeOrder` api\n * @type {number | bigint}\n * @memberof TradeApiCancelLimitOrder\n */\n readonly orderId: number | bigint;\n\n /**\n * The value cannot be greater than 60000\n * @type {number | bigint}\n * @memberof TradeApiCancelLimitOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for getConvertTradeHistory operation in TradeApi.\n * @interface GetConvertTradeHistoryRequest\n */\nexport interface GetConvertTradeHistoryRequest {\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetConvertTradeHistory\n */\n readonly startTime: number | bigint;\n\n /**\n *\n * @type {number | bigint}\n * @memberof TradeApiGetConvertTradeHistory\n */\n readonly endTime: number | bigint;\n\n /**\n * Default 100, Max 1000\n * @type {number | bigint}\n * @memberof TradeApiGetConvertTradeHistory\n */\n readonly limit?: number | bigint;\n\n /**\n * The value cannot be greater than 60000\n * @type {number | bigint}\n * @memberof TradeApiGetConvertTradeHistory\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for orderStatus operation in TradeApi.\n * @interface OrderStatusRequest\n */\nexport interface OrderStatusRequest {\n /**\n * Either orderId or quoteId is required\n * @type {string}\n * @memberof TradeApiOrderStatus\n */\n readonly orderId?: string;\n\n /**\n * Either orderId or quoteId is required\n * @type {string}\n * @memberof TradeApiOrderStatus\n */\n readonly quoteId?: string;\n}\n\n/**\n * Request parameters for placeLimitOrder operation in TradeApi.\n * @interface PlaceLimitOrderRequest\n */\nexport interface PlaceLimitOrderRequest {\n /**\n * base asset (use the response `fromIsBase` from `GET /sapi/v1/convert/exchangeInfo` api to check which one is baseAsset )\n * @type {string}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly baseAsset: string;\n\n /**\n * quote asset\n * @type {string}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly quoteAsset: string;\n\n /**\n * Symbol limit price (from baseAsset to quoteAsset)\n * @type {number}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly limitPrice: number;\n\n /**\n * `BUY` or `SELL`\n * @type {string}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly side: string;\n\n /**\n * 1_D, 3_D, 7_D, 30_D (D means day)\n * @type {string}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly expiredType: string;\n\n /**\n * Base asset amount. (One of `baseAmount` or `quoteAmount` is required)\n * @type {number}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly baseAmount?: number;\n\n /**\n * Quote asset amount. (One of `baseAmount` or `quoteAmount` is required)\n * @type {number}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly quoteAmount?: number;\n\n /**\n * It is to choose which wallet of assets. The wallet selection is `SPOT`, `FUNDING` and `EARN`. Combination of wallet is supported i.e. `SPOT_FUNDING`, `FUNDING_EARN`, `SPOT_FUNDING_EARN` or `SPOT_EARN` Default is `SPOT`.\n * @type {string}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly walletType?: string;\n\n /**\n * The value cannot be greater than 60000\n * @type {number | bigint}\n * @memberof TradeApiPlaceLimitOrder\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for queryLimitOpenOrders operation in TradeApi.\n * @interface QueryLimitOpenOrdersRequest\n */\nexport interface QueryLimitOpenOrdersRequest {\n /**\n * The value cannot be greater than 60000\n * @type {number | bigint}\n * @memberof TradeApiQueryLimitOpenOrders\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * Request parameters for sendQuoteRequest operation in TradeApi.\n * @interface SendQuoteRequestRequest\n */\nexport interface SendQuoteRequestRequest {\n /**\n *\n * @type {string}\n * @memberof TradeApiSendQuoteRequest\n */\n readonly fromAsset: string;\n\n /**\n *\n * @type {string}\n * @memberof TradeApiSendQuoteRequest\n */\n readonly toAsset: string;\n\n /**\n * When specified, it is the amount you will be debited after the conversion\n * @type {number}\n * @memberof TradeApiSendQuoteRequest\n */\n readonly fromAmount?: number;\n\n /**\n * When specified, it is the amount you will be credited after the conversion\n * @type {number}\n * @memberof TradeApiSendQuoteRequest\n */\n readonly toAmount?: number;\n\n /**\n * It is to choose which wallet of assets. The wallet selection is `SPOT`, `FUNDING` and `EARN`. Combination of wallet is supported i.e. `SPOT_FUNDING`, `FUNDING_EARN`, `SPOT_FUNDING_EARN` or `SPOT_EARN` Default is `SPOT`.\n * @type {string}\n * @memberof TradeApiSendQuoteRequest\n */\n readonly walletType?: string;\n\n /**\n * 10s, 30s, 1m, default 10s\n * @type {string}\n * @memberof TradeApiSendQuoteRequest\n */\n readonly validTime?: string;\n\n /**\n * The value cannot be greater than 60000\n * @type {number | bigint}\n * @memberof TradeApiSendQuoteRequest\n */\n readonly recvWindow?: number | bigint;\n}\n\n/**\n * TradeApi - object-oriented interface\n * @class TradeApi\n */\nexport class TradeApi implements TradeApiInterface {\n private readonly configuration: ConfigurationRestAPI;\n private localVarAxiosParamCreator;\n\n constructor(configuration: ConfigurationRestAPI) {\n this.configuration = configuration;\n this.localVarAxiosParamCreator = TradeApiAxiosParamCreator(configuration);\n }\n\n /**\n * Accept the offered quote by quote ID.\n *\n * Weight: 500(UID)\n *\n * @summary Accept Quote (TRADE)\n * @param {AcceptQuoteRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<AcceptQuoteResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/convert/trade/Accept-Quote Binance API Documentation}\n */\n public async acceptQuote(\n requestParameters: AcceptQuoteRequest\n ): Promise<RestApiResponse<AcceptQuoteResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.acceptQuote(\n requestParameters?.quoteId,\n requestParameters?.recvWindow\n );\n return sendRequest<AcceptQuoteResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Enable users to cancel a limit order\n *\n * Weight: 200(UID)\n *\n * @summary Cancel limit order (USER_DATA)\n * @param {CancelLimitOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<CancelLimitOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/convert/trade/Cancel-Order Binance API Documentation}\n */\n public async cancelLimitOrder(\n requestParameters: CancelLimitOrderRequest\n ): Promise<RestApiResponse<CancelLimitOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.cancelLimitOrder(\n requestParameters?.orderId,\n requestParameters?.recvWindow\n );\n return sendRequest<CancelLimitOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Get Convert Trade History\n *\n * The max interval between startTime and endTime is 30 days.\n *\n * Weight: 3000\n *\n * @summary Get Convert Trade History(USER_DATA)\n * @param {GetConvertTradeHistoryRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<GetConvertTradeHistoryResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/convert/trade/Get-Convert-Trade-History Binance API Documentation}\n */\n public async getConvertTradeHistory(\n requestParameters: GetConvertTradeHistoryRequest\n ): Promise<RestApiResponse<GetConvertTradeHistoryResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.getConvertTradeHistory(\n requestParameters?.startTime,\n requestParameters?.endTime,\n requestParameters?.limit,\n requestParameters?.recvWindow\n );\n return sendRequest<GetConvertTradeHistoryResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Query order status by order ID.\n *\n * Weight: 100(UID)\n *\n * @summary Order status(USER_DATA)\n * @param {OrderStatusRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<OrderStatusResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/convert/trade/Order-Status Binance API Documentation}\n */\n public async orderStatus(\n requestParameters: OrderStatusRequest = {}\n ): Promise<RestApiResponse<OrderStatusResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.orderStatus(\n requestParameters?.orderId,\n requestParameters?.quoteId\n );\n return sendRequest<OrderStatusResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Enable users to place a limit order\n *\n * `baseAsset` or `quoteAsset` can be determined via `exchangeInfo` endpoint.\n * Limit price is defined from `baseAsset` to `quoteAsset`.\n * Either `baseAmount` or `quoteAmount` is used.\n *\n * Weight: 500(UID)\n *\n * @summary Place limit order (USER_DATA)\n * @param {PlaceLimitOrderRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<PlaceLimitOrderResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/convert/trade/Place-Order Binance API Documentation}\n */\n public async placeLimitOrder(\n requestParameters: PlaceLimitOrderRequest\n ): Promise<RestApiResponse<PlaceLimitOrderResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.placeLimitOrder(\n requestParameters?.baseAsset,\n requestParameters?.quoteAsset,\n requestParameters?.limitPrice,\n requestParameters?.side,\n requestParameters?.expiredType,\n requestParameters?.baseAmount,\n requestParameters?.quoteAmount,\n requestParameters?.walletType,\n requestParameters?.recvWindow\n );\n return sendRequest<PlaceLimitOrderResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Request a quote for the requested token pairs\n *\n * Weight: 3000(UID)\n *\n * @summary Query limit open orders (USER_DATA)\n * @param {QueryLimitOpenOrdersRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<QueryLimitOpenOrdersResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/convert/trade/Query-Order Binance API Documentation}\n */\n public async queryLimitOpenOrders(\n requestParameters: QueryLimitOpenOrdersRequest = {}\n ): Promise<RestApiResponse<QueryLimitOpenOrdersResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.queryLimitOpenOrders(\n requestParameters?.recvWindow\n );\n return sendRequest<QueryLimitOpenOrdersResponse>(\n this.configuration,\n localVarAxiosArgs.endpoint,\n localVarAxiosArgs.method,\n localVarAxiosArgs.queryParams,\n localVarAxiosArgs.bodyParams,\n localVarAxiosArgs?.timeUnit,\n { isSigned: true }\n );\n }\n\n /**\n * Request a quote for the requested token pairs\n *\n * Either fromAmount or toAmount should be sent\n * `quoteId` will be returned only if you have enough funds to convert\n *\n * Weight: 200(UID)\n *\n * @summary Send Quote Request(USER_DATA)\n * @param {SendQuoteRequestRequest} requestParameters Request parameters.\n * @returns {Promise<RestApiResponse<SendQuoteRequestResponse>>}\n * @throws {RequiredError | ConnectorClientError | UnauthorizedError | ForbiddenError | TooManyRequestsError | RateLimitBanError | ServerError | NotFoundError | NetworkError | BadRequestError}\n * @memberof TradeApi\n * @see {@link https://developers.binance.com/docs/convert/trade/Send-quote-request Binance API Documentation}\n */\n public async sendQuoteRequest(\n requestParameters: SendQuoteRequestRequest\n ): Promise<RestApiResponse<SendQuoteRequestResponse>> {\n const localVarAxiosArgs = await this.localVarAxiosParamCreator.sendQuoteRequest(\n requestParameters?.fromAsset,\n requestParameters?.toAsset,\n requestParameters?.fromAmount,\n requestParameters?.toAmount,\n requestParameters?.walletType,\n requestParameters?.validTime,\n requestParameters?.recvWindow\n );\n return s