public override void Connect()
        {
            _publicKey = ((ServerParameterString)ServerParameters[0]).Value;
            _secretKey = ((ServerParameterPassword)ServerParameters[1]).Value;

            _urlBuilder        = new PublicUrlBuilder(_host);
            _privateUriBuilder = new PrivateUrlBuilder(_publicKey, _secretKey, _host);

            _cancelTokenSource = new CancellationTokenSource();

            StartMessageReader();

            StartMarketDataReader();

            _signer = new Signer(_secretKey);

            _wsSource = new WsSource("wss://" + _host + _path);
            _wsSource.MessageEvent  += WsSourceOnMessageEvent;
            _wsSource.ByteDataEvent += WsSourceOnByteDataEvent;
            _wsSource.Start();

            _marketDataSource = new WsSource("wss://" + _host + "/swap-ws");
            _marketDataSource.ByteDataEvent += MarketDataSourceOnMessageEvent;
            _marketDataSource.Start();
        }
示例#2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 /// <param name="host">the host that the client connects to</param>
 public ETFClient(string accessKey, string secretKey, string host = DEFAULT_HOST, ILogger logger = null)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, host);
     if (logger != null && HttpRequest.logger != null)
     {
         HttpRequest.logger = logger;
     }
 }
示例#3
0
        public void Build_NoRequestParameter_Success()
        {
            var    builder = new PrivateUrlBuilder("abcdefg-hijklmn-opqrst-uvwxyz", "12345-67890-12345-67890", "api.huobi.pro");
            string result  = builder.Build("GET", "/v1/account/accounts");

            string expected = @"https://api.huobi.pro/v1/account/accounts?AccessKeyId=abcdefg-hijklmn-opqrst-uvwxyz&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2020-04-01T12%3A34%3A56&Signature=3IUZcEak4IIRrh7%2FidFrP2Jj77MaWGXR%2FoQbe9gL4%2BI%3D";

            Assert.Equal(expected, result);
        }
        public void Build_NoRequestParameter_Success()
        {
            var      builder  = new PrivateUrlBuilder("access", "secret", "api.huobi.pro");
            DateTime dateTime = new DateTime(2019, 11, 21, 10, 0, 0);


            string result = builder.Build("GET", "/v1/account/accounts", dateTime);


            string escapedTime = Uri.EscapeDataString(dateTime.ToString("s"));
            string expected    = string.Format(@"https://api.huobi.pro/v1/account/accounts?AccessKeyId=access&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp={0}&Signature=rWnLcMt3XBAsmXoNHtTQVpvMbH%2FcE1PXFwQAGeYwt3s%3D",
                                               escapedTime);

            Assert.Equal(expected, result);
        }
        public void Build_RequestParameter_Success()
        {
            var      builder  = new PrivateUrlBuilder("access", "secret", "api.huobi.pro");
            DateTime dateTime = new DateTime(2019, 11, 21, 10, 0, 0);
            var      request  = new GetRequest()
                                .AddParam("account-id", "123")
                                .AddParam("currency", "btc");


            string result = builder.Build("GET", "/v1/account/history", dateTime, request);


            string escapedTime = Uri.EscapeDataString(dateTime.ToString("s"));
            string expected    = string.Format(@"https://api.huobi.pro/v1/account/history?AccessKeyId=access&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp={0}&account-id=123&currency=btc&Signature=SGZYJ9Ub%2FhFerEBbSWsCxl8Djk%2BLRBgEZOB4fLc4T9Q%3D",
                                               escapedTime);

            Assert.Equal(expected, result);
        }
示例#6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 /// <param name="host">the host that the client connects to</param>
 public OrderClient(string accessKey, string secretKey, string host = DEFAULT_HOST)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, host);
 }
示例#7
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 /// <param name="host">the host that the client connects to</param>
 public StableCointClient(string accessKey, string secretKey, string host = Host.SPOT)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, host);
 }
示例#8
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 public TransferClient(string accessKey, string secretKey)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, Host.FUTURES);
 }
示例#9
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 /// <param name="host">the host that the client connects to</param>
 public AccountClient(string accessKey, string secretKey, string host = Host.FUTURES)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, host);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 /// <param name="host">the host that the client connects to</param>
 public TriggerOrderClient(string accessKey, string secretKey, string host = Host.FUTURES)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, host);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 public TransferClient(string accessKey, string secretKey)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, DEFAULT_HOST);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="accessKey">Access Key</param>
 /// <param name="secretKey">Secret Key</param>
 /// <param name="host">the host that the client connects to</param>
 public AlgoOrderClient(string accessKey, string secretKey, string host = Host.SPOT)
 {
     _urlBuilder = new PrivateUrlBuilder(accessKey, secretKey, host);
 }