#' @export
from_unix <- function(x) as.POSIXct(as.numeric(x), origin = "1970-01-01", tz = "UTC")
#' @export
collapse_query <- function(data){
data %>%
purrr::imap_chr(~paste0(.y, "=", .x)) %>%
paste(collapse = "&") %>%
paste0("?", .)
}
get_proxy <- function(){
if(Sys.getenv("BINANCE_PROXY") == "") return(NULL)
stringr::str_split(Sys.getenv("BINANCE_PROXY"), ":")[[1]]
}
get_proxy_user <- function(){
if(Sys.getenv("BINANCE_USERPW") == "") return(NULL)
stringr::str_split(Sys.getenv("BINANCE_USERPW"), ":")[[1]]
}
add_proxy <- function(){
httr::use_proxy(url = get_proxy()[1],
port = as.numeric(get_proxy()[2]),
username = get_proxy_user()[1],
password = get_proxy_user()[2])
}
#' @export
generate_signature <- function(data){
query_string = data %>%
order_params %>%
collapse_query
digest::hmac(enc2utf8(api_secret()), enc2utf8(stringr::str_remove(query_string, "^\\?")), "sha256")
}
#' @export
order_params <- function(data){
signature <- data[["signature"]]
data$signature <- NULL
params <- data[order(names(data))]
if(!is.null(signature)){
params$signature <- signature
}
return(params)
}
#' @export
symbols <- function(){
readr::read_rds(system.file("symbols.rds", package = "binancer"))
}
#' @export
update_symbols <- function(){
readr::write_rds(coin_prices()[,"symbol"], system.file("symbols.rds", package = "binancer"))
}
#' @export
check_symbol <- function(symbol, limit = NULL, required = T){
if(required & is.null(symbol)){
stop("Symbol must be specified")
}
if(symbol == "COSUSDT"){
symbol <- "^COSUSDT"
}
if(!symbol %in% symbols()){
update_symbols()
}
symbols() %>%
dplyr::filter(stringr::str_detect(symbol, !!symbol)) %>%
dplyr::select(symbol) %>%
dplyr::mutate(limit = !!limit) %>%
split(1:nrow(.))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.