defmodule BinanceInterface do alias BinanceInterface.Env alias BinanceInterface.Streamer import BinanceInterface.Request def stream_trades(base_asset, quote_asset) do symbol = symbol_name(base_asset, quote_asset) # btcusdt {:ok, _pid} = Streamer.connect("wss://stream.binance.com:9443/ws/#{symbol}@trade") end def asset(name), do: do_assets(name) def assets(), do: do_assets() defp do_assets(name \\ nil) do request = new_request(Env.base_url(), "/sapi/v3/asset/getUserAsset", Env.api_key()) |> add_header("Content-Type", "application/x-www-form-urlencoded") |> maybe_add_body_data("asset", name) |> add_signature(Env.secret_key()) {:ok, response} = Finch.build(:post, url(request), headers(request), body(request)) |> Finch.request(MyFinch) response |> Map.fetch!(:body) |> Jason.decode!() end defp symbol_name(base_asset, quote_asset) do asset_name(base_asset) <> asset_name(quote_asset) end defp asset_name(asset) do asset |> to_string() |> String.downcase() end end