Skip to contents

Fetches isolated margin account details from the KuCoin API asynchronously for specific trading pairs. This internal function is designed for use within an R6 class and is not intended for direct end-user consumption, segregating collateral by pair.

Usage

get_isolated_margin_account_impl(
  keys = get_api_keys(),
  base_url = get_base_url(),
  query = list(),
  .__coro_env_parent__ = <environment>
)

Arguments

keys

List containing API configuration parameters from get_api_keys(), including:

  • api_key: Character string; your KuCoin API key.

  • api_secret: Character string; your KuCoin API secret.

  • api_passphrase: Character string; your KuCoin API passphrase.

  • key_version: Character string; API key version (e.g., "2"). Defaults to get_api_keys().

base_url

Character string representing the base URL for the API. Defaults to get_base_url().

query

Named list of query parameters:

  • symbol (character, optional): Trading pair (e.g., "BTC-USDT").

  • quoteCurrency (character, optional): Quote currency (e.g., "USDT", "KCS", "BTC"; default "USDT").

  • queryType (character, optional): Type ("ISOLATED", "ISOLATED_V2", "ALL"; default "ISOLATED").

Value

Promise resolving to a named list containing:

  • summary: data.table with:

    • totalAssetOfQuoteCurrency (character): Total assets.

    • totalLiabilityOfQuoteCurrency (character): Total liabilities.

    • timestamp (integer): Timestamp in milliseconds.

    • datetime (POSIXct): Converted datetime.

  • assets: data.table with:

    • symbol (character): Trading pair.

    • status (character): Position status.

    • debtRatio (character): Debt ratio.

    • base_currency (character): Base currency code.

    • base_borrowEnabled (logical): Base borrowing enabled.

    • base_transferInEnabled (logical): Base transfer-in enabled.

    • base_liability (character): Base liability.

    • base_total (character): Base total funds.

    • base_available (character): Base available funds.

    • base_hold (character): Base funds on hold.

    • base_maxBorrowSize (character): Base max borrowable.

    • quote_currency (character): Quote currency code.

    • quote_borrowEnabled (logical): Quote borrowing enabled.

    • quote_transferInEnabled (logical): Quote transfer-in enabled.

    • quote_liability (character): Quote liability.

    • quote_total (character): Quote total funds.

    • quote_available (character): Quote available funds.

    • quote_hold (character): Quote funds on hold.

    • quote_maxBorrowSize (character): Quote max borrowable.

Details

Workflow Overview

  1. URL Construction: Combines the base URL (from get_base_url() or provided base_url) with /api/v3/isolated/accounts and a query string from build_query().

  2. Header Preparation: Constructs authentication headers using build_headers().

  3. API Request: Sends a GET request with a 3-second timeout via httr::GET().

  4. Response Processing: Processes the response with process_kucoin_response(), converting the "data" field into summary and flattened assets data.table objects, adding a datetime column.

API Endpoint

GET https://api.kucoin.com/api/v3/isolated/accounts

Usage

Utilised internally by KucoinAccountAndFunding to provide isolated margin account data.

Official Documentation

KuCoin Get Account Isolated Margin

Examples

if (FALSE) { # \dontrun{
keys <- get_api_keys()
base_url <- "https://api.kucoin.com"
query <- list(symbol = "BTC-USDT", quoteCurrency = "USDT")
main_async <- coro::async(function() {
  result <- await(get_isolated_margin_account_impl(keys = keys, base_url = base_url, query = query))
  print(result$summary)
  print(result$assets)
})
main_async()
while (!later::loop_empty()) later::run_now()
} # }