From 0f65701f902bfb290d4589d05debc2de4b6d5705 Mon Sep 17 00:00:00 2001 From: Jan Korf Date: Mon, 17 Jan 2022 21:25:33 +0100 Subject: [PATCH] docs --- docs/Interfaces.md | 126 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 123 insertions(+), 3 deletions(-) diff --git a/docs/Interfaces.md b/docs/Interfaces.md index adff2d0..ee38733 100644 --- a/docs/Interfaces.md +++ b/docs/Interfaces.md @@ -8,11 +8,131 @@ Clients have a common interface implementation to allow a shared code base to us var binanceClient = new BinanceClient(); ISpotClient spotClient = binanceClient.SpotApi.CommonSpotClient; IFuturesClient futuresClient = binanceClient.UsdFuturesApi.CommonFuturesClient; +``` + +For examples on this see the Examples folder. + +## ISpotClient +The `ISpotClient` interface is implemented on Spot API clients. The interface exposes basic functionality like retrieving market data and managing orders. The `ISpotClient` interface will be available via the `CommonSpotClient` property on the Api client. +The spot client has the following members: + +*Properties* +```csharp +// The name of the exchange this client interacts with +string ExchangeName { get; } +``` + +*Events* +```csharp +// Event when placing an order with this ISpotClient. Note that this is not an event handler listening on the exchange, just an event handler for when the `PlaceOrderAsync` method is called. +event Action OnOrderPlaced; +// Event when canceling an order with this ISpotClient. Note that this is not an event handler listening on the exchange, just an event handler for when the `CancelOrderAsync` method is called. +event Action OnOrderCanceled; ``` -## ISpotClient -TODO +*Methods* +```csharp +// Retrieve the name of a symbol based on 2 assets. This will format them in the way the exchange expects them. For example BTC, USDT will return BTCUSDT on Binance and BTC-USDT on Kucoin +string GetSymbolName(string baseAsset, string quoteAsset); + +// Get a list of symbols (trading pairs) on the exchange +Task>> GetSymbolsAsync(); + +// Get the ticker (24 hour stats) for a symbol +Task> GetTickerAsync(string symbol); + +// Get a list of tickers for all symbols +Task>> GetTickersAsync(); + +// Get a list klines (candlesticks) for a symbol +Task>> GetKlinesAsync(string symbol, TimeSpan timespan, DateTime? startTime = null, DateTime? endTime = null, int? limit = null); + +// Get the order book for a symbol +Task> GetOrderBookAsync(string symbol); + +// Get a list of most recent trades +Task>> GetRecentTradesAsync(string symbol); + +// Get balances +Task>> GetBalancesAsync(string? accountId = null); + +// Get order by order id +Task> GetOrderAsync(string orderId, string? symbol = null); + +// Get the trades for an order +Task>> GetOrderTradesAsync(string orderId, string? symbol = null); + +// Get a list of open orders. Some exchanges require a symbol +Task>> GetOpenOrdersAsync(string? symbol = null); + +// Get a list of closed orders. Some exchanges require a symbol +Task>> GetClosedOrdersAsync(string? symbol = null); + +// Cancel an active order +Task> CancelOrderAsync(string orderId, string? symbol = null); +``` ## IFuturesClient -TODO \ No newline at end of file +The `IFuturesClient` interface is implemented on Futures API clients. The interface exposes basic functionality like retrieving market data and managing orders. The `IFuturesClient` interface will be available via the `CommonFuturesClient` property on the Api client. +The spot client has the following members: + +*Properties* +```csharp +// The name of the exchange this client interacts with +string ExchangeName { get; } +``` + +*Events* +```csharp +// Event when placing an order with this ISpotClient. Note that this is not an event handler listening on the exchange, just an event handler for when the `PlaceOrderAsync` method is called. +event Action OnOrderPlaced; +// Event when canceling an order with this ISpotClient. Note that this is not an event handler listening on the exchange, just an event handler for when the `CancelOrderAsync` method is called. +event Action OnOrderCanceled; + +``` + +*Methods* +```csharp +// Retrieve the name of a symbol based on 2 assets. This will format them in the way the exchange expects them. For example BTC, USDT will return BTCUSDT on Binance and BTC-USDT on Kucoin +string GetSymbolName(string baseAsset, string quoteAsset); + +// Get a list of symbols (trading pairs) on the exchange +Task>> GetSymbolsAsync(); + +// Get the ticker (24 hour stats) for a symbol +Task> GetTickerAsync(string symbol); + +// Get a list of tickers for all symbols +Task>> GetTickersAsync(); + +// Get a list klines (candlesticks) for a symbol +Task>> GetKlinesAsync(string symbol, TimeSpan timespan, DateTime? startTime = null, DateTime? endTime = null, int? limit = null); + +// Get the order book for a symbol +Task> GetOrderBookAsync(string symbol); + +// Get a list of most recent trades +Task>> GetRecentTradesAsync(string symbol); + +// Get balances +Task>> GetBalancesAsync(string? accountId = null); + +// Get current open positions +Task>> GetPositionsAsync(); + +// Get order by order id +Task> GetOrderAsync(string orderId, string? symbol = null); + +// Get the trades for an order +Task>> GetOrderTradesAsync(string orderId, string? symbol = null); + +// Get a list of open orders. Some exchanges require a symbol +Task>> GetOpenOrdersAsync(string? symbol = null); + +// Get a list of closed orders. Some exchanges require a symbol +Task>> GetClosedOrdersAsync(string? symbol = null); + +// Cancel an active order +Task> CancelOrderAsync(string orderId, string? symbol = null); +``` \ No newline at end of file