Retrieve Spot Ledger Records (Implementation)
Source:R/impl_account_account_and_funding.R
get_spot_ledger_impl.Rd
Fetches detailed ledger records for spot and margin accounts from the KuCoin API asynchronously with pagination. This internal function is designed for use within an R6 class and is not intended for direct end-user consumption, aggregating transaction histories into a data.table
.
Usage
get_spot_ledger_impl(
keys = get_api_keys(),
base_url = get_base_url(),
query = list(),
page_size = 50,
max_pages = Inf,
.__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 toget_api_keys()
.
- base_url
Character string representing the base URL for the API. Defaults to
get_base_url()
.- query
Named list of query parameters (excluding pagination):
currency
(character, optional): Filter by currency (up to 10).direction
(character, optional):"in"
or"out"
.bizType
(character, optional): Business type (e.g.,"DEPOSIT"
,"TRANSFER"
).startAt
(integer, optional): Start time in milliseconds.endAt
(integer, optional): End time in milliseconds.
- page_size
Integer; number of results per page (10–500, default 50).
- max_pages
Numeric; maximum number of pages to fetch (default
Inf
for all pages).
Value
Promise resolving to a data.table
containing:
id
(character): Ledger record ID.currency
(character): Currency.amount
(character): Transaction amount.fee
(character): Transaction fee.balance
(character): Post-transaction balance.accountType
(character): Account type.bizType
(character): Business type.direction
(character): Transaction direction.createdAt
(integer): Timestamp in milliseconds.createdAtDatetime
(POSIXct): Converted datetime.context
(character): Transaction context.currentPage
(integer): Current page number.pageSize
(integer): Page size.totalNum
(integer): Total records.totalPage
(integer): Total pages.
Details
Workflow Overview
URL Construction: Combines the base URL (from
get_base_url()
or providedbase_url
) with/api/v1/accounts/ledgers
, merging query parameters with pagination settings.Header Preparation: Constructs authentication headers using
build_headers()
within an inner async function.API Request: Utilises
auto_paginate
to fetch all pages asynchronously via an innerfetch_page
function.Response Processing: Aggregates
"items"
from each page into adata.table
withdata.table::rbindlist()
, adding acreatedAtDatetime
column viatime_convert_from_kucoin()
.
Usage
Utilised internally by KucoinAccountAndFunding
to retrieve ledger records for spot and margin accounts.
Examples
if (FALSE) { # \dontrun{
keys <- get_api_keys()
base_url <- "https://api.kucoin.com"
query <- list(
currency = "BTC",
direction = "in",
bizType = "TRANSFER",
startAt = 1728663338000L,
endAt = 1728692138000L
)
main_async <- coro::async(function() {
dt <- await(get_spot_ledger_impl(
keys = keys,
base_url = base_url,
query = query,
page_size = 50L,
max_pages = 10
))
print(dt)
})
main_async()
while (!later::loop_empty()) later::run_now()
} # }