using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using CryptoExchange.Net.CommonObjects; using CryptoExchange.Net.Interfaces.CommonClients; using CryptoExchange.Net.Objects; namespace CryptoExchange.Net.Interfaces.CommonClients { /// /// Common futures endpoints /// public interface IFuturesClient : IBaseRestClient { /// /// Place an order /// /// The symbol the order is for /// The side of the order /// The type of the order /// The quantity of the order /// The price of the order, only for limit orders /// [Optional] The account id to place the order on, required for some exchanges, ignored otherwise /// [Optional] Leverage for this order. This is needed for some exchanges. For exchanges where this is not needed this parameter is ignored (and should be set before hand) /// [Optional] Client specified id for this order /// [Optional] Cancellation token for cancelling the request /// The id of the resulting order Task> PlaceOrderAsync(string symbol, CommonOrderSide side, CommonOrderType type, decimal quantity, decimal? price = null, int? leverage = null, string? accountId = null, string? clientOrderId = null, CancellationToken ct = default); /// /// Get position /// /// [Optional] Cancellation token for cancelling the request /// Task>> GetPositionsAsync(CancellationToken ct = default); } }