/// <summary> /// Subscribe to updates when any order changes /// </summary> /// <param name="onData">The handler for updates</param> /// <returns></returns> public async Task <CallResult <UpdateSubscription> > SubscribeToOrderUpdatesAsync(Action <HuobiOrderUpdate> onData) { var request = new HuobiAuthenticatedRequest(NextId().ToString(), "sub", "orders.*"); var internalHandler = new Action <HuobiSocketAuthDataResponse <HuobiOrderUpdate> >(data => onData(data.Data)); return(await Subscribe(request, null, true, internalHandler).ConfigureAwait(false)); }
/// <summary> /// Gets a list of accounts associated with the apikey/secret /// </summary> /// <returns></returns> public async Task <CallResult <IEnumerable <HuobiAccountBalances> > > GetAccountsAsync() { var request = new HuobiAuthenticatedRequest(NextId().ToString(), "req", "accounts.list"); var result = await Query <HuobiSocketAuthDataResponse <IEnumerable <HuobiAccountBalances> > >(request, true).ConfigureAwait(false); return(new CallResult <IEnumerable <HuobiAccountBalances> >(result.Data?.Data, result.Error)); }
/// <summary> /// Subscribe to updates when a order for a symbol changes /// </summary> /// <param name="symbol">The symbol to subscribe to</param> /// <param name="onData">The handler for updates</param> /// <returns></returns> public async Task <CallResult <UpdateSubscription> > SubscribeToOrderUpdatesAsync(string symbol, Action <HuobiOrder> onData) { var request = new HuobiAuthenticatedRequest("sub", $"orders.{symbol}"); var internalHandler = new Action <HuobiSocketAuthDataResponse <HuobiOrder> >(data => onData(data.Data)); return(await Subscribe(request, internalHandler).ConfigureAwait(false)); }
/// <summary> /// Gets a list of accounts associated with the apikey/secret /// </summary> /// <returns></returns> public async Task <CallResult <List <HuobiAccountBalances> > > QueryAccountsAsync() { var request = new HuobiAuthenticatedRequest("req", "accounts.list"); var result = await Query <HuobiSocketAuthDataResponse <List <HuobiAccountBalances> > >(request).ConfigureAwait(false); return(new CallResult <List <HuobiAccountBalances> >(result.Data?.Data, result.Error)); }
/// <summary> /// Subscribe to updates when a order for a symbol changes /// </summary> /// <param name="symbol">The symbol to subscribe to</param> /// <param name="onData">The handler for updates</param> /// <returns></returns> public async Task <CallResult <UpdateSubscription> > SubscribeToOrderUpdatesAsync(string symbol, Action <HuobiOrderUpdate> onData) { symbol = symbol.ValidateHuobiSymbol(); var request = new HuobiAuthenticatedRequest(NextId().ToString(CultureInfo.InvariantCulture), "sub", $"orders.{symbol}"); var internalHandler = new Action <HuobiSocketAuthDataResponse <HuobiOrderUpdate> >(data => onData(data.Data)); return(await Subscribe(request, null, true, internalHandler).ConfigureAwait(false)); }
/// <summary> /// Subscribe to account/wallet updates /// </summary> /// <param name="onData">The handler for updates</param> /// <returns></returns> public async Task <CallResult <UpdateSubscription> > SubscribeToAccountUpdatesAsync(Action <HuobiAccountEvent> onData) { var request = new HuobiAuthenticatedRequest(NextId().ToString(), "sub", "accounts"); var internalHandler = new Action <HuobiSocketAuthDataResponse <HuobiAccountEvent> >(data => { data.Data.Timestamp = data.Timestamp; onData(data.Data); }); return(await Subscribe(request, null, true, internalHandler).ConfigureAwait(false)); }