コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        /// <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));
        }
コード例 #4
0
        /// <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));
        }
コード例 #5
0
        /// <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));
        }
コード例 #6
0
        /// <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));
        }